diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0443abf8..3027aaaf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,10 +4,6 @@ name: CI jobs: ci: - strategy: - matrix: - go-version: [1.18.x] - runs-on: ubuntu-latest env: @@ -18,7 +14,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.go-version }} + go-version: 1.21.x - name: Install Reviewdog uses: reviewdog/action-setup@v1 @@ -37,14 +33,14 @@ jobs: sudo apt-get install -y p7zip-full # Install interface generator - go install github.com/vburenin/ifacemaker@v1.1.0 + go install github.com/vburenin/ifacemaker@v1.2.1 # Fetch refs for linter git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/* git fetch # Install golangci-lint - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.45.2 + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.52.2 - name: Build run: scripts/build.sh diff --git a/.github/workflows/protobuf.yml b/.github/workflows/protobuf.yml index 2683f2aa..30ed4e63 100644 --- a/.github/workflows/protobuf.yml +++ b/.github/workflows/protobuf.yml @@ -27,7 +27,7 @@ jobs: if: env.PROTOBUFS_CHANGED == 'true' uses: actions/setup-go@v2 with: - go-version: 1.18.x + go-version: 1.21.x - name: Install Protobuf tools if: env.PROTOBUFS_CHANGED == 'true' diff --git a/.golangci.yml b/.golangci.yml index 5986572e..5929dbc8 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -13,8 +13,6 @@ linters: disable-all: true enable: - bodyclose - - deadcode - - depguard - dogsled - dupl - exportloopref @@ -36,12 +34,10 @@ linters: - nolintlint - rowserrcheck - staticcheck - - structcheck - stylecheck - unconvert - unparam - unused - - varcheck - whitespace - asciicheck - gocognit diff --git a/README.md b/README.md index 010828cf..513ef609 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Counter-Strike 2 support is experimental. [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://vshymanskyy.github.io/StandWithUkraine) -[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs?tab=doc) +[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs?tab=doc) [![Build Status](https://img.shields.io/github/actions/workflow/status/markus-wa/demoinfocs-golang/ci.yml?branch=master&style=flat-square)](https://github.com/markus-wa/demoinfocs-golang/actions) [![codecov](https://img.shields.io/codecov/c/github/markus-wa/demoinfocs-golang?style=flat-square)](https://codecov.io/gh/markus-wa/demoinfocs-golang) [![Go Report](https://goreportcard.com/badge/github.com/markus-wa/demoinfocs-golang?style=flat-square)](https://goreportcard.com/report/github.com/markus-wa/demoinfocs-golang) @@ -23,13 +23,15 @@ For business inquiries please use the contact information found on the [GitHub p ## Go Get -### CS:GO +### CS2 - ⚠️ Experimental - go get -u github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs + go get -u github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs -### CS2 - ⚠️ Experimental + ⚠️ The CS2 / v4 API may change in backwards incompatible ways without warning. - go get -u github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs@s2 +### CS:GO + + go get -u github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs ## Table of Contents @@ -53,7 +55,7 @@ For business inquiries please use the contact information found on the [GitHub p ## Requirements -This library requires at least `go 1.18` to run. +This library requires at least `go 1.21` to run. You can download the latest version of Go [here](https://golang.org/). ## Quickstart Guide @@ -70,7 +72,7 @@ go mod init github.com//my-project # the module name (github.com//my-project) can always be changed later # you can also put example.com/my-project or anything else if you don't plan to publish your project -go get -u github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs +go get -u github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs ``` 3. Create a `main.go` file with the example below @@ -92,8 +94,8 @@ import ( "log" "os" - dem "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + dem "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) func main() { @@ -150,24 +152,24 @@ Check out the [examples](examples) folder for more examples, like [how to genera ### Documentation -The full API documentation is available here on [pkg.go.dev](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs). +The full API documentation is available here on [pkg.go.dev](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs). ## Features -* Game events (kills, shots, round starts/ends, footsteps etc.) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events?tab=doc) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/print-events) -* Tracking of game-state (players, teams, grenades, ConVars etc.) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs?tab=doc#GameState) -* Grenade projectiles / trajectories - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs?tab=doc#GameState.GrenadeProjectiles) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/nade-trajectories) -* Access to entities, server-classes & data-tables - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables?tab=doc#ServerClasses) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/entities) -* Access to all net-messages - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs?tab=doc#NetMessageCreator) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/net-messages) -* Chat & console messages 1 - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events?tab=doc#ChatMessage) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/print-events) -* Matchmaking ranks (official MM demos only) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events?tab=doc#RankUpdate) +* Game events (kills, shots, round starts/ends, footsteps etc.) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events?tab=doc) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/print-events) +* Tracking of game-state (players, teams, grenades, ConVars etc.) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs?tab=doc#GameState) +* Grenade projectiles / trajectories - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs?tab=doc#GameState.GrenadeProjectiles) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/nade-trajectories) +* Access to entities, server-classes & data-tables - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables?tab=doc#ServerClasses) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/entities) +* Access to all net-messages - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs?tab=doc#NetMessageCreator) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/net-messages) +* Chat & console messages 1 - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events?tab=doc#ChatMessage) / [example](https://github.com/markus-wa/demoinfocs-golang/tree/master/examples/print-events) +* Matchmaking ranks (official MM demos only) - [docs](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events?tab=doc#RankUpdate) * Full POV demo support 2 -* Support for encrypted net-messages (if the [decryption key](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3@master/pkg/demoinfocs#ParserConfig) is provided) +* Support for encrypted net-messages (if the [decryption key](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4@master/pkg/demoinfocs#ParserConfig) is provided) * JavaScript (browser / Node.js) support via WebAssembly - [example](https://github.com/markus-wa/demoinfocs-wasm) * [Easy debugging via build-flags](#debugging) * Built with performance & concurrency in mind -1. In MM demos the chat is encrypted, so [`ParserConfig.NetMessageDecryptionKey`](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3@master/pkg/demoinfocs#ParserConfig) needs to be set - see also [`MatchInfoDecryptionKey()`](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v3@master/pkg/demoinfocs#MatchInfoDecryptionKey). +1. In MM demos the chat is encrypted, so [`ParserConfig.NetMessageDecryptionKey`](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4@master/pkg/demoinfocs#ParserConfig) needs to be set - see also [`MatchInfoDecryptionKey()`](https://pkg.go.dev/github.com/markus-wa/demoinfocs-golang/v4@master/pkg/demoinfocs#MatchInfoDecryptionKey). 2. Better than some other parsers at the time of writing. ## Performance / Benchmarks @@ -242,7 +244,7 @@ e.g. Side-note: The tag isn't called `debug` to avoid naming conflicts with other libs (and underscores in tags don't work, apparently). -To change the default debugging behavior, Go's `ldflags` parameter can be used. Example for additionally printing out all server-classes with their properties: `-ldflags="-X 'github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs.debugServerClasses=YES'"`. +To change the default debugging behavior, Go's `ldflags` parameter can be used. Example for additionally printing out all server-classes with their properties: `-ldflags="-X 'github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs.debugServerClasses=YES'"`. e.g. diff --git a/cs2.md b/cs2.md new file mode 100644 index 00000000..7b498cde --- /dev/null +++ b/cs2.md @@ -0,0 +1,17796 @@ +# Counter-Strike 2 (Source 2) + +Here are a few notes on what data we have available for Counter-Strike 2 (Source 2). +This is a work in progress and will be updated as we learn more. + +### Legacy Events + +Event name + count of a Wingman (2v2) match + +``` + 201 hltv_chase [distance inertia ineye phi target1 target2 theta] + 127 player_death [assistedflash assister assister_pawn attacker attacker_pawn attackerblind distance dmg_armor dmg_health dominated headshot hitgroup noreplay noscope penetrated revenge thrusmoke userid userid_pawn weapon weapon_fauxitemid weapon_itemid weapon_originalowner_xuid wipe] + 9 player_disconnect [PlayerID name networkid reason userid xuid] + 10 player_team [disconnect isbot oldteam silent team userid userid_pawn] + 14 round_end [legacy message nomusic player_count reason winner] + 14 round_start [fraglimit objective timelimit] +``` + +### Net Messages + +Message name + count of a Wingman (2v2) match + +``` + 1 CS_UM_EndOfMatchAllPlayersData + 227 CS_UM_RadioText + 1 CS_UM_SendPlayerItemDrops + 1 CS_UM_WarmupHasEnded + 378 CS_UM_WeaponSound + 10 CS_UM_XpUpdate + 100 EM_RemoveAllDecals + 2379 GE_FireBulletsId + 20801 GE_SosStartSoundEvent + 50 GE_SosStopSoundEvent + 375 GE_Source1LegacyGameEvent + 1 GE_Source1LegacyGameEventList + 2 net_SetConVar + 3 net_SignonState + 28704 net_Tick + 1 svc_ClassInfo + 1 svc_ClearAllStringTables + 11 svc_CreateStringTable + 155 svc_HLTVStatus + 28703 svc_PacketEntities + 1 svc_ServerInfo + 53 svc_UpdateStringTable + 1 svc_VoiceInit + 2 TE_DecalId + 1482 TE_EffectDispatchId + 61 TE_PhysicsPropId +``` + +### Server Classes + +``` +CAK47 +CBarnLight +CBaseAnimGraph +CBaseButton +CBaseClientUIEntity +CBaseCombatCharacter +CBaseCSGrenade +CBaseCSGrenadeProjectile +CBaseDoor +CBaseEntity +CBaseFlex +CBaseGrenade +CBaseModelEntity +CBasePlayerController +CBasePlayerPawn +CBasePlayerWeapon +CBasePropDoor +CBaseToggle +CBaseTrigger +CBaseViewModel +CBeam +CBrBaseItem +CBRC4Target +CBreachCharge +CBreachChargeProjectile +CBreakable +CBreakableProp +CBumpMine +CBumpMineProjectile +CC4 +CChicken +CColorCorrection +CColorCorrectionVolume +CCSEnvGunfire +CCSGameRulesProxy +CCSGO_TeamIntroCharacterPosition +CCSGO_TeamIntroCounterTerroristPosition +CCSGO_TeamIntroTerroristPosition +CCSGO_TeamPreviewCharacterPosition +CCSGO_TeamSelectCharacterPosition +CCSGO_TeamSelectCounterTerroristPosition +CCSGO_TeamSelectTerroristPosition +CCSGOViewModel +CCSMinimapBoundary +CCSObserverPawn +CCSPlayerController +CCSPlayerPawn +CCSPlayerPawnBase +CCSPlayerResource +CCSPropExplodingBarrel +CCSPropExplodingBarrelTop +CCSTeam +CDangerZone +CDangerZoneController +CDEagle +CDecoyGrenade +CDecoyProjectile +CDrone +CDronegun +CDynamicLight +CDynamicProp +CEconEntity +CEconWearable +CEntityDissolve +CEntityFlame +CEnvCombinedLightProbeVolume +CEnvCubemap +CEnvCubemapBox +CEnvCubemapFog +CEnvDecal +CEnvDetailController +CEnvGasCanister +CEnvLightProbeVolume +CEnvParticleGlow +CEnvProjectedTexture +CEnvScreenOverlay +CEnvSky +CEnvVolumetricFogController +CEnvVolumetricFogVolume +CEnvWind +CFireCrackerBlast +CFireSmoke +CFish +CFists +CFlashbang +CFogController +CFootstepControl +CFuncBrush +CFuncConveyor +CFuncElectrifiedVolume +CFuncLadder +CFuncMonitor +CFuncMoveLinear +CFuncRotating +CFuncTrackTrain +CFuncWater +CGameRulesProxy +CGradientFog +CGrassBurn +CHandleTest +CHEGrenade +CHostage +CHostageCarriableProp +CIncendiaryGrenade +CInferno +CInfoInstructorHintHostageRescueZone +CInfoLadderDismount +CInfoMapRegion +CInfoOffscreenPanoramaTexture +CInfoVisibilityBox +CInfoWorldLayer +CItemCash +CItemDogtags +CItem_Healthshot +CKnife +CKnifeGG +CLightDirectionalEntity +CLightEntity +CLightEnvironmentEntity +CLightGlow +CLightOrthoEntity +CLightSpotEntity +CMapVetoPickController +CMelee +CModelPointEntity +CMolotovGrenade +CMolotovProjectile +COmniLight +CParadropChopper +CParticleSystem +CPathParticleRope +CPhysBox +CPhysicsProp +CPhysicsPropMultiplayer +CPhysMagnet +CPhysPropAmmoBox +CPhysPropLootCrate +CPhysPropRadarJammer +CPhysPropWeaponUpgrade +CPlantedC4 +CPlantedC4Survival +CPlayerPing +CPlayerSprayDecal +CPlayerVisibility +CPointCamera +CPointClientUIDialog +CPointClientUIWorldPanel +CPointClientUIWorldTextPanel +CPointCommentaryNode +CPointEntity +CPointValueRemapper +CPointWorldText +CPostProcessingVolume +CPrecipitation +CPrecipitationBlocker +CPredictedViewModel +CPropCounter +CRagdollManager +CRagdollProp +CRagdollPropAttached +CRectLight +CRopeKeyframe +CSceneEntity +CSensorGrenade +CSensorGrenadeProjectile +CShatterGlassShardPhysics +CSkyCamera +CSmokeGrenade +CSmokeGrenadeProjectile +CSoundAreaEntityBase +CSoundAreaEntityOrientedBox +CSoundAreaEntitySphere +CSoundOpvarSetAABBEntity +CSoundOpvarSetOBBEntity +CSoundOpvarSetOBBWindEntity +CSoundOpvarSetPathCornerEntity +CSoundOpvarSetPointBase +CSoundOpvarSetPointEntity +CSpotlightEnd +CSprite +CSpriteOriented +CSun +CSurvivalSpawnChopper +CTablet +CTeam +CTextureBasedAnimatable +CTonemapController2 +CTriggerBuoyancy +CTriggerVolume +CTripWireFire +CTripWireFireProjectile +CVoteController +CWaterBullet +CWeaponAug +CWeaponAWP +CWeaponBaseItem +CWeaponBizon +CWeaponCSBase +CWeaponCSBaseGun +CWeaponElite +CWeaponFamas +CWeaponFiveSeven +CWeaponG3SG1 +CWeaponGalilAR +CWeaponGlock +CWeaponHKP2000 +CWeaponM249 +CWeaponM4A1 +CWeaponMAC10 +CWeaponMag7 +CWeaponMP7 +CWeaponMP9 +CWeaponNegev +CWeaponNOVA +CWeaponP250 +CWeaponP90 +CWeaponSawedoff +CWeaponSCAR20 +CWeaponSG556 +CWeaponShield +CWeaponSSG08 +CWeaponTaser +CWeaponTec9 +CWeaponUMP45 +CWeaponXM1014 +CWeaponZoneRepulsor +CWorld +``` + +### Server Classes + Props + +``` +47 CCSPlayerPawnBase + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_thirdPersonHeading: QAngle + m_flSlopeDropOffset: float32 + m_flSlopeDropHeight: float32 + m_vHeadConstraintOffset: Vector + m_angEyeAngles: QAngle + m_iHealth: int32 + m_lifeState: uint8 + m_fFlags: uint32 + m_hGroundEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_pWeaponServices: CPlayer_WeaponServices* + m_pObserverServices: CPlayer_ObserverServices* + m_pWaterServices: CPlayer_WaterServices* + m_pUseServices: CPlayer_UseServices* + m_pCameraServices: CPlayer_CameraServices* + m_pMovementServices: CPlayer_MovementServices* + m_flDeathTime: GameTime_t + m_hController: CHandle< CBasePlayerController > + m_pActionTrackingServices: CCSPlayer_ActionTrackingServices* + m_pViewModelServices: CCSPlayer_ViewModelServices* + m_hOriginalController: CHandle< CCSPlayerController > + m_bHasFemaleVoice: bool + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_flTimeOfLastInjury: float32 + m_nRelativeDirectionOfLastInjury: RelativeDamagedDirection_t + m_iPlayerState: CSPlayerState + m_passiveItems: bool[4] + m_bIsScoped: bool + m_bIsWalking: bool + m_bResumeZoom: bool + m_bIsDefusing: bool + m_bIsGrabbingHostage: bool + m_iBlockingUseActionInProgress: CSPlayerBlockingUseAction_t + m_fImmuneToGunGameDamageTime: GameTime_t + m_bGunGameImmunity: bool + m_bMadeFinalGunGameProgressiveKill: bool + m_iGunGameProgressiveWeaponIndex: int32 + m_iNumGunGameTRKillPoints: int32 + m_iNumGunGameKillsWithCurrentWeapon: int32 + m_unTotalRoundDamageDealt: uint32 + m_fMolotovDamageTime: float32 + m_bHasMovedSinceSpawn: bool + m_bCanMoveDuringFreezePeriod: bool + m_isCurrentGunGameLeader: bool + m_isCurrentGunGameTeamLeader: bool + m_flGuardianTooFarDistFrac: float32 + m_flDetectedByEnemySensorTime: GameTime_t + m_bIsSpawnRappelling: bool + m_vecSpawnRappellingRopeOrigin: Vector + m_nSurvivalTeam: int32 + m_hSurvivalAssassinationTarget: CHandle< CCSPlayerPawnBase > + m_flHealthShotBoostExpirationTime: float32 + m_nHeavyAssaultSuitCooldownRemaining: int32 + m_flEmitSoundTime: GameTime_t + m_bHasNightVision: bool + m_bNightVisionOn: bool + m_bInBombZone: bool + m_bInBuyZone: bool + m_bInNoDefuseArea: bool + m_bKilledByTaser: bool + m_iMoveState: int32 + m_nWhichBombZone: int32 + m_bInHostageRescueZone: bool + m_flStamina: float32 + m_iDirection: int32 + m_iShotsFired: int32 + m_ArmorValue: int32 + m_flVelocityModifier: float32 + m_flHitHeading: float32 + m_nHitBodyPart: int32 + m_flFlashDuration: float32 + m_flFlashMaxAlpha: float32 + m_flProgressBarStartTime: float32 + m_iProgressBarDuration: int32 + m_bWaitForNoAttack: bool + m_flLowerBodyYawTarget: float32 + m_bStrafing: bool + m_bHideTargetID: bool + m_bHud_MiniScoreHidden: bool + m_bHud_RadarHidden: bool + m_nLastKillerIndex: CEntityIndex + m_nLastConcurrentKilled: int32 + m_nDeathCamMusic: int32 + m_iAddonBits: int32 + m_iPrimaryAddon: int32 + m_iSecondaryAddon: int32 + m_vecPlayerPatchEconIndices: uint32[5] + m_unCurrentEquipmentValue: uint16 + m_unRoundStartEquipmentValue: uint16 + m_unFreezetimeEndEquipmentValue: uint16 + m_szLastPlaceName: char[18] + m_nSurvivalTeamNumber: int32 + m_aimPunchAngle: QAngle + m_aimPunchAngleVel: QAngle + m_aimPunchTickBase: int32 + m_aimPunchTickFraction: float32 + m_bKilledByHeadshot: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + m_ServerViewAngleChanges: CUtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > + m_iHideHUD: uint32 + scale: int16 + origin: Vector + bClip3DSkyBoxNearToWorldFar: bool + flClip3DSkyBoxNearToWorldFarOffset: float32 + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + m_nWorldGroupID: WorldGroupId_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_flWaterLevel: float32 + +155 CPredictedViewModel + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_fEffects: uint32 + m_clrRender: Color + m_nViewModelIndex: uint32 + m_nAnimationParity: uint32 + m_flAnimationStartTime: float32 + m_hWeapon: CHandle< CBasePlayerWeapon > + m_hControlPanel: CHandle< CBaseEntity > + +115 CKnifeGG + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +181 CSun + m_clrRender: Color + m_vDirection: Vector + m_clrOverlay: Color + m_iszEffectName: CUtlSymbolLarge + m_iszSSEffectName: CUtlSymbolLarge + m_bOn: bool + m_bmaxColor: bool + m_flSize: float32 + m_flRotation: float32 + m_flHazeScale: float32 + m_flAlphaHaze: float32 + m_flAlphaHdr: float32 + m_flAlphaScale: float32 + m_flHDRColorScale: float32 + m_flFarZScale: float32 + +38 CCSGO_TeamPreviewCharacterPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +177 CSoundOpvarSetPointEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +203 CWeaponGalilAR + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +46 CCSPlayerPawn + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_thirdPersonHeading: QAngle + m_flSlopeDropOffset: float32 + m_flSlopeDropHeight: float32 + m_vHeadConstraintOffset: Vector + m_angEyeAngles: QAngle + m_iHealth: int32 + m_lifeState: uint8 + m_fFlags: uint32 + m_hGroundEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_pWeaponServices: CPlayer_WeaponServices* + m_pItemServices: CPlayer_ItemServices* + m_pObserverServices: CPlayer_ObserverServices* + m_pWaterServices: CPlayer_WaterServices* + m_pUseServices: CPlayer_UseServices* + m_pCameraServices: CPlayer_CameraServices* + m_pMovementServices: CPlayer_MovementServices* + m_flDeathTime: GameTime_t + m_hController: CHandle< CBasePlayerController > + m_pActionTrackingServices: CCSPlayer_ActionTrackingServices* + m_pViewModelServices: CCSPlayer_ViewModelServices* + m_hOriginalController: CHandle< CCSPlayerController > + m_bHasFemaleVoice: bool + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_flTimeOfLastInjury: float32 + m_nRelativeDirectionOfLastInjury: RelativeDamagedDirection_t + m_iPlayerState: CSPlayerState + m_passiveItems: bool[4] + m_bIsScoped: bool + m_bIsWalking: bool + m_bResumeZoom: bool + m_bIsDefusing: bool + m_bIsGrabbingHostage: bool + m_iBlockingUseActionInProgress: CSPlayerBlockingUseAction_t + m_fImmuneToGunGameDamageTime: GameTime_t + m_bGunGameImmunity: bool + m_bMadeFinalGunGameProgressiveKill: bool + m_iGunGameProgressiveWeaponIndex: int32 + m_iNumGunGameTRKillPoints: int32 + m_iNumGunGameKillsWithCurrentWeapon: int32 + m_unTotalRoundDamageDealt: uint32 + m_fMolotovDamageTime: float32 + m_bHasMovedSinceSpawn: bool + m_bCanMoveDuringFreezePeriod: bool + m_isCurrentGunGameLeader: bool + m_isCurrentGunGameTeamLeader: bool + m_flGuardianTooFarDistFrac: float32 + m_flDetectedByEnemySensorTime: GameTime_t + m_bIsSpawnRappelling: bool + m_vecSpawnRappellingRopeOrigin: Vector + m_nSurvivalTeam: int32 + m_hSurvivalAssassinationTarget: CHandle< CCSPlayerPawnBase > + m_flHealthShotBoostExpirationTime: float32 + m_nHeavyAssaultSuitCooldownRemaining: int32 + m_flEmitSoundTime: GameTime_t + m_bHasNightVision: bool + m_bNightVisionOn: bool + m_bInBombZone: bool + m_bInBuyZone: bool + m_bInNoDefuseArea: bool + m_bKilledByTaser: bool + m_iMoveState: int32 + m_nWhichBombZone: int32 + m_bInHostageRescueZone: bool + m_flStamina: float32 + m_iDirection: int32 + m_iShotsFired: int32 + m_ArmorValue: int32 + m_flVelocityModifier: float32 + m_flHitHeading: float32 + m_nHitBodyPart: int32 + m_flFlashDuration: float32 + m_flFlashMaxAlpha: float32 + m_flProgressBarStartTime: float32 + m_iProgressBarDuration: int32 + m_bWaitForNoAttack: bool + m_flLowerBodyYawTarget: float32 + m_bStrafing: bool + m_bHideTargetID: bool + m_bHud_MiniScoreHidden: bool + m_bHud_RadarHidden: bool + m_nLastKillerIndex: CEntityIndex + m_nLastConcurrentKilled: int32 + m_nDeathCamMusic: int32 + m_iAddonBits: int32 + m_iPrimaryAddon: int32 + m_iSecondaryAddon: int32 + m_vecPlayerPatchEconIndices: uint32[5] + m_unCurrentEquipmentValue: uint16 + m_unRoundStartEquipmentValue: uint16 + m_unFreezetimeEndEquipmentValue: uint16 + m_szLastPlaceName: char[18] + m_nSurvivalTeamNumber: int32 + m_aimPunchAngle: QAngle + m_aimPunchAngleVel: QAngle + m_aimPunchTickBase: int32 + m_aimPunchTickFraction: float32 + m_bKilledByHeadshot: bool + m_pBulletServices: CCSPlayer_BulletServices* + m_pHostageServices: CCSPlayer_HostageServices* + m_pBuyServices: CCSPlayer_BuyServices* + m_pPingServices: CCSPlayer_PingServices* + m_iRetakesOffering: int32 + m_iRetakesOfferingCard: int32 + m_bRetakesHasDefuseKit: bool + m_bRetakesMVPLastRound: bool + m_iRetakesMVPBoostItem: int32 + m_RetakesMVPBoostExtraUtility: loadout_slot_t + m_bIsBuyMenuOpen: bool + m_nRagdollDamageBone: int32 + m_vRagdollDamageForce: Vector + m_vRagdollDamagePosition: Vector + m_szRagdollDamageWeaponName: char[64] + m_bRagdollDamageHeadshot: bool + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_qDeathEyeAngles: QAngle + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + m_ServerViewAngleChanges: CUtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > + m_iHideHUD: uint32 + scale: int16 + origin: Vector + bClip3DSkyBoxNearToWorldFar: bool + flClip3DSkyBoxNearToWorldFarOffset: float32 + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + m_nWorldGroupID: WorldGroupId_t + m_flNextSprayDecalTime: float32 + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_flWaterLevel: float32 + +142 CPlayerSprayDecal + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_nUniqueID: int32 + m_unAccountID: uint32 + m_unTraceID: uint32 + m_rtGcTime: uint32 + m_vecEndPos: Vector + m_vecStart: Vector + m_vecLeft: Vector + m_vecNormal: Vector + m_nPlayer: int32 + m_nEntity: int32 + m_nHitbox: int32 + m_flCreationTime: float32 + m_nTintID: int32 + m_nVersion: uint8 + m_ubSignature: uint8[128] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +196 CWeaponBizon + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +14 CBasePlayerPawn + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iHealth: int32 + m_lifeState: uint8 + m_fFlags: uint32 + m_hGroundEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_pCameraServices: CPlayer_CameraServices* + m_flDeathTime: GameTime_t + m_hController: CHandle< CBasePlayerController > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + m_ServerViewAngleChanges: CUtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > + m_iHideHUD: uint32 + scale: int16 + origin: Vector + bClip3DSkyBoxNearToWorldFar: bool + flClip3DSkyBoxNearToWorldFarOffset: float32 + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + m_nWorldGroupID: WorldGroupId_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_flWaterLevel: float32 + +86 CFootstepControl + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_source: CUtlSymbolLarge + m_destination: CUtlSymbolLarge + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +88 CFuncConveyor + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_vecMoveDirEntitySpace: Vector + m_flTargetSpeed: float32 + m_nTransitionStartTick: GameTick_t + m_nTransitionDurationTicks: int32 + m_flTransitionStartSpeed: float32 + m_hConveyorModels: CNetworkUtlVectorBase< CHandle< CBaseEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +110 CInfoWorldLayer + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_worldName: CUtlSymbolLarge + m_layerName: CUtlSymbolLarge + m_bWorldLayerVisible: bool + m_bEntitiesSpawned: bool + +170 CSoundAreaEntityOrientedBox + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDisabled: bool + m_iszSoundAreaType: CUtlSymbolLarge + m_vPos: Vector + m_vMin: Vector + m_vMax: Vector + +143 CPlayerVisibility + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flVisibilityStrength: float32 + m_flFogDistanceMultiplier: float32 + m_flFogMaxDensityMultiplier: float32 + m_flFadeTime: float32 + m_bStartDisabled: bool + m_bIsEnabled: bool + +164 CSensorGrenadeProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_vInitialVelocity: Vector + m_nBounces: int32 + m_nExplodeEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_nExplodeEffectTickBegin: int32 + m_vecExplodeEffectOrigin: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +12 CBaseModelEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +24 CBreachChargeProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_bShouldExplode: bool + m_weaponThatThrewMe: CHandle< CBaseEntity > + m_nParentBoneIndex: int32 + m_vecParentBonePos: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +100 CHEGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +180 CSpriteOriented + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hSpriteMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_hAttachedToEntity: CHandle< CBaseEntity > + m_nAttachment: AttachmentHandle_t + m_flSpriteFramerate: float32 + m_flFrame: float32 + m_nBrightness: uint32 + m_flBrightnessDuration: float32 + m_flSpriteScale: float32 + m_flScaleDuration: float32 + m_bWorldSpaceScale: bool + m_flGlowProxySize: float32 + m_flHDRColorScale: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +58 CDronegun + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vecAttentionTarget: Vector + m_vecTargetOffset: Vector + m_bHasTarget: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +214 CWeaponP250 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +45 CCSPlayerController + m_flSimulationTime: float32 + m_nTickBase: uint32 + m_fFlags: uint32 + m_pEntity: CEntityIdentity* + m_flCreateTime: GameTime_t + m_iTeamNum: uint8 + m_bSimulatedEveryTick: bool + m_hPawn: CHandle< CBasePlayerPawn > + m_iConnected: PlayerConnectedState + m_iszPlayerName: char[128] + m_steamID: uint64 + m_iDesiredFOV: uint32 + m_pInGameMoneyServices: CCSPlayerController_InGameMoneyServices* + m_pInventoryServices: CCSPlayerController_InventoryServices* + m_pActionTrackingServices: CCSPlayerController_ActionTrackingServices* + m_pDamageServices: CCSPlayerController_DamageServices* + m_iPing: uint32 + m_bHasCommunicationAbuseMute: bool + m_szCrosshairCodes: CUtlSymbolLarge + m_iPendingTeamNum: uint8 + m_flForceTeamTime: GameTime_t + m_iCompTeammateColor: int32 + m_bEverPlayedOnTeam: bool + m_szClan: CUtlSymbolLarge + m_iCoachingTeam: int32 + m_nPlayerDominated: uint64 + m_nPlayerDominatingMe: uint64 + m_iCompetitiveRanking: int32 + m_iCompetitiveWins: int32 + m_iCompetitiveRankType: int8 + m_nEndMatchNextMapVote: int32 + m_unActiveQuestId: uint16 + m_nQuestProgressReason: QuestProgress::Reason + m_unPlayerTvControlFlags: uint32 + m_nDisconnectionTick: int32 + m_bControllingBot: bool + m_bHasControlledBotThisRound: bool + m_bCanControlObservedBot: bool + m_hPlayerPawn: CHandle< CCSPlayerPawn > + m_hObserverPawn: CHandle< CCSObserverPawn > + m_bPawnIsAlive: bool + m_iPawnHealth: uint32 + m_iPawnArmor: int32 + m_bPawnHasDefuser: bool + m_bPawnHasHelmet: bool + m_nPawnCharacterDefIndex: uint16 + m_iPawnLifetimeStart: int32 + m_iPawnLifetimeEnd: int32 + m_iPawnGunGameLevel: int32 + m_iPawnBotDifficulty: int32 + m_hOriginalControllerOfCurrentPawn: CHandle< CCSPlayerController > + m_iScore: int32 + m_vecKills: CNetworkUtlVectorBase< EKillTypes_t > + m_iMVPs: int32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + +63 CEntityDissolve + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_flFadeInStart: float32 + m_flFadeInLength: float32 + m_flFadeOutModelStart: float32 + m_flFadeOutModelLength: float32 + m_flFadeOutStart: float32 + m_flFadeOutLength: float32 + m_flStartTime: GameTime_t + m_nDissolveType: EntityDisolveType_t + m_vDissolverOrigin: Vector + m_nMagnitude: uint32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +144 CPointCamera + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_FOV: float32 + m_Resolution: float32 + m_bFogEnable: bool + m_FogColor: Color + m_flFogStart: float32 + m_flFogEnd: float32 + m_flFogMaxDensity: float32 + m_bActive: bool + m_bUseScreenAspectRatio: bool + m_flAspectRatio: float32 + m_bNoSky: bool + m_fBrightness: float32 + m_flZFar: float32 + m_flZNear: float32 + m_bDofEnabled: bool + m_flDofNearBlurry: float32 + m_flDofNearCrisp: float32 + m_flDofFarCrisp: float32 + m_flDofFarBlurry: float32 + m_flDofTiltToGround: float32 + +151 CPointWorldText + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_messageText: char[512] + m_FontName: char[64] + m_bEnabled: bool + m_bFullbright: bool + m_flWorldUnitsPerPx: float32 + m_flFontSize: float32 + m_flDepthOffset: float32 + m_Color: Color + m_nJustifyHorizontal: PointWorldTextJustifyHorizontal_t + m_nJustifyVertical: PointWorldTextJustifyVertical_t + m_nReorientMode: PointWorldTextReorientMode_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +183 CTablet + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_flUpgradeExpirationTime: GameTime_t[4] + m_vecLocalHexFlags: int32[42] + m_nContractKillGridIndex: int32 + m_nContractKillGridHighResIndex: int32 + m_bTabletReceptionIsBlocked: bool + m_flScanProgress: float32 + m_flBootTime: GameTime_t + m_flShowMapTime: GameTime_t + m_vecNearestMetalCratePos: Vector + m_skinState: tablet_skin_state_t + m_vecNotificationIds: int32[8] + m_vecNotificationTimestamps: GameTime_t[8] + m_nLastPurchaseIndex: int32 + m_vecPlayerPositionHistory: Vector[24] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +28 CBumpMineProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_nParentBoneIndex: int32 + m_vecParentBonePos: Vector + m_bArmed: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +150 CPointValueRemapper + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDisabled: bool + m_bUpdateOnClient: bool + m_nInputType: ValueRemapperInputType_t + m_hRemapLineStart: CHandle< CBaseEntity > + m_hRemapLineEnd: CHandle< CBaseEntity > + m_flMaximumChangePerSecond: float32 + m_flDisengageDistance: float32 + m_flEngageDistance: float32 + m_bRequiresUseKey: bool + m_nOutputType: ValueRemapperOutputType_t + m_hOutputEntities: CNetworkUtlVectorBase< CHandle< CBaseEntity > > + m_nHapticsType: ValueRemapperHapticsType_t + m_nMomentumType: ValueRemapperMomentumType_t + m_flMomentumModifier: float32 + m_flSnapValue: float32 + m_nRatchetType: ValueRemapperRatchetType_t + m_flInputOffset: float32 + +51 CCSTeam + m_iTeamNum: uint8 + m_aPlayers: CNetworkUtlVectorBase< CHandle< CBasePlayerController > > + m_aPawns: CNetworkUtlVectorBase< CHandle< CBasePlayerPawn > > + m_iScore: int32 + m_szTeamname: char[129] + m_bSurrendered: bool + m_szTeamMatchStat: char[512] + m_numMapVictories: int32 + m_scoreFirstHalf: int32 + m_scoreSecondHalf: int32 + m_scoreOvertime: int32 + m_szClanTeamname: char[129] + m_iClanID: uint32 + m_szTeamFlagImage: char[8] + m_szTeamLogoImage: char[8] + m_nGGLeaderSlot_CT: CPlayerSlot + m_nGGLeaderSlot_T: CPlayerSlot + +85 CFogController + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + +153 CPrecipitation + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +194 CWeaponAWP + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +15 CBasePlayerWeapon + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + +75 CEnvScreenOverlay + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszOverlayNames: CUtlSymbolLarge[10] + m_flOverlayTimes: float32[10] + m_flStartTime: GameTime_t + m_iDesiredOverlay: int32 + m_bIsActive: bool + +157 CRagdollManager + m_iCurrentMaxRagdollCount: int8 + +53 CDangerZoneController + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDangerZoneControllerEnabled: bool + m_bMissionControlledExplosions: bool + m_vecEndGameCircleStart: Vector + m_vecEndGameCircleEnd: Vector + m_flStartTime: GameTime_t + m_flFinalExpansionTime: float32 + m_DangerZones: CHandle< CDangerZone >[42] + m_flWaveEndTimes: GameTime_t[5] + m_hTheFinalZone: CHandle< CDangerZone > + +122 CMapVetoPickController + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nDraftType: int32 + m_nTeamWinningCoinToss: int32 + m_nTeamWithFirstChoice: int32[64] + m_nVoteMapIdsList: int32[7] + m_nAccountIDs: int32[64] + m_nMapId0: int32[64] + m_nMapId1: int32[64] + m_nMapId2: int32[64] + m_nMapId3: int32[64] + m_nMapId4: int32[64] + m_nMapId5: int32[64] + m_nStartingSide0: int32[64] + m_nCurrentPhase: int32 + m_nPhaseStartTick: int32 + m_nPhaseDurationTicks: int32 + +210 CWeaponMP7 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +215 CWeaponP90 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +186 CTonemapController2 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flAutoExposureMin: float32 + m_flAutoExposureMax: float32 + m_flTonemapPercentTarget: float32 + m_flTonemapPercentBrightPixels: float32 + m_flTonemapMinAvgLum: float32 + m_flExposureAdaptationSpeedUp: float32 + m_flExposureAdaptationSpeedDown: float32 + m_flTonemapEVSmoothingRange: float32 + +188 CTriggerVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +77 CEnvVolumetricFogController + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flScattering: float32 + m_flAnisotropy: float32 + m_flFadeSpeed: float32 + m_flDrawDistance: float32 + m_flFadeInStart: float32 + m_flFadeInEnd: float32 + m_flIndirectStrength: float32 + m_nIndirectTextureDimX: int32 + m_nIndirectTextureDimY: int32 + m_nIndirectTextureDimZ: int32 + m_vBoxMins: Vector + m_vBoxMaxs: Vector + m_bActive: bool + m_flStartAnisoTime: GameTime_t + m_flStartScatterTime: GameTime_t + m_flStartDrawDistanceTime: GameTime_t + m_flStartAnisotropy: float32 + m_flStartScattering: float32 + m_flStartDrawDistance: float32 + m_flDefaultAnisotropy: float32 + m_flDefaultScattering: float32 + m_flDefaultDrawDistance: float32 + m_bStartDisabled: bool + m_bEnableIndirect: bool + m_bIsMaster: bool + m_hFogIndirectTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_nForceRefreshCount: int32 + +87 CFuncBrush + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +96 CGameRulesProxy + + +105 CInfoInstructorHintHostageRescueZone + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +132 CPhysicsProp + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +95 CFuncWater + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +112 CItemCash + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +5 CBaseCombatCharacter + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +57 CDrone + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_hMoveToThisEntity: CHandle< CBaseEntity > + m_hDeliveryCargo: CHandle< CBaseEntity > + m_hRecentCargo: CHandle< CBaseEntity > + m_bPilotTakeoverAllowed: bool + m_hPotentialCargo: CHandle< CBaseEntity > + m_hCurrentPilot: CHandle< CBaseEntity > + m_vecTagPositions: Vector[24] + m_vecTagIncrements: int32[24] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +184 CTeam + m_iTeamNum: uint8 + m_aPlayers: CNetworkUtlVectorBase< CHandle< CBasePlayerController > > + m_aPawns: CNetworkUtlVectorBase< CHandle< CBasePlayerPawn > > + m_iScore: int32 + m_szTeamname: char[129] + +121 CLightSpotEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CLightComponent: CLightComponent + CRenderComponent: CRenderComponent + +129 CParticleSystem + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_szSnapshotFileName: char[512] + m_bActive: bool + m_bFrozen: bool + m_flFreezeTransitionDuration: float32 + m_nStopType: int32 + m_bAnimateDuringGameplayPause: bool + m_iEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_flStartTime: GameTime_t + m_flPreSimTime: float32 + m_vServerControlPoints: Vector[4] + m_iServerControlPointAssignments: uint8[4] + m_hControlPointEnts: CHandle< CBaseEntity >[64] + m_bNoSave: bool + m_bNoFreeze: bool + m_bNoRamp: bool + +167 CSmokeGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +84 CFlashbang + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +101 CHostage + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iHealth: int32 + m_lifeState: uint8 + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_vel: Vector + m_isRescued: bool + m_jumpedThisFrame: bool + m_nHostageState: int32 + m_leader: CHandle< CBaseEntity > + m_flRescueStartTime: GameTime_t + m_flGrabSuccessTime: GameTime_t + m_flDropStartTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +163 CSensorGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +208 CWeaponMAC10 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +27 CBumpMine + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +59 CDynamicLight + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_Flags: uint8 + m_LightStyle: uint8 + m_Radius: float32 + m_Exponent: int32 + m_InnerAngle: float32 + m_OuterAngle: float32 + m_SpotRadius: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +74 CEnvProjectedTexture + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hTargetEntity: CHandle< CBaseEntity > + m_bState: bool + m_bAlwaysUpdate: bool + m_flLightFOV: float32 + m_bEnableShadows: bool + m_bSimpleProjection: bool + m_bLightOnlyTarget: bool + m_bLightWorld: bool + m_bCameraSpace: bool + m_flBrightnessScale: float32 + m_LightColor: Color + m_flIntensity: float32 + m_flLinearAttenuation: float32 + m_flQuadraticAttenuation: float32 + m_bVolumetric: bool + m_flNoiseStrength: float32 + m_flFlashlightTime: float32 + m_nNumPlanes: uint32 + m_flPlaneOffset: float32 + m_flVolumetricIntensity: float32 + m_flColorTransitionTime: float32 + m_flAmbient: float32 + m_SpotlightTextureName: char[512] + m_nSpotlightTextureFrame: int32 + m_nShadowQuality: uint32 + m_flNearZ: float32 + m_flFarZ: float32 + m_flProjectionSize: float32 + m_flRotation: float32 + m_bFlipHorizontal: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +104 CInferno + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_fireXDelta: int32[64] + m_fireYDelta: int32[64] + m_fireZDelta: int32[64] + m_fireParentXDelta: int32[64] + m_fireParentYDelta: int32[64] + m_fireParentZDelta: int32[64] + m_bFireIsBurning: bool[64] + m_BurnNormal: Vector[64] + m_fireCount: int32 + m_nInfernoType: int32 + m_nFireEffectTickBegin: int32 + m_nFireLifetime: float32 + m_bInPostEffectTime: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +159 CRagdollPropAttached + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_ragPos: CNetworkUtlVectorBase< Vector > + m_ragAngles: CNetworkUtlVectorBase< QAngle > + m_hRagdollSource: CHandle< CBaseEntity > + m_flBlendWeight: float32 + m_boneIndexAttached: uint32 + m_ragdollAttachedObjectIndex: uint32 + m_attachmentPointBoneSpace: Vector + m_attachmentPointRagdollSpace: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +174 CSoundOpvarSetOBBWindEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +16 CBasePropDoor + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bUseHitboxesForRenderBox: bool + m_bUseAnimGraph: bool + m_eDoorState: DoorState_t + m_bLocked: bool + m_closedPosition: Vector + m_closedAngles: QAngle + m_hMaster: CHandle< CBasePropDoor > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +19 CBaseViewModel + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_fEffects: uint32 + m_clrRender: Color + m_nViewModelIndex: uint32 + m_nAnimationParity: uint32 + m_flAnimationStartTime: float32 + m_hWeapon: CHandle< CBasePlayerWeapon > + m_hControlPanel: CHandle< CBaseEntity > + +61 CEconEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +187 CTriggerBuoyancy + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_flFluidDensity: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +69 CEnvDecal + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hDecalMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_flWidth: float32 + m_flHeight: float32 + m_flDepth: float32 + m_nRenderOrder: uint32 + m_bProjectOnWorld: bool + m_bProjectOnCharacters: bool + m_bProjectOnWater: bool + m_flDepthSortBias: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +79 CEnvWind + m_flStartTime: GameTime_t + m_iWindSeed: uint32 + m_iMinWind: uint16 + m_iMaxWind: uint16 + m_windRadius: int32 + m_iMinGust: uint16 + m_iMaxGust: uint16 + m_flMinGustDelay: float32 + m_flMaxGustDelay: float32 + m_flGustDuration: float32 + m_iGustDirChange: uint16 + m_location: Vector + m_iInitialWindDir: uint16 + m_flInitialWindSpeed: float32 + +43 CCSMinimapBoundary + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +199 CWeaponElite + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +205 CWeaponHKP2000 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +218 CWeaponSG556 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +0 CAK47 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +17 CBaseToggle + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +138 CPhysPropWeaponUpgrade + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +172 CSoundOpvarSetAABBEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +175 CSoundOpvarSetPathCornerEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +204 CWeaponGlock + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +23 CBreachCharge + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +90 CFuncLadder + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_vecLadderDir: Vector + m_vecPlayerMountPositionTop: Vector + m_vecPlayerMountPositionBottom: Vector + m_flAutoRideSpeed: float32 + m_bFakeLadder: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +118 CLightEnvironmentEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CLightComponent: CLightComponent + CRenderComponent: CRenderComponent + +135 CPhysPropAmmoBox + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +141 CPlayerPing + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hPlayer: CHandle< CBaseEntity > + m_hPingedEntity: CHandle< CBaseEntity > + m_iType: int32 + m_bUrgent: bool + m_szPlaceName: char[18] + +9 CBaseEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +26 CBreakableProp + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +33 CCSEnvGunfire + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +42 CCSGOViewModel + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_fEffects: uint32 + m_clrRender: Color + m_nViewModelIndex: uint32 + m_nAnimationParity: uint32 + m_flAnimationStartTime: float32 + m_hWeapon: CHandle< CBasePlayerWeapon > + m_hControlPanel: CHandle< CBaseEntity > + m_bShouldIgnoreOffsetAndAccuracy: bool + m_nWeaponParity: uint32 + +136 CPhysPropLootCrate + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iHealth: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bRenderInPSPM: bool + m_bRenderInTablet: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +165 CShatterGlassShardPhysics + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_nModelID: int32 + m_hMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_solid: ShardSolid_t + m_ShatterPanelMode: ShatterPanelMode + m_vecPanelSize: Vector2D + m_vecStressPositionA: Vector2D + m_vecStressPositionB: Vector2D + m_vecPanelVertices: CNetworkUtlVectorBase< Vector2D > + m_flGlassHalfThickness: float32 + m_bHasParent: bool + m_bParentFrozen: bool + m_SurfacePropStringToken: CUtlStringToken + m_LightGroup: CUtlStringToken + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +182 CSurvivalSpawnChopper + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +185 CTextureBasedAnimatable + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bLoop: bool + m_flFPS: float32 + m_hPositionKeys: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hRotationKeys: CStrongHandle< InfoForResourceTypeCTextureBase > + m_vAnimationBoundsMin: Vector + m_vAnimationBoundsMax: Vector + m_flStartTime: float32 + m_flStartFrame: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +189 CTripWireFire + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +40 CCSGO_TeamSelectCounterTerroristPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +41 CCSGO_TeamSelectTerroristPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +30 CChicken + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bUseHitboxesForRenderBox: bool + m_bUseAnimGraph: bool + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_jumpedThisFrame: bool + m_leader: CHandle< CCSPlayerPawnBase > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +62 CEconWearable + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +93 CFuncRotating + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +166 CSkyCamera + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + scale: int16 + origin: Vector + bClip3DSkyBoxNearToWorldFar: bool + flClip3DSkyBoxNearToWorldFarOffset: float32 + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + m_nWorldGroupID: WorldGroupId_t + m_skyboxSlotToken: CUtlStringToken + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + +56 CDecoyProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_vInitialVelocity: Vector + m_nBounces: int32 + m_nExplodeEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_nExplodeEffectTickBegin: int32 + m_vecExplodeEffectOrigin: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +72 CEnvLightProbeVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hLightProbeTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightIndicesTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightScalarsTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightShadowsTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_vBoxMins: Vector + m_vBoxMaxs: Vector + m_LightGroups: CUtlSymbolLarge + m_bMoveable: bool + m_nHandshake: int32 + m_nPriority: int32 + m_bStartDisabled: bool + m_nLightProbeSizeX: int32 + m_nLightProbeSizeY: int32 + m_nLightProbeSizeZ: int32 + m_nLightProbeAtlasX: int32 + m_nLightProbeAtlasY: int32 + m_nLightProbeAtlasZ: int32 + m_bEnabled: bool + +89 CFuncElectrifiedVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_EffectName: CUtlSymbolLarge + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +173 CSoundOpvarSetOBBEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +219 CWeaponShield + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_flDisplayHealth: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +225 CWeaponZoneRepulsor + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +83 CFists + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bPlayingUninterruptableAct: bool + m_nUninterruptableActivity: PlayerAnimEvent_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +92 CFuncMoveLinear + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_fFlags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +152 CPostProcessingVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_hPostSettings: CStrongHandle< InfoForResourceTypeCPostProcessingResource > + m_flFadeDuration: float32 + m_flMinLogExposure: float32 + m_flMaxLogExposure: float32 + m_flMinExposure: float32 + m_flMaxExposure: float32 + m_flExposureCompensation: float32 + m_flExposureFadeSpeedUp: float32 + m_flExposureFadeSpeedDown: float32 + m_flTonemapEVSmoothingRange: float32 + m_bMaster: bool + m_bExposureControl: bool + m_flRate: float32 + m_flTonemapPercentTarget: float32 + m_flTonemapPercentBrightPixels: float32 + m_flTonemapMinAvgLum: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +154 CPrecipitationBlocker + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +178 CSpotlightEnd + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_flLightScale: float32 + m_Radius: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +216 CWeaponSawedoff + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +195 CWeaponBaseItem + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_duration: float32 + m_timestamp: GameTime_t + m_timescale: float32 + m_nWorldGroupId: WorldGroupId_t + m_bRedraw: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +211 CWeaponMP9 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +158 CRagdollProp + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_ragPos: CNetworkUtlVectorBase< Vector > + m_ragAngles: CNetworkUtlVectorBase< QAngle > + m_hRagdollSource: CHandle< CBaseEntity > + m_flBlendWeight: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +176 CSoundOpvarSetPointBase + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iszStackName: CUtlSymbolLarge + m_iszOperatorName: CUtlSymbolLarge + m_iszOpvarName: CUtlSymbolLarge + m_iOpvarIndex: int32 + m_bUseAutoCompare: bool + +221 CWeaponTaser + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_fFireTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +223 CWeaponUMP45 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +31 CColorCorrection + CBodyComponent: CBodyComponent + m_flFadeInDuration: float32 + m_flFadeOutDuration: float32 + m_flMaxWeight: float32 + m_bEnabled: bool + m_bMaster: bool + m_bClientSide: bool + m_bExclusive: bool + m_MinFalloff: float32 + m_MaxFalloff: float32 + m_flCurWeight: float32 + m_netlookupFilename: char[512] + +39 CCSGO_TeamSelectCharacterPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +220 CWeaponSSG08 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +66 CEnvCubemap + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hCubemapTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_bCustomCubemapTexture: bool + m_flInfluenceRadius: float32 + m_vBoxProjectMins: Vector + m_vBoxProjectMaxs: Vector + m_LightGroups: CUtlSymbolLarge + m_bMoveable: bool + m_nHandshake: int32 + m_nEnvCubeMapArrayIndex: int32 + m_nPriority: int32 + m_flEdgeFadeDist: float32 + m_vEdgeFadeDists: Vector + m_flDiffuseScale: float32 + m_bStartDisabled: bool + m_bDefaultEnvMap: bool + m_bDefaultSpecEnvMap: bool + m_bIndoorCubeMap: bool + m_bCopyDiffuseFromDefaultCubemap: bool + m_bEnabled: bool + +162 CSceneEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bIsPlayingBack: bool + m_bPaused: bool + m_bMultiplayer: bool + m_bAutogenerated: bool + m_flForceClientTime: float32 + m_hActorList: CNetworkUtlVectorBase< CHandle< CBaseFlex > > + m_nSceneStringIndex: uint16 + +107 CInfoMapRegion + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flRadius: float32 + m_szLocToken: char[128] + +209 CWeaponMag7 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +2 CBaseAnimGraph + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +18 CBaseTrigger + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +50 CCSPropExplodingBarrelTop + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_flOverrideAlpha: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +80 CFireCrackerBlast + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_fireXDelta: int32[64] + m_fireYDelta: int32[64] + m_fireZDelta: int32[64] + m_fireParentXDelta: int32[64] + m_fireParentYDelta: int32[64] + m_fireParentZDelta: int32[64] + m_bFireIsBurning: bool[64] + m_BurnNormal: Vector[64] + m_fireCount: int32 + m_nInfernoType: int32 + m_nFireEffectTickBegin: int32 + m_nFireLifetime: float32 + m_bInPostEffectTime: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +91 CFuncMonitor + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_targetCamera: CUtlString + m_nResolutionEnum: int32 + m_bRenderShadows: bool + m_bUseUniqueColorTarget: bool + m_brushModelName: CUtlString + m_hTargetCamera: CHandle< CBaseEntity > + m_bEnabled: bool + m_bDraw3DSkybox: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +37 CCSGO_TeamIntroTerroristPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +106 CInfoLadderDismount + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +108 CInfoOffscreenPanoramaTexture + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDisabled: bool + m_nResolutionX: int32 + m_nResolutionY: int32 + m_szLayoutFileName: CUtlSymbolLarge + m_RenderAttrName: CUtlSymbolLarge + m_TargetEntities: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_nTargetChangeCount: int32 + m_vecCSSClasses: CNetworkUtlVectorBase< CUtlSymbolLarge > + +73 CEnvParticleGlow + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_szSnapshotFileName: char[512] + m_bActive: bool + m_bFrozen: bool + m_flFreezeTransitionDuration: float32 + m_nStopType: int32 + m_bAnimateDuringGameplayPause: bool + m_iEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_flStartTime: GameTime_t + m_flPreSimTime: float32 + m_vServerControlPoints: Vector[4] + m_iServerControlPointAssignments: uint8[4] + m_hControlPointEnts: CHandle< CBaseEntity >[64] + m_bNoSave: bool + m_bNoFreeze: bool + m_bNoRamp: bool + m_flAlphaScale: float32 + m_flRadiusScale: float32 + m_flSelfIllumScale: float32 + m_ColorTint: Color + m_hTextureOverride: CStrongHandle< InfoForResourceTypeCTextureBase > + +82 CFish + m_lifeState: uint8 + m_x: float32 + m_y: float32 + m_z: float32 + m_angle: float32 + m_poolOrigin: Vector + m_waterLevel: float32 + +111 CItem_Healthshot + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_duration: float32 + m_timestamp: GameTime_t + m_timescale: float32 + m_nWorldGroupId: WorldGroupId_t + m_bRedraw: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +21 CBrBaseItem + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +36 CCSGO_TeamIntroCounterTerroristPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +55 CDecoyGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +109 CInfoVisibilityBox + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nMode: int32 + m_vBoxSize: Vector + m_bEnabled: bool + +171 CSoundAreaEntitySphere + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDisabled: bool + m_iszSoundAreaType: CUtlSymbolLarge + m_vPos: Vector + m_flRadius: float32 + +54 CDEagle + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +120 CLightOrthoEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CLightComponent: CLightComponent + CRenderComponent: CRenderComponent + +125 CMolotovGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +179 CSprite + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hSpriteMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_hAttachedToEntity: CHandle< CBaseEntity > + m_nAttachment: AttachmentHandle_t + m_flSpriteFramerate: float32 + m_flFrame: float32 + m_nBrightness: uint32 + m_flBrightnessDuration: float32 + m_flSpriteScale: float32 + m_flScaleDuration: float32 + m_bWorldSpaceScale: bool + m_flGlowProxySize: float32 + m_flHDRColorScale: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +146 CPointClientUIWorldPanel + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_DialogXMLName: CUtlSymbolLarge + m_PanelClassName: CUtlSymbolLarge + m_PanelID: CUtlSymbolLarge + m_bIgnoreInput: bool + m_bLit: bool + m_bFollowPlayerAcrossTeleport: bool + m_flWidth: float32 + m_flHeight: float32 + m_flDPI: float32 + m_flInteractDistance: float32 + m_flDepthOffset: float32 + m_unOwnerContext: uint32 + m_unHorizontalAlign: uint32 + m_unVerticalAlign: uint32 + m_unOrientation: uint32 + m_bAllowInteractionFromAllSceneWorlds: bool + m_vecCSSClasses: CNetworkUtlVectorBase< CUtlSymbolLarge > + m_bOpaque: bool + m_bNoDepth: bool + m_bRenderBackface: bool + m_bUseOffScreenIndicator: bool + m_bExcludeFromSaveGames: bool + m_bGrabbable: bool + m_bOnlyRenderToTexture: bool + m_bDisableMipGen: bool + m_nExplicitImageLayout: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +224 CWeaponXM1014 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +226 CWorld + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +22 CBRC4Target + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bBrokenOpen: bool + m_flRadius: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +78 CEnvVolumetricFogVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bActive: bool + m_vBoxMins: Vector + m_vBoxMaxs: Vector + m_bStartDisabled: bool + m_flStrength: float32 + m_nFalloffShape: int32 + m_flFalloffExponent: float32 + +202 CWeaponG3SG1 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +49 CCSPropExplodingBarrel + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +70 CEnvDetailController + m_flFadeStartDist: float32 + m_flFadeEndDist: float32 + +128 CParadropChopper + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_hCallingPlayer: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +145 CPointClientUIDialog + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_DialogXMLName: CUtlSymbolLarge + m_PanelClassName: CUtlSymbolLarge + m_PanelID: CUtlSymbolLarge + m_hActivator: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +156 CPropCounter + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flDisplayValue: float32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +48 CCSPlayerResource + m_bHostageAlive: bool[12] + m_isHostageFollowingSomeone: bool[12] + m_iHostageEntityIDs: CEntityIndex[12] + m_bombsiteCenterA: Vector + m_bombsiteCenterB: Vector + m_hostageRescueX: int32[4] + m_hostageRescueY: int32[4] + m_hostageRescueZ: int32[4] + m_bEndMatchNextMapAllVoted: bool + +123 CMelee + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_flThrowAt: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +29 CC4 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bStartedArming: bool + m_fArmedTime: GameTime_t + m_bBombPlacedAnimation: bool + m_bShowC4LED: bool + m_bIsPlantingViaUse: bool + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +71 CEnvGasCanister + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bLanded: bool + m_vecImpactPosition: Vector + m_vecStartPosition: Vector + m_vecEnterWorldPosition: Vector + m_vecDirection: Vector + m_vecStartAngles: QAngle + m_flFlightTime: float32 + m_flFlightSpeed: float32 + m_flLaunchTime: GameTime_t + m_flInitialZSpeed: float32 + m_flZAcceleration: float32 + m_flHorizSpeed: float32 + m_bLaunchedFromWithinWorld: bool + m_vecParabolaDirection: Vector + m_flWorldEnterTime: float32 + m_vecSkyboxOrigin: Vector + m_flSkyboxScale: float32 + m_bInSkybox: bool + m_bDoImpactEffects: bool + m_nMyZoneIndex: int32 + m_hSkyboxCopy: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +114 CKnife + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +200 CWeaponFamas + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +94 CFuncTrackTrain + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +4 CBaseClientUIEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_DialogXMLName: CUtlSymbolLarge + m_PanelClassName: CUtlSymbolLarge + m_PanelID: CUtlSymbolLarge + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +65 CEnvCombinedLightProbeVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_Color: Color + m_flBrightness: float32 + m_hCubemapTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_bCustomCubemapTexture: bool + m_hLightProbeTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightIndicesTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightScalarsTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_hLightProbeDirectLightShadowsTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_vBoxMins: Vector + m_vBoxMaxs: Vector + m_LightGroups: CUtlSymbolLarge + m_bMoveable: bool + m_nHandshake: int32 + m_nEnvCubeMapArrayIndex: int32 + m_nPriority: int32 + m_bStartDisabled: bool + m_flEdgeFadeDist: float32 + m_vEdgeFadeDists: Vector + m_nLightProbeSizeX: int32 + m_nLightProbeSizeY: int32 + m_nLightProbeSizeZ: int32 + m_nLightProbeAtlasX: int32 + m_nLightProbeAtlasY: int32 + m_nLightProbeAtlasZ: int32 + m_bEnabled: bool + +68 CEnvCubemapFog + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flEndDistance: float32 + m_flStartDistance: float32 + m_flFogFalloffExponent: float32 + m_bHeightFogEnabled: bool + m_flFogHeightWidth: float32 + m_flFogHeightEnd: float32 + m_flFogHeightStart: float32 + m_flFogHeightExponent: float32 + m_flLODBias: float32 + m_bActive: bool + m_bStartDisabled: bool + m_flFogMaxOpacity: float32 + m_nCubemapSourceType: int32 + m_hSkyMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_iszSkyEntity: CUtlSymbolLarge + m_hFogCubemapTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_bHasHeightFogEnd: bool + +116 CLightDirectionalEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CLightComponent: CLightComponent + CRenderComponent: CRenderComponent + +139 CPlantedC4 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bBombTicking: bool + m_flC4Blow: GameTime_t + m_nBombSite: int32 + m_nSourceSoundscapeHash: int32 + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_flTimerLength: float32 + m_bBeingDefused: bool + m_flDefuseLength: float32 + m_flDefuseCountDown: GameTime_t + m_bBombDefused: bool + m_hBombDefuser: CHandle< CCSPlayerPawnBase > + m_hControlPanel: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +161 CRopeKeyframe + CBodyComponent: CBodyComponent + m_RopeFlags: uint16 + m_Slack: int16 + m_Width: float32 + m_TextureScale: float32 + m_nSegments: uint8 + m_bConstrainBetweenEndpoints: bool + m_iRopeMaterialModelIndex: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_Subdiv: uint8 + m_nChangeCount: uint8 + m_RopeLength: int16 + m_fLockedPoints: uint8 + m_flScrollSpeed: float32 + m_hStartPoint: CHandle< CBaseEntity > + m_hEndPoint: CHandle< CBaseEntity > + m_iStartAttachment: AttachmentHandle_t + m_iEndAttachment: AttachmentHandle_t + +198 CWeaponCSBaseGun + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +201 CWeaponFiveSeven + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +3 CBaseButton + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_glowEntity: CHandle< CBaseModelEntity > + m_usable: bool + m_szDisplayText: CUtlSymbolLarge + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +10 CBaseFlex + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_flexWeight: CNetworkUtlVectorBase< float32 > + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +99 CHandleTest + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_Handle: CHandle< CBaseEntity > + m_bSendHandle: bool + +35 CCSGO_TeamIntroCharacterPosition + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nOrdinal: int32 + m_sWeaponName: CUtlString + m_xuid: uint64 + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + +76 CEnvSky + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hSkyMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_hSkyMaterialLightingOnly: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_bStartDisabled: bool + m_vTintColor: Color + m_vTintColorLightingOnly: Color + m_flBrightnessScale: float32 + m_nFogType: int32 + m_flFogMinStart: float32 + m_flFogMinEnd: float32 + m_flFogMaxStart: float32 + m_flFogMaxEnd: float32 + m_bEnabled: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +102 CHostageCarriableProp + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +134 CPhysMagnet + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +97 CGradientFog + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hGradientFogTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_flFogStartDistance: float32 + m_flFogEndDistance: float32 + m_bHeightFogEnabled: bool + m_flFogStartHeight: float32 + m_flFogEndHeight: float32 + m_flFarZ: float32 + m_flFogMaxOpacity: float32 + m_flFogFalloffExponent: float32 + m_flFogVerticalExponent: float32 + m_fogColor: Color + m_flFogStrength: float32 + m_flFadeTime: float32 + m_bStartDisabled: bool + m_bIsEnabled: bool + +124 CModelPointEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +137 CPhysPropRadarJammer + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +127 COmniLight + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_nColorMode: int32 + m_Color: Color + m_flColorTemperature: float32 + m_flBrightness: float32 + m_flBrightnessScale: float32 + m_nDirectLight: int32 + m_nBakedShadowIndex: int32 + m_nLuminaireShape: int32 + m_flLuminaireSize: float32 + m_flLuminaireAnisotropy: float32 + m_LightStyleString: CUtlString + m_flLightStyleStartTime: GameTime_t + m_QueuedLightStyleStrings: CNetworkUtlVectorBase< CUtlString > + m_LightStyleEvents: CNetworkUtlVectorBase< CUtlString > + m_LightStyleTargets: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hLightCookie: CStrongHandle< InfoForResourceTypeCTextureBase > + m_flShape: float32 + m_flSoftX: float32 + m_flSoftY: float32 + m_flSkirt: float32 + m_flSkirtNear: float32 + m_vSizeParams: Vector + m_flRange: float32 + m_vShear: Vector + m_nBakeSpecularToCubemaps: int32 + m_vBakeSpecularToCubemapsSize: Vector + m_nCastShadows: int32 + m_nShadowMapSize: int32 + m_nShadowPriority: int32 + m_bContactShadow: bool + m_nBounceLight: int32 + m_flBounceScale: float32 + m_flMinRoughness: float32 + m_vAlternateColor: Vector + m_fAlternateColorBrightness: float32 + m_nFog: int32 + m_flFogStrength: float32 + m_nFogShadows: int32 + m_flFogScale: float32 + m_flFadeSizeStart: float32 + m_flFadeSizeEnd: float32 + m_flShadowFadeSizeStart: float32 + m_flShadowFadeSizeEnd: float32 + m_bPrecomputedFieldsValid: bool + m_vPrecomputedBoundsMins: Vector + m_vPrecomputedBoundsMaxs: Vector + m_vPrecomputedOBBOrigin: Vector + m_vPrecomputedOBBAngles: QAngle + m_vPrecomputedOBBExtent: Vector + m_flInnerAngle: float32 + m_flOuterAngle: float32 + m_bShowLight: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +160 CRectLight + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_nColorMode: int32 + m_Color: Color + m_flColorTemperature: float32 + m_flBrightness: float32 + m_flBrightnessScale: float32 + m_nDirectLight: int32 + m_nBakedShadowIndex: int32 + m_nLuminaireShape: int32 + m_flLuminaireSize: float32 + m_flLuminaireAnisotropy: float32 + m_LightStyleString: CUtlString + m_flLightStyleStartTime: GameTime_t + m_QueuedLightStyleStrings: CNetworkUtlVectorBase< CUtlString > + m_LightStyleEvents: CNetworkUtlVectorBase< CUtlString > + m_LightStyleTargets: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hLightCookie: CStrongHandle< InfoForResourceTypeCTextureBase > + m_flShape: float32 + m_flSoftX: float32 + m_flSoftY: float32 + m_flSkirt: float32 + m_flSkirtNear: float32 + m_vSizeParams: Vector + m_flRange: float32 + m_vShear: Vector + m_nBakeSpecularToCubemaps: int32 + m_vBakeSpecularToCubemapsSize: Vector + m_nCastShadows: int32 + m_nShadowMapSize: int32 + m_nShadowPriority: int32 + m_bContactShadow: bool + m_nBounceLight: int32 + m_flBounceScale: float32 + m_flMinRoughness: float32 + m_vAlternateColor: Vector + m_fAlternateColorBrightness: float32 + m_nFog: int32 + m_flFogStrength: float32 + m_nFogShadows: int32 + m_flFogScale: float32 + m_flFadeSizeStart: float32 + m_flFadeSizeEnd: float32 + m_flShadowFadeSizeStart: float32 + m_flShadowFadeSizeEnd: float32 + m_bPrecomputedFieldsValid: bool + m_vPrecomputedBoundsMins: Vector + m_vPrecomputedBoundsMaxs: Vector + m_vPrecomputedOBBOrigin: Vector + m_vPrecomputedOBBAngles: QAngle + m_vPrecomputedOBBExtent: Vector + m_bShowLight: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +206 CWeaponM249 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +213 CWeaponNOVA + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +217 CWeaponSCAR20 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +34 CCSGameRulesProxy + m_pGameRules: CCSGameRules* + +60 CDynamicProp + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bUseHitboxesForRenderBox: bool + m_bUseAnimGraph: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +103 CIncendiaryGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +130 CPathParticleRope + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flParticleSpacing: float32 + m_flSlack: float32 + m_flRadius: float32 + m_ColorTint: Color + m_nEffectState: int32 + m_iEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_PathNodes_Position: CNetworkUtlVectorBase< Vector > + m_PathNodes_TangentIn: CNetworkUtlVectorBase< Vector > + m_PathNodes_TangentOut: CNetworkUtlVectorBase< Vector > + m_PathNodes_Color: CNetworkUtlVectorBase< Vector > + m_PathNodes_PinEnabled: CNetworkUtlVectorBase< bool > + m_PathNodes_RadiusScale: CNetworkUtlVectorBase< float32 > + +191 CVoteController + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_iActiveIssueIndex: int32 + m_iOnlyTeamToVote: int32 + m_nVoteOptionCount: int32[5] + m_nPotentialVotes: int32 + m_bIsYesNoVote: bool + +147 CPointClientUIWorldTextPanel + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_DialogXMLName: CUtlSymbolLarge + m_PanelClassName: CUtlSymbolLarge + m_PanelID: CUtlSymbolLarge + m_bIgnoreInput: bool + m_bLit: bool + m_bFollowPlayerAcrossTeleport: bool + m_flWidth: float32 + m_flHeight: float32 + m_flDPI: float32 + m_flInteractDistance: float32 + m_flDepthOffset: float32 + m_unOwnerContext: uint32 + m_unHorizontalAlign: uint32 + m_unVerticalAlign: uint32 + m_unOrientation: uint32 + m_bAllowInteractionFromAllSceneWorlds: bool + m_vecCSSClasses: CNetworkUtlVectorBase< CUtlSymbolLarge > + m_bOpaque: bool + m_bNoDepth: bool + m_bRenderBackface: bool + m_bUseOffScreenIndicator: bool + m_bExcludeFromSaveGames: bool + m_bGrabbable: bool + m_bOnlyRenderToTexture: bool + m_bDisableMipGen: bool + m_nExplicitImageLayout: int32 + m_messageText: char[512] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +1 CBarnLight + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bEnabled: bool + m_nColorMode: int32 + m_Color: Color + m_flColorTemperature: float32 + m_flBrightness: float32 + m_flBrightnessScale: float32 + m_nDirectLight: int32 + m_nBakedShadowIndex: int32 + m_nLuminaireShape: int32 + m_flLuminaireSize: float32 + m_flLuminaireAnisotropy: float32 + m_LightStyleString: CUtlString + m_flLightStyleStartTime: GameTime_t + m_QueuedLightStyleStrings: CNetworkUtlVectorBase< CUtlString > + m_LightStyleEvents: CNetworkUtlVectorBase< CUtlString > + m_LightStyleTargets: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_hLightCookie: CStrongHandle< InfoForResourceTypeCTextureBase > + m_flShape: float32 + m_flSoftX: float32 + m_flSoftY: float32 + m_flSkirt: float32 + m_flSkirtNear: float32 + m_vSizeParams: Vector + m_flRange: float32 + m_vShear: Vector + m_nBakeSpecularToCubemaps: int32 + m_vBakeSpecularToCubemapsSize: Vector + m_nCastShadows: int32 + m_nShadowMapSize: int32 + m_nShadowPriority: int32 + m_bContactShadow: bool + m_nBounceLight: int32 + m_flBounceScale: float32 + m_flMinRoughness: float32 + m_vAlternateColor: Vector + m_fAlternateColorBrightness: float32 + m_nFog: int32 + m_flFogStrength: float32 + m_nFogShadows: int32 + m_flFogScale: float32 + m_flFadeSizeStart: float32 + m_flFadeSizeEnd: float32 + m_flShadowFadeSizeStart: float32 + m_flShadowFadeSizeEnd: float32 + m_bPrecomputedFieldsValid: bool + m_vPrecomputedBoundsMins: Vector + m_vPrecomputedBoundsMaxs: Vector + m_vPrecomputedOBBOrigin: Vector + m_vPrecomputedOBBAngles: QAngle + m_vPrecomputedOBBExtent: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +20 CBeam + m_clrRender: Color + m_flFrame: float32 + CBodyComponent: CBodyComponent + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_flFrameRate: float32 + m_flHDRColorScale: float32 + m_nNumBeamEnts: uint8 + m_hBaseMaterial: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_nHaloIndex: CStrongHandle< InfoForResourceTypeIMaterial2 > + m_nBeamType: BeamType_t + m_nBeamFlags: uint32 + m_hAttachEntity: CHandle< CBaseEntity >[10] + m_nAttachIndex: AttachmentHandle_t[10] + m_fWidth: float32 + m_fEndWidth: float32 + m_fFadeLength: float32 + m_fHaloScale: float32 + m_fAmplitude: float32 + m_fStartFrame: float32 + m_fSpeed: float32 + m_nClipStyle: BeamClipStyle_t + m_bTurnedOff: bool + m_vecEndPos: Vector + +190 CTripWireFireProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_flAttachTime: GameTime_t + m_vecTripWireEndPositions: Vector[10] + m_bTripWireEndPositionsUsed: bool[10] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +8 CBaseDoor + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bIsUsable: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +117 CLightEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CLightComponent: CLightComponent + CRenderComponent: CRenderComponent + +131 CPhysBox + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +193 CWeaponAug + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +6 CBaseCSGrenade + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bRedraw: bool + m_bIsHeldByPlayer: bool + m_bPinPulled: bool + m_bJumpThrow: bool + m_eThrowStatus: EGrenadeThrowState + m_fThrowTime: GameTime_t + m_flThrowStrength: float32 + m_flThrowStrengthApproach: float32 + m_fDropTime: GameTime_t + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +11 CBaseGrenade + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +52 CDangerZone + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_vecDangerZoneOriginStartedAt: Vector + m_flBombLaunchTime: GameTime_t + m_flExtraRadius: float32 + m_flExtraRadiusStartTime: GameTime_t + m_flExtraRadiusTotalLerpTime: float32 + m_nDropOrder: int32 + m_iWave: int32 + +168 CSmokeGrenadeProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_vInitialVelocity: Vector + m_nBounces: int32 + m_nExplodeEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_nExplodeEffectTickBegin: int32 + m_vecExplodeEffectOrigin: Vector + m_nSmokeEffectTickBegin: int32 + m_bDidSmokeEffect: bool + m_nRandomSeed: int32 + m_vSmokeColor: Vector + m_vSmokeDetonationPos: Vector + m_VoxelFrameData: CUtlVector< uint8 > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +197 CWeaponCSBase + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +13 CBasePlayerController + m_flSimulationTime: float32 + m_nTickBase: uint32 + m_fFlags: uint32 + m_pEntity: CEntityIdentity* + m_flCreateTime: GameTime_t + m_iTeamNum: uint8 + m_bSimulatedEveryTick: bool + m_hPawn: CHandle< CBasePlayerPawn > + m_iConnected: PlayerConnectedState + m_iszPlayerName: char[128] + m_steamID: uint64 + m_iDesiredFOV: uint32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + +126 CMolotovProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_vInitialVelocity: Vector + m_nBounces: int32 + m_nExplodeEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_nExplodeEffectTickBegin: int32 + m_vecExplodeEffectOrigin: Vector + m_bIsIncGrenade: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +25 CBreakable + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +32 CColorCorrectionVolume + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bDisabled: bool + m_bClientSidePredicted: bool + m_bEnabled: bool + m_MaxWeight: float32 + m_FadeDuration: float32 + m_Weight: float32 + m_lookupFilename: char[512] + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +133 CPhysicsPropMultiplayer + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_spawnflags: uint32 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_noGhostCollision: bool + m_bAwake: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +169 CSoundAreaEntityBase + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_bDisabled: bool + m_iszSoundAreaType: CUtlSymbolLarge + m_vPos: Vector + +207 CWeaponM4A1 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +222 CWeaponTec9 + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +64 CEntityFlame + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hEntAttached: CHandle< CBaseEntity > + m_bCheapEffect: bool + +81 CFireSmoke + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flScale: float32 + m_flStartScale: float32 + m_flScaleTime: float32 + m_nFlags: uint32 + m_nFlameModelIndex: int32 + m_nFlameFromAboveModelIndex: int32 + +7 CBaseCSGrenadeProjectile + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_fFlags: uint32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_bIsLive: bool + m_DmgRadius: float32 + m_flDetonateTime: GameTime_t + m_flDamage: float32 + m_hThrower: CHandle< CBaseEntity > + m_vInitialVelocity: Vector + m_nBounces: int32 + m_nExplodeEffectIndex: CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > + m_nExplodeEffectTickBegin: int32 + m_vecExplodeEffectOrigin: Vector + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + +67 CEnvCubemapBox + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_hCubemapTexture: CStrongHandle< InfoForResourceTypeCTextureBase > + m_bCustomCubemapTexture: bool + m_flInfluenceRadius: float32 + m_vBoxProjectMins: Vector + m_vBoxProjectMaxs: Vector + m_LightGroups: CUtlSymbolLarge + m_bMoveable: bool + m_nHandshake: int32 + m_nEnvCubeMapArrayIndex: int32 + m_nPriority: int32 + m_flEdgeFadeDist: float32 + m_vEdgeFadeDists: Vector + m_flDiffuseScale: float32 + m_bStartDisabled: bool + m_bDefaultEnvMap: bool + m_bDefaultSpecEnvMap: bool + m_bIndoorCubeMap: bool + m_bCopyDiffuseFromDefaultCubemap: bool + m_bEnabled: bool + +212 CWeaponNegev + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_iClip1: int32 + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_iReapplyProvisionParity: int32 + m_hOuter: CHandle< CBaseEntity > + m_ProviderType: attributeprovidertypes_t + m_iItemDefinitionIndex: uint16 + m_iEntityQuality: int32 + m_iEntityLevel: uint32 + m_iItemIDHigh: uint32 + m_iItemIDLow: uint32 + m_iAccountID: uint32 + m_iInventoryPosition: uint32 + m_bInitialized: bool + m_Attributes: CUtlVector< CEconItemAttribute > + m_Attributes: CUtlVector< CEconItemAttribute > + m_szCustomName: char[161] + m_OriginalOwnerXuidLow: uint32 + m_OriginalOwnerXuidHigh: uint32 + m_nFallbackPaintKit: int32 + m_nFallbackSeed: int32 + m_flFallbackWear: float32 + m_nFallbackStatTrak: int32 + m_iState: WeaponState_t + m_flFireSequenceStartTime: float32 + m_nFireSequenceStartTimeChange: int32 + m_bPlayerFireEventIsPrimary: bool + m_weaponMode: CSWeaponMode + m_fAccuracyPenalty: float32 + m_iRecoilIndex: int32 + m_flRecoilIndex: float32 + m_bBurstMode: bool + m_flPostponeFireReadyTime: GameTime_t + m_bInReload: bool + m_bReloadVisuallyComplete: bool + m_flDroppedAtTime: GameTime_t + m_bIsHauledBack: bool + m_bSilencerOn: bool + m_flTimeSilencerSwitchComplete: GameTime_t + m_iOriginalTeamNumber: int32 + m_hPrevOwner: CHandle< CCSPlayerPawnBase > + m_fLastShotTime: GameTime_t + m_iIronSightMode: int32 + m_iNumEmptyAttacks: int32 + m_zoomLevel: int32 + m_iBurstShotsRemaining: int32 + m_bNeedsBoltAction: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + m_nNextThinkTick: GameTick_t + m_nNextPrimaryAttackTick: GameTick_t + m_flNextPrimaryAttackTickRatio: float32 + m_nNextSecondaryAttackTick: GameTick_t + m_flNextSecondaryAttackTickRatio: float32 + m_iClip2: int32 + m_pReserveAmmo: int32[2] + m_nViewModelIndex: uint32 + +98 CGrassBurn + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_flGrassBurnClearTime: float32 + +149 CPointEntity + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + +192 CWaterBullet + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +44 CCSObserverPawn + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + m_thirdPersonHeading: QAngle + m_flSlopeDropOffset: float32 + m_flSlopeDropHeight: float32 + m_vHeadConstraintOffset: Vector + m_angEyeAngles: QAngle + m_iHealth: int32 + m_lifeState: uint8 + m_fFlags: uint32 + m_hGroundEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_iMaxHealth: int32 + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_vLookTargetPosition: Vector + m_blinktoggle: bool + m_hMyWearables: CNetworkUtlVectorBase< CHandle< CEconWearable > > + m_flFieldOfView: float32 + m_pWeaponServices: CPlayer_WeaponServices* + m_pObserverServices: CPlayer_ObserverServices* + m_pWaterServices: CPlayer_WaterServices* + m_pUseServices: CPlayer_UseServices* + m_pCameraServices: CPlayer_CameraServices* + m_pMovementServices: CPlayer_MovementServices* + m_flDeathTime: GameTime_t + m_hController: CHandle< CBasePlayerController > + m_pActionTrackingServices: CCSPlayer_ActionTrackingServices* + m_pViewModelServices: CCSPlayer_ViewModelServices* + m_hOriginalController: CHandle< CCSPlayerController > + m_bHasFemaleVoice: bool + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_flTimeOfLastInjury: float32 + m_nRelativeDirectionOfLastInjury: RelativeDamagedDirection_t + m_iPlayerState: CSPlayerState + m_passiveItems: bool[4] + m_bIsScoped: bool + m_bIsWalking: bool + m_bResumeZoom: bool + m_bIsDefusing: bool + m_bIsGrabbingHostage: bool + m_iBlockingUseActionInProgress: CSPlayerBlockingUseAction_t + m_fImmuneToGunGameDamageTime: GameTime_t + m_bGunGameImmunity: bool + m_bMadeFinalGunGameProgressiveKill: bool + m_iGunGameProgressiveWeaponIndex: int32 + m_iNumGunGameTRKillPoints: int32 + m_iNumGunGameKillsWithCurrentWeapon: int32 + m_unTotalRoundDamageDealt: uint32 + m_fMolotovDamageTime: float32 + m_bHasMovedSinceSpawn: bool + m_bCanMoveDuringFreezePeriod: bool + m_isCurrentGunGameLeader: bool + m_isCurrentGunGameTeamLeader: bool + m_flGuardianTooFarDistFrac: float32 + m_flDetectedByEnemySensorTime: GameTime_t + m_bIsSpawnRappelling: bool + m_vecSpawnRappellingRopeOrigin: Vector + m_nSurvivalTeam: int32 + m_hSurvivalAssassinationTarget: CHandle< CCSPlayerPawnBase > + m_flHealthShotBoostExpirationTime: float32 + m_nHeavyAssaultSuitCooldownRemaining: int32 + m_flEmitSoundTime: GameTime_t + m_bHasNightVision: bool + m_bNightVisionOn: bool + m_bInBombZone: bool + m_bInBuyZone: bool + m_bInNoDefuseArea: bool + m_bKilledByTaser: bool + m_iMoveState: int32 + m_nWhichBombZone: int32 + m_bInHostageRescueZone: bool + m_flStamina: float32 + m_iDirection: int32 + m_iShotsFired: int32 + m_ArmorValue: int32 + m_flVelocityModifier: float32 + m_flHitHeading: float32 + m_nHitBodyPart: int32 + m_flFlashDuration: float32 + m_flFlashMaxAlpha: float32 + m_flProgressBarStartTime: float32 + m_iProgressBarDuration: int32 + m_bWaitForNoAttack: bool + m_flLowerBodyYawTarget: float32 + m_bStrafing: bool + m_bHideTargetID: bool + m_bHud_MiniScoreHidden: bool + m_bHud_RadarHidden: bool + m_nLastKillerIndex: CEntityIndex + m_nLastConcurrentKilled: int32 + m_nDeathCamMusic: int32 + m_iAddonBits: int32 + m_iPrimaryAddon: int32 + m_iSecondaryAddon: int32 + m_vecPlayerPatchEconIndices: uint32[5] + m_unCurrentEquipmentValue: uint16 + m_unRoundStartEquipmentValue: uint16 + m_unFreezetimeEndEquipmentValue: uint16 + m_szLastPlaceName: char[18] + m_nSurvivalTeamNumber: int32 + m_aimPunchAngle: QAngle + m_aimPunchAngleVel: QAngle + m_aimPunchTickBase: int32 + m_aimPunchTickFraction: float32 + m_bKilledByHeadshot: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + colorPrimaryLerpTo: Color + colorSecondaryLerpTo: Color + farz: float32 + skyboxFogFactor: float32 + skyboxFogFactorLerpTo: float32 + startLerpTo: float32 + endLerpTo: float32 + maxdensityLerpTo: float32 + lerptime: GameTime_t + duration: float32 + blendtobackground: float32 + scattering: float32 + locallightscale: float32 + m_nNextThinkTick: GameTick_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_vecBaseVelocity: Vector + m_flFriction: float32 + m_flGravityScale: float32 + m_flTimeScale: float32 + m_ServerViewAngleChanges: CUtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > + m_iHideHUD: uint32 + scale: int16 + origin: Vector + bClip3DSkyBoxNearToWorldFar: bool + flClip3DSkyBoxNearToWorldFarOffset: float32 + dirPrimary: Vector + colorPrimary: Color + colorSecondary: Color + start: float32 + end: float32 + maxdensity: float32 + exponent: float32 + HDRColorScale: float32 + enable: bool + blend: bool + m_bNoReflectionFog: bool + m_nWorldGroupID: WorldGroupId_t + m_vecX: CNetworkedQuantizedFloat + m_vecY: CNetworkedQuantizedFloat + m_vecZ: CNetworkedQuantizedFloat + m_flWaterLevel: float32 + +113 CItemDogtags + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_OwningPlayer: CHandle< CCSPlayerPawnBase > + m_KillingPlayer: CHandle< CCSPlayerPawnBase > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +119 CLightGlow + CBodyComponent: CBodyComponent + m_spawnflags: uint32 + m_clrRender: Color + m_nHorizontalSize: uint32 + m_nVerticalSize: uint32 + m_nMinDist: uint32 + m_nMaxDist: uint32 + m_nOuterMaxDist: uint32 + m_flGlowProxySize: float32 + m_flHDRColorScale: float32 + +140 CPlantedC4Survival + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_bBombTicking: bool + m_flC4Blow: GameTime_t + m_nBombSite: int32 + m_nSourceSoundscapeHash: int32 + m_bSpotted: bool + m_bSpottedByMask: uint32[2] + m_flTimerLength: float32 + m_bBeingDefused: bool + m_flDefuseLength: float32 + m_flDefuseCountDown: GameTime_t + m_bBombDefused: bool + m_hBombDefuser: CHandle< CCSPlayerPawnBase > + m_hControlPanel: CHandle< CBaseEntity > + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent + +148 CPointCommentaryNode + m_flAnimTime: float32 + m_flSimulationTime: float32 + m_hOwnerEntity: CHandle< CBaseEntity > + CBodyComponent: CBodyComponent + m_pEntity: CEntityIdentity* + m_MoveCollide: MoveCollide_t + m_MoveType: MoveType_t + m_nSubclassID: CUtlStringToken + m_flCreateTime: GameTime_t + m_bClientSideRagdoll: bool + m_ubInterpolationFrame: uint8 + m_iTeamNum: uint8 + m_hEffectEntity: CHandle< CBaseEntity > + m_fEffects: uint32 + m_flElasticity: float32 + m_bSimulatedEveryTick: bool + m_bAnimatedEveryTick: bool + m_flNavIgnoreUntilTime: GameTime_t + m_nRenderMode: RenderMode_t + m_nRenderFX: RenderFx_t + m_clrRender: Color + m_vecRenderAttributes: CUtlVectorEmbeddedNetworkVar< EntityRenderAttribute_t > + m_LightGroup: CUtlStringToken + m_bRenderToCubemaps: bool + m_nInteractsAs: uint64 + m_nInteractsWith: uint64 + m_nInteractsExclude: uint64 + m_nEntityId: uint32 + m_nOwnerId: uint32 + m_nHierarchyId: uint16 + m_nCollisionGroup: uint8 + m_nCollisionFunctionMask: uint8 + m_vecMins: Vector + m_vecMaxs: Vector + m_usSolidFlags: uint8 + m_nSolidType: SolidType_t + m_triggerBloat: uint8 + m_nSurroundType: SurroundingBoundsType_t + m_CollisionGroup: uint8 + m_nEnablePhysics: uint8 + m_vecSpecifiedSurroundingMins: Vector + m_vecSpecifiedSurroundingMaxs: Vector + m_vCapsuleCenter1: Vector + m_vCapsuleCenter2: Vector + m_flCapsuleRadius: float32 + m_iGlowType: int32 + m_iGlowTeam: int32 + m_nGlowRange: int32 + m_nGlowRangeMin: int32 + m_glowColorOverride: Color + m_bFlashing: bool + m_flGlowTime: float32 + m_flGlowStartTime: float32 + m_bEligibleForScreenHighlight: bool + m_flGlowBackfaceMult: float32 + m_fadeMinDist: float32 + m_fadeMaxDist: float32 + m_flFadeScale: float32 + m_flShadowStrength: float32 + m_nObjectCulling: uint8 + m_nAddDecal: int32 + m_vDecalPosition: Vector + m_vDecalForwardAxis: Vector + m_flDecalHealBloodRate: float32 + m_flDecalHealHeightRate: float32 + m_ConfigEntitiesToPropagateMaterialDecalsTo: CNetworkUtlVectorBase< CHandle< CBaseModelEntity > > + m_bInitiallyPopulateInterpHistory: bool + m_bShouldAnimateDuringGameplayPause: bool + m_bAnimGraphUpdateEnabled: bool + m_vecForce: Vector + m_nForceBone: int32 + m_pRagdollPose: PhysicsRagdollPose_t* + m_bClientRagdoll: bool + m_iszCommentaryFile: CUtlSymbolLarge + m_hViewPosition: CHandle< CBaseEntity > + m_bActive: bool + m_flStartTime: GameTime_t + m_flStartTimeInCommentary: float32 + m_iszTitle: CUtlSymbolLarge + m_iszSpeakers: CUtlSymbolLarge + m_iNodeNumber: int32 + m_iNodeNumberMax: int32 + m_bListenedTo: bool + m_bvDisabledHitGroups: uint32[1] + CRenderComponent: CRenderComponent +``` diff --git a/examples/encrypted-net-messages/enc_net_msg.go b/examples/encrypted-net-messages/enc_net_msg.go index f6b8c9fe..80193c36 100644 --- a/examples/encrypted-net-messages/enc_net_msg.go +++ b/examples/encrypted-net-messages/enc_net_msg.go @@ -6,8 +6,8 @@ import ( "log" "os" - dem "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + dem "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) func checkErr(err error) { diff --git a/examples/entities/README.md b/examples/entities/README.md index a08dc5fd..c596b317 100644 --- a/examples/entities/README.md +++ b/examples/entities/README.md @@ -6,7 +6,7 @@ This example shows how to use unhandled data of entities by registering entity-c You can use the build tag `debugdemoinfocs` and the set `debugServerClasses=YES` with ldflags to find interesting server-classes and their properties. -Example: `go run myprogram.go -tags debugdemoinfocs -ldflags '-X github.com/markus-wa/demoinfocs-golang.debugServerClasses=YES' | grep ServerClass` +Example: `go run myprogram.go -tags debugdemoinfocs -ldflags '-X github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs.debugServerClasses=YES' | grep ServerClass` This gives you a list of all server-classes from any demo that was parsed in `myprogram.go`. diff --git a/examples/entities/entities.go b/examples/entities/entities.go index bfc62b47..f8e1ed88 100644 --- a/examples/entities/entities.go +++ b/examples/entities/entities.go @@ -5,10 +5,10 @@ import ( _ "image/jpeg" "os" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // Run like this: go run entities.go -demo /path/to/demo.dem diff --git a/examples/heatmap/heatmap.go b/examples/heatmap/heatmap.go index b94b800b..69389e55 100644 --- a/examples/heatmap/heatmap.go +++ b/examples/heatmap/heatmap.go @@ -10,10 +10,10 @@ import ( heatmap "github.com/markus-wa/go-heatmap/v2" schemes "github.com/markus-wa/go-heatmap/v2/schemes" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) const ( diff --git a/examples/heatmap/heatmap_test.go b/examples/heatmap/heatmap_test.go index 75460127..5b6a58e3 100644 --- a/examples/heatmap/heatmap_test.go +++ b/examples/heatmap/heatmap_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/markus-wa/demoinfocs-golang/v3/examples" + "github.com/markus-wa/demoinfocs-golang/v4/examples" ) // Just make sure the example runs diff --git a/examples/map_metadata_test.go b/examples/map_metadata_test.go index bdb19a31..d79e07ff 100644 --- a/examples/map_metadata_test.go +++ b/examples/map_metadata_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/markus-wa/demoinfocs-golang/v3/examples" + "github.com/markus-wa/demoinfocs-golang/v4/examples" ) func TestGetMapMetadata(t *testing.T) { diff --git a/examples/mocking/README.md b/examples/mocking/README.md index 2182a7b1..9a9361be 100644 --- a/examples/mocking/README.md +++ b/examples/mocking/README.md @@ -9,8 +9,8 @@ First, let's have a look at the API of our code, the 'system under test': ```go import ( - dem "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + dem "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) func collectKills(parser dem.Parser) (kills []events.Kill, err error) { @@ -33,9 +33,9 @@ import ( assert "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - fake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + fake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/fake" ) func TestCollectKills(t *testing.T) { @@ -83,9 +83,9 @@ import ( assert "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - fake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + fake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/fake" ) func TestCollectKillsError(t *testing.T) { diff --git a/examples/mocking/collect_kills.go b/examples/mocking/collect_kills.go index d9176aa1..209e7f6f 100644 --- a/examples/mocking/collect_kills.go +++ b/examples/mocking/collect_kills.go @@ -1,8 +1,8 @@ package mocking import ( - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) func collectKills(parser demoinfocs.Parser) (kills []events.Kill, err error) { diff --git a/examples/mocking/mocking_test.go b/examples/mocking/mocking_test.go index c282cedf..ecdbc2d1 100644 --- a/examples/mocking/mocking_test.go +++ b/examples/mocking/mocking_test.go @@ -6,9 +6,9 @@ import ( assert "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - fake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + fake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/fake" ) func TestCollectKills(t *testing.T) { diff --git a/examples/nade-trajectories/nade_trajectories.go b/examples/nade-trajectories/nade_trajectories.go index 8dacd22e..dd8e779e 100644 --- a/examples/nade-trajectories/nade_trajectories.go +++ b/examples/nade-trajectories/nade_trajectories.go @@ -12,11 +12,11 @@ import ( "github.com/golang/geo/r3" "github.com/llgcode/draw2d/draw2dimg" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) type nadePath struct { @@ -90,11 +90,13 @@ func main() { infernos = append(infernos, e.Inferno) }) - var nadeTrajectoriesFirst5Rounds []*nadePath - var infernosFirst5Rounds []*common.Inferno - round := 0 - p.RegisterEventHandler(func(events.RoundEnd) { - round++ + var ( + nadeTrajectoriesFirst5Rounds []*nadePath + infernosFirst5Rounds []*common.Inferno + round = 0 + ) + + p.RegisterEventHandler(func(start events.RoundStart) { // We only want the data from the first 5 rounds so the image is not too cluttered // This is a very cheap way to do it. Won't work with demos that have match-restarts etc. if round == 5 { @@ -108,6 +110,8 @@ func main() { infernosFirst5Rounds = make([]*common.Inferno, len(infernos)) copy(infernosFirst5Rounds, infernos) } + + round++ }) err = p.ParseToEnd() diff --git a/examples/nade-trajectories/nade_trajectories_test.go b/examples/nade-trajectories/nade_trajectories_test.go index 2ab07061..489af024 100644 --- a/examples/nade-trajectories/nade_trajectories_test.go +++ b/examples/nade-trajectories/nade_trajectories_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" ) // Just make sure the example runs diff --git a/examples/net-messages/README.md b/examples/net-messages/README.md index 90cb27c6..8cf6fb99 100644 --- a/examples/net-messages/README.md +++ b/examples/net-messages/README.md @@ -37,7 +37,7 @@ import ( "google.golang.org/protobuf/proto" dem "github.com/markus-wa/demoinfocs-golang" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) cfg := dem.DefaultParserConfig diff --git a/examples/net-messages/netmessages.go b/examples/net-messages/netmessages.go index a4ad31ad..dc6fee10 100644 --- a/examples/net-messages/netmessages.go +++ b/examples/net-messages/netmessages.go @@ -6,9 +6,9 @@ import ( "google.golang.org/protobuf/proto" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) // Run like this: go run netmessages.go -demo /path/to/demo.dem > out.png diff --git a/examples/print-events/print_events.go b/examples/print-events/print_events.go index 918a0863..6cb5b7ef 100644 --- a/examples/print-events/print_events.go +++ b/examples/print-events/print_events.go @@ -4,10 +4,10 @@ import ( "fmt" "os" - ex "github.com/markus-wa/demoinfocs-golang/v3/examples" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + ex "github.com/markus-wa/demoinfocs-golang/v4/examples" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) // Run like this: go run print_events.go -demo /path/to/demo.dem diff --git a/go.mod b/go.mod index 2eb063fd..b1ee83ce 100644 --- a/go.mod +++ b/go.mod @@ -1,18 +1,19 @@ -module github.com/markus-wa/demoinfocs-golang/v3 +module github.com/markus-wa/demoinfocs-golang/v4 require ( - github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 - github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d + github.com/golang/geo v0.0.0-20230421003525-6adc56603217 + github.com/golang/snappy v0.0.4 + github.com/llgcode/draw2d v0.0.0-20230723155556-e595d7c7e75e github.com/markus-wa/go-heatmap/v2 v2.0.0 github.com/markus-wa/go-unassert v0.1.3 github.com/markus-wa/gobitread v0.2.3 github.com/markus-wa/godispatch v1.4.1 - github.com/markus-wa/ice-cipher-go v0.0.0-20220126215401-a6adadccc817 + github.com/markus-wa/ice-cipher-go v0.0.0-20230901094113-348096939ba7 github.com/markus-wa/quickhull-go/v2 v2.2.0 github.com/oklog/ulid/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/stretchr/testify v1.8.0 - golang.org/x/exp v0.0.0-20220713135740-79cabaa25d75 + github.com/stretchr/testify v1.8.4 + golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 google.golang.org/protobuf v1.31.0 ) @@ -20,9 +21,9 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/objx v0.5.0 // indirect - golang.org/x/image v0.5.0 // indirect + github.com/stretchr/objx v0.5.1 // indirect + golang.org/x/image v0.11.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.18 +go 1.21 diff --git a/go.sum b/go.sum index 1ba228c4..9ff5e0a6 100644 --- a/go.sum +++ b/go.sum @@ -2,19 +2,19 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk= -github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/geo v0.0.0-20180826223333-635502111454/go.mod h1:vgWZ7cu0fq0KY3PpEHsocXOWJpRtkcbKemU4IUw0M60= -github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 h1:gtexQ/VGyN+VVFRXSFiguSNcXmS6rkKT+X7FdIrTtfo= -github.com/golang/geo v0.0.0-20210211234256-740aa86cb551/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/geo v0.0.0-20230421003525-6adc56603217 h1:HKlyj6in2JV6wVkmQ4XmG/EIm+SCYlPZ+V4GWit7Z+I= +github.com/golang/geo v0.0.0-20230421003525-6adc56603217/go.mod h1:8wI0hitZ3a1IxZfeH3/5I97CI8i5cLGsYe7xNhQGs9U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d h1:4/ycg+VrwjGurTqiHv2xM/h6Qm81qSra+KbfT4FH2FA= -github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/llgcode/draw2d v0.0.0-20230723155556-e595d7c7e75e h1:hqFckor7F0B63l6cV/PoAsuQUOmDji/1oVF0+24EMUI= +github.com/llgcode/draw2d v0.0.0-20230723155556-e595d7c7e75e/go.mod h1:zNlGqkQNLxAN7D2uihSJsrEzrkWrSIK5kmSZU/dN5NY= github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb h1:61ndUreYSlWFeCY44JxDDkngVoI7/1MVhEl98Nm0KOk= github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY= github.com/markus-wa/go-heatmap/v2 v2.0.0 h1:mskJwvbESraWLBly+XTv555PVla1e8C2iSrkmS/Gv+Y= @@ -25,8 +25,10 @@ github.com/markus-wa/gobitread v0.2.3 h1:COx7dtYQ7Q+77hgUmD+O4MvOcqG7y17RP3Z7Bbj github.com/markus-wa/gobitread v0.2.3/go.mod h1:PcWXMH4gx7o2CKslbkFkLyJB/aHW7JVRG3MRZe3PINg= github.com/markus-wa/godispatch v1.4.1 h1:Cdff5x33ShuX3sDmUbYWejk7tOuoHErFYMhUc2h7sLc= github.com/markus-wa/godispatch v1.4.1/go.mod h1:tk8L0yzLO4oAcFwM2sABMge0HRDJMdE8E7xm4gK/+xM= -github.com/markus-wa/ice-cipher-go v0.0.0-20220126215401-a6adadccc817 h1:VB4ANo078mbGQNBgauLOzJkoHpIqrMygbPHVW0jjql0= -github.com/markus-wa/ice-cipher-go v0.0.0-20220126215401-a6adadccc817/go.mod h1:JIsht5Oa9P50VnGJTvH2a6nkOqDFJbUeU1YRZYvdplw= +github.com/markus-wa/ice-cipher-go v0.0.0-20220823210642-1fcccd18c6c1 h1:YH4WI14HARrM3C6mKUMFDBz93O25oWSlLEYGeL27G0w= +github.com/markus-wa/ice-cipher-go v0.0.0-20220823210642-1fcccd18c6c1/go.mod h1:JIsht5Oa9P50VnGJTvH2a6nkOqDFJbUeU1YRZYvdplw= +github.com/markus-wa/ice-cipher-go v0.0.0-20230901094113-348096939ba7 h1:aR9pvnlnBxifXBmzidpAiq2prLSGlkhE904qnk2sCz4= +github.com/markus-wa/ice-cipher-go v0.0.0-20230901094113-348096939ba7/go.mod h1:JIsht5Oa9P50VnGJTvH2a6nkOqDFJbUeU1YRZYvdplw= github.com/markus-wa/quickhull-go/v2 v2.2.0 h1:rB99NLYeUHoZQ/aNRcGOGqjNBGmrOaRxdtqTnsTUPTA= github.com/markus-wa/quickhull-go/v2 v2.2.0/go.mod h1:EuLMucfr4B+62eipXm335hOs23LTnO62W7Psn3qvU2k= github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= @@ -38,40 +40,49 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= +github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/exp v0.0.0-20220713135740-79cabaa25d75 h1:x03zeu7B2B11ySp+daztnwM5oBJ/8wGUSqrwcw9L0RA= -golang.org/x/exp v0.0.0-20220713135740-79cabaa25d75/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI= -golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= +golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= +golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= +golang.org/x/image v0.11.0 h1:ds2RoQvBvYTiJkwpSFDwCcDFNX7DqjL2WsUgTNk0Ooo= +golang.org/x/image v0.11.0/go.mod h1:bglhjqbqVuEb9e9+eNR45Jfu7D+T4Qan+NhQk8Ck2P8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/pkg/demoinfocs/common/common.go b/pkg/demoinfocs/common/common.go index b64accbc..3820b35c 100644 --- a/pkg/demoinfocs/common/common.go +++ b/pkg/demoinfocs/common/common.go @@ -10,7 +10,7 @@ import ( "github.com/golang/geo/r3" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // Team is the type for the various TeamXYZ constants. @@ -120,8 +120,9 @@ func (b *Bomb) Position() r3.Vector { // TeamState contains a team's ID, score, clan name & country flag. type TeamState struct { - team Team - membersCallback func(Team) []*Player + team Team + membersCallback func(Team) []*Player + demoInfoProvider demoInfoProvider Entity st.Entity @@ -136,12 +137,21 @@ func (ts *TeamState) Team() Team { // ID returns the team ID, this stays the same even after switching sides. func (ts *TeamState) ID() int { + if ts.demoInfoProvider.IsSource2() { + return int(getUInt64(ts.Entity, "m_iTeamNum")) + } return getInt(ts.Entity, "m_iTeamNum") } // Score returns the current score of the team (usually 0-16 without overtime). func (ts *TeamState) Score() int { - return getInt(ts.Entity, "m_scoreTotal") + var propName string + if ts.demoInfoProvider.IsSource2() { + propName = "m_iScore" + } else { + propName = "m_scoreTotal" + } + return getInt(ts.Entity, propName) } // ClanName returns the team name (e.g. Fnatic). @@ -207,16 +217,19 @@ func (ts *TeamState) MoneySpentTotal() (value int) { } // NewTeamState creates a new TeamState with the given Team and members callback function. -func NewTeamState(team Team, membersCallback func(Team) []*Player) TeamState { +func NewTeamState(team Team, membersCallback func(Team) []*Player, demoInfoProvider demoInfoProvider) TeamState { return TeamState{ - team: team, - membersCallback: membersCallback, + team: team, + membersCallback: membersCallback, + demoInfoProvider: demoInfoProvider, } } // ConvertSteamIDTxtTo32 converts a Steam-ID in text format to a 32-bit variant. // See https://developer.valvesoftware.com/wiki/SteamID func ConvertSteamIDTxtTo32(steamID string) (uint32, error) { + steamID = strings.TrimSuffix(steamID, "]") // Source 2 has [U:1:397560266] instead of STEAM_0:1:198780133 + arr := strings.Split(steamID, ":") if len(arr) != 3 { diff --git a/pkg/demoinfocs/common/common_test.go b/pkg/demoinfocs/common/common_test.go index 31a69f29..2182379f 100644 --- a/pkg/demoinfocs/common/common_test.go +++ b/pkg/demoinfocs/common/common_test.go @@ -6,11 +6,16 @@ import ( "github.com/golang/geo/r3" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) +var s1DemoInfoProvider = demoInfoProviderMock{ + isSource2: false, +} + func TestBombPosition(t *testing.T) { groundPos := r3.Vector{X: 1, Y: 2, Z: 3} bomb := Bomb{ @@ -24,7 +29,12 @@ func TestBombPosition(t *testing.T) { plEntity := entityWithID(1) plEntity.On("Position").Return(playerPos) - bomb.Carrier = &Player{Entity: plEntity} + bomb.Carrier = &Player{ + Entity: plEntity, + demoInfoProvider: demoInfoProviderMock{ + isSource2: false, + }, + } assert.Equal(t, playerPos, bomb.Position(), "Bomb position should be Player.Position") } @@ -66,8 +76,8 @@ func TestDemoHeader_FrameTime_PlaybackFrames_Zero(t *testing.T) { } func TestTeamState_Team(t *testing.T) { - tState := NewTeamState(TeamTerrorists, nil) - ctState := NewTeamState(TeamCounterTerrorists, nil) + tState := NewTeamState(TeamTerrorists, nil, demoInfoProviderMock{}) + ctState := NewTeamState(TeamCounterTerrorists, nil, demoInfoProviderMock{}) assert.Equal(t, TeamTerrorists, tState.Team()) assert.Equal(t, TeamCounterTerrorists, ctState.Team()) @@ -75,7 +85,7 @@ func TestTeamState_Team(t *testing.T) { func TestTeamState_Members(t *testing.T) { members := []*Player{new(Player), new(Player)} - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, demoInfoProviderMock{}) assert.Equal(t, members, state.Members()) } @@ -85,7 +95,16 @@ func TestTeamState_EquipmentValueCurrent(t *testing.T) { playerWithProperty("m_unCurrentEquipmentValue", st.PropertyValue{IntVal: 100}), playerWithProperty("m_unCurrentEquipmentValue", st.PropertyValue{IntVal: 200}), } - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + + dip := demoInfoProviderMock{ + isSource2: false, + } + + for _, p := range members { + p.demoInfoProvider = dip + } + + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, dip) assert.Equal(t, 300, state.CurrentEquipmentValue()) } @@ -95,7 +114,16 @@ func TestTeamState_EquipmentValueRoundStart(t *testing.T) { playerWithProperty("m_unRoundStartEquipmentValue", st.PropertyValue{IntVal: 100}), playerWithProperty("m_unRoundStartEquipmentValue", st.PropertyValue{IntVal: 200}), } - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + + dip := demoInfoProviderMock{ + isSource2: false, + } + + for _, p := range members { + p.demoInfoProvider = dip + } + + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, dip) assert.Equal(t, 300, state.RoundStartEquipmentValue()) } @@ -105,7 +133,16 @@ func TestTeamState_EquipmentValueFreezeTimeEnd(t *testing.T) { playerWithProperty("m_unFreezetimeEndEquipmentValue", st.PropertyValue{IntVal: 100}), playerWithProperty("m_unFreezetimeEndEquipmentValue", st.PropertyValue{IntVal: 200}), } - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + + dip := demoInfoProviderMock{ + isSource2: false, + } + + for _, p := range members { + p.demoInfoProvider = dip + } + + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, dip) assert.Equal(t, 300, state.FreezeTimeEndEquipmentValue()) } @@ -115,7 +152,7 @@ func TestTeamState_MoneySpentThisRound(t *testing.T) { NewPlayer(demoInfoProviderMock{playerResourceEntity: entityWithProperty("m_iCashSpentThisRound.000", st.PropertyValue{IntVal: 100})}), NewPlayer(demoInfoProviderMock{playerResourceEntity: entityWithProperty("m_iCashSpentThisRound.000", st.PropertyValue{IntVal: 200})}), } - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, demoInfoProviderMock{}) assert.Equal(t, 300, state.MoneySpentThisRound()) } @@ -125,7 +162,7 @@ func TestTeamState_MoneySpentTotal(t *testing.T) { NewPlayer(demoInfoProviderMock{playerResourceEntity: entityWithProperty("m_iTotalCashSpent.000", st.PropertyValue{IntVal: 100})}), NewPlayer(demoInfoProviderMock{playerResourceEntity: entityWithProperty("m_iTotalCashSpent.000", st.PropertyValue{IntVal: 200})}), } - state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }) + state := NewTeamState(TeamTerrorists, func(Team) []*Player { return members }, demoInfoProviderMock{}) assert.Equal(t, 300, state.MoneySpentTotal()) } @@ -169,6 +206,7 @@ func TestConvertSteamID64To32(t *testing.T) { type fakeProp struct { propName string value st.PropertyValue + isNil bool } type demoInfoProviderMock struct { @@ -177,6 +215,15 @@ type demoInfoProviderMock struct { playersByHandle map[int]*Player playerResourceEntity st.Entity equipment *Equipment + isSource2 bool +} + +func (p demoInfoProviderMock) FindEntityByHandle(handle uint64) st.Entity { + panic("implement me") +} + +func (p demoInfoProviderMock) IsSource2() bool { + return p.isSource2 } func (p demoInfoProviderMock) TickRate() float64 { @@ -191,6 +238,10 @@ func (p demoInfoProviderMock) FindPlayerByHandle(handle int) *Player { return p.playersByHandle[handle] } +func (p demoInfoProviderMock) FindPlayerByPawnHandle(handle uint64) *Player { + return p.playersByHandle[int(handle)] +} + func (p demoInfoProviderMock) PlayerResourceEntity() st.Entity { return p.playerResourceEntity } @@ -229,7 +280,15 @@ func entityWithProperty(propName string, value st.PropertyValue) *stfake.Entity func entityWithProperties(properties []fakeProp) *stfake.Entity { entity := entityWithID(1) + entity.On("Property", mock.Anything).Return(nil) + for _, prop := range properties { + if prop.isNil { + entity.On("Property", prop.propName).Return(nil) + + continue + } + property := new(stfake.Property) property.On("Value").Return(prop.value) diff --git a/pkg/demoinfocs/common/entity_util.go b/pkg/demoinfocs/common/entity_util.go index c609ebb9..d3d4890b 100644 --- a/pkg/demoinfocs/common/entity_util.go +++ b/pkg/demoinfocs/common/entity_util.go @@ -1,13 +1,21 @@ package common -import st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" +import st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" func getInt(entity st.Entity, propName string) int { if entity == nil { return 0 } - return entity.PropertyValueMust(propName).IntVal + return entity.PropertyValueMust(propName).Int() +} + +func getUInt64(entity st.Entity, propName string) uint64 { + if entity == nil { + return 0 + } + + return entity.PropertyValueMust(propName).S2UInt64() } func getFloat(entity st.Entity, propName string) float32 { @@ -15,7 +23,7 @@ func getFloat(entity st.Entity, propName string) float32 { return 0 } - return entity.PropertyValueMust(propName).FloatVal + return entity.PropertyValueMust(propName).Float() } func getString(entity st.Entity, propName string) string { @@ -23,7 +31,7 @@ func getString(entity st.Entity, propName string) string { return "" } - return entity.PropertyValueMust(propName).StringVal + return entity.PropertyValueMust(propName).String() } func getBool(entity st.Entity, propName string) bool { diff --git a/pkg/demoinfocs/common/equipment.go b/pkg/demoinfocs/common/equipment.go index 8a207d11..276a1dce 100644 --- a/pkg/demoinfocs/common/equipment.go +++ b/pkg/demoinfocs/common/equipment.go @@ -6,7 +6,7 @@ import ( "github.com/oklog/ulid/v2" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // EquipmentClass is the type for the various EqClassXYZ constants. @@ -97,13 +97,27 @@ const ( // Equipment - EqZeus EquipmentType = 401 - EqKevlar EquipmentType = 402 - EqHelmet EquipmentType = 403 - EqBomb EquipmentType = 404 - EqKnife EquipmentType = 405 - EqDefuseKit EquipmentType = 406 - EqWorld EquipmentType = 407 + EqZeus EquipmentType = 401 + EqKevlar EquipmentType = 402 + EqHelmet EquipmentType = 403 + EqBomb EquipmentType = 404 + EqKnife EquipmentType = 405 + EqDefuseKit EquipmentType = 406 + EqWorld EquipmentType = 407 + EqZoneRepulsor EquipmentType = 408 + EqShield EquipmentType = 409 + EqHeavyAssaultSuit EquipmentType = 410 + EqNightVision EquipmentType = 411 + EqHealthShot EquipmentType = 412 + EqTacticalAwarenessGrenade EquipmentType = 413 + EqFists EquipmentType = 414 + EqBreachCharge EquipmentType = 415 + EqTablet EquipmentType = 416 + EqAxe EquipmentType = 417 + EqHammer EquipmentType = 418 + EqWrench EquipmentType = 419 + EqSnowball EquipmentType = 420 + EqBumpMine EquipmentType = 421 // Grenades @@ -133,6 +147,7 @@ func initEqNameToWeapon() { eqNameToWeapon["awp"] = EqAWP eqNameToWeapon["bizon"] = EqBizon eqNameToWeapon["c4"] = EqBomb + eqNameToWeapon["planted_c4"] = EqBomb eqNameToWeapon["deagle"] = EqDeagle eqNameToWeapon["decoy"] = EqDecoy eqNameToWeapon["decoygrenade"] = EqDecoy @@ -285,10 +300,13 @@ const ( // Equipment is a weapon / piece of equipment belonging to a player. // This also includes the skin and some additional data. type Equipment struct { - Type EquipmentType // The type of weapon which the equipment instantiates. - Entity st.Entity // The game entity instance - Owner *Player // The player carrying the equipment, not necessarily the buyer. - OriginalString string // E.g. 'models/weapons/w_rif_m4a1_s.mdl'. Used internally to differentiate alternative weapons (M4A4 / M4A1-S etc.). + Type EquipmentType // The type of weapon which the equipment instantiates. + Entity st.Entity // The game entity instance + Owner *Player // The player carrying the equipment, not necessarily the buyer. + // E.g. 'models/weapons/w_rif_m4a1_s.mdl'. + // Used internally to differentiate alternative weapons (M4A4 / M4A1-S etc.) for Source 1 demos. + // It's always an empty string with Source 2 demos, you should use Type to know which weapon it is. + OriginalString string uniqueID int64 // Deprecated, use uniqueID2, see UniqueID() for why uniqueID2 ulid.ULID @@ -324,28 +342,44 @@ func (e *Equipment) UniqueID2() ulid.ULID { } // AmmoInMagazine returns the ammo left in the magazine. -// Returns CWeaponCSBase.m_iClip1 for most weapons and 1 for grenades. +// Returns 1 for grenades and equipments (Knife, C4...). func (e *Equipment) AmmoInMagazine() int { - if e.Class() == EqClassGrenade { + switch true { + case e.Class() == EqClassGrenade || e.Class() == EqClassEquipment: return 1 + case e.Entity == nil: + return 0 + default: + val, ok := e.Entity.PropertyValue("m_iClip1") + if !ok { + return -1 + } + + s1Ammo, isSource1 := val.Any.(int) + if isSource1 { + // need to subtract 1 as m_iClip1 is nrOfBullets + 1 + return s1Ammo - 1 + } + + return int(val.S2UInt32()) } +} +// AmmoType returns the weapon's ammo type, mostly (only?) relevant for grenades. +// Works with Source 1 demos only, it's always 0 with Source 2 demos. +// It looks like the prop is not present with Source 2 and we don't need it anymore to retrieve the ammo reserve as +// there is a new dedicated prop "m_pReserveAmmo". +func (e *Equipment) AmmoType() int { if e.Entity == nil { return 0 } - val, ok := e.Entity.PropertyValue("m_iClip1") + value, ok := e.Entity.PropertyValue("LocalWeaponData.m_iPrimaryAmmoType") if !ok { - return -1 + return 0 } - // need to subtract 1 as m_iClip1 is nrOfBullets + 1 - return val.IntVal - 1 -} - -// AmmoType returns the weapon's ammo type, mostly (only?) relevant for grenades. -func (e *Equipment) AmmoType() int { - return getInt(e.Entity, "LocalWeaponData.m_iPrimaryAmmoType") + return value.Int() } // ZoomLevel returns how far the player has zoomed in on the weapon. @@ -355,16 +389,34 @@ func (e *Equipment) ZoomLevel() ZoomLevel { return 0 } - // if the property doesn't exist we return 0 by default - val, _ := e.Entity.PropertyValue("m_zoomLevel") + value, ok := e.Entity.PropertyValue("m_zoomLevel") + if !ok { + return 0 + } - return ZoomLevel(val.IntVal) + return ZoomLevel(value.Int()) } // AmmoReserve returns the ammo left available for reloading. // Returns CWeaponCSBase.m_iPrimaryReserveAmmoCount for most weapons and 'Owner.AmmoLeft[AmmoType] - 1' for grenades. // Use AmmoInMagazine() + AmmoReserve() to quickly get the amount of grenades a player owns. func (e *Equipment) AmmoReserve() int { + if e.Entity == nil { + return 0 + } + + if e.Class() == EqClassGrenade { + s2Prop := e.Entity.Property("m_pReserveAmmo.0001") + if s2Prop != nil { + return s2Prop.Value().Int() + } + } + + s2Prop := e.Entity.Property("m_pReserveAmmo.0000") + if s2Prop != nil { + return s2Prop.Value().Int() + } + if e.Class() == EqClassGrenade { if e.Owner != nil { // minus one for 'InMagazine' @@ -374,10 +426,6 @@ func (e *Equipment) AmmoReserve() int { return 0 } - if e.Entity == nil { - return 0 - } - // if the property doesn't exist we return 0 by default val, _ := e.Entity.PropertyValue("m_iPrimaryReserveAmmoCount") @@ -393,7 +441,7 @@ func (e *Equipment) RecoilIndex() float32 { // if the property doesn't exist we return 0 by default val, _ := e.Entity.PropertyValue("m_flRecoilIndex") - return val.FloatVal + return val.Float() } // NewEquipment creates a new Equipment and sets the UniqueID. @@ -419,3 +467,94 @@ var equipmentToAlternative = map[EquipmentType]EquipmentType{ func EquipmentAlternative(eq EquipmentType) EquipmentType { return equipmentToAlternative[eq] } + +// Indexes are available in the game file located at 'scripts/items/items_game.txt'. +var EquipmentIndexMapping = map[uint64]EquipmentType{ + 1: EqDeagle, // weapon_deagle + 2: EqDualBerettas, // weapon_elite + 3: EqFiveSeven, // weapon_fiveseven + 4: EqGlock, // weapon_glock + 7: EqAK47, // weapon_ak47 + 8: EqAUG, // weapon_aug + 9: EqAWP, // weapon_awp + 10: EqFamas, // weapon_famas + 11: EqG3SG1, // weapon_g3sg1 + 13: EqGalil, // weapon_galilar + 14: EqM249, // weapon_m249 + 16: EqM4A4, // weapon_m4a1 + 17: EqMac10, // weapon_mac10 + 19: EqP90, // weapon_p90 + 20: EqZoneRepulsor, // weapon_zone_repulsor + 23: EqMP5, // weapon_mp5sd + 24: EqUMP, // weapon_ump45 + 25: EqXM1014, // weapon_xm1014 + 26: EqBizon, // weapon_bizon + 27: EqMag7, // weapon_mag7 + 28: EqNegev, // weapon_negev + 29: EqSawedOff, // weapon_sawedoff + 30: EqTec9, // weapon_tec9 + 31: EqZeus, // weapon_taser + 32: EqP2000, // weapon_hkp2000 + 33: EqMP7, // weapon_mp7 + 34: EqMP9, // weapon_mp9 + 35: EqNova, // weapon_nova + 36: EqP250, // weapon_p250 + 37: EqShield, // weapon_shield + 38: EqScar20, // weapon_scar20 + 39: EqSG556, // weapon_sg556 + 40: EqSSG08, // weapon_ssg08 + 41: EqKnife, // weapon_knifegg + 42: EqKnife, // weapon_knife + 43: EqFlash, // weapon_flashbang + 44: EqHE, // weapon_hegrenade + 45: EqSmoke, // weapon_smokegrenade + 46: EqMolotov, // weapon_molotov + 47: EqDecoy, // weapon_decoy + 48: EqIncendiary, // weapon_incgrenade + 49: EqBomb, // weapon_c4 + 50: EqKevlar, // item_kevlar + 51: EqHelmet, // item_assaultsuit + 52: EqHeavyAssaultSuit, // item_heavyassaultsuit + 54: EqNightVision, // item_nvg + 55: EqDefuseKit, // item_defuser + 56: EqDefuseKit, // item_cutters https://developer.valvesoftware.com/wiki/Item_cutters + 57: EqHealthShot, // weapon_healthshot (Medi-Shot) + 59: EqKnife, // weapon_knife_t + 60: EqM4A1, // weapon_m4a1_silencer + 61: EqUSP, // weapon_usp_silencer + 63: EqCZ, // weapon_cz75a + 64: EqRevolver, // weapon_revolver + 68: EqTacticalAwarenessGrenade, // weapon_tagrenade + 69: EqFists, // weapon_fists + 70: EqBreachCharge, // weapon_breachcharge + 72: EqTablet, // weapon_tablet + 74: EqFists, // weapon_melee + 75: EqAxe, // weapon_axe + 76: EqHammer, // weapon_hammer + 78: EqWrench, // weapon_spanner + 80: EqKnife, // weapon_knife_ghost + 81: EqBomb, // weapon_firebomb + 82: EqDecoy, // weapon_diversion + 83: EqHE, // weapon_frag_grenade + 84: EqSnowball, // weapon_snowball + 85: EqBumpMine, // weapon_bumpmine + 500: EqKnife, // weapon_bayonet + 503: EqKnife, // weapon_knife_css + 505: EqKnife, // weapon_knife_flip + 506: EqKnife, // weapon_knife_gut + 507: EqKnife, // weapon_knife_karambit + 508: EqKnife, // weapon_knife_m9_bayonet + 509: EqKnife, // weapon_knife_tactical + 512: EqKnife, // weapon_knife_falchion + 514: EqKnife, // weapon_knife_survival_bowie + 515: EqKnife, // weapon_knife_butterfly + 516: EqKnife, // weapon_knife_push + 517: EqKnife, // weapon_knife_cord + 518: EqKnife, // weapon_knife_canis + 519: EqKnife, // weapon_knife_ursus + 520: EqKnife, // weapon_knife_gypsy_jackknife + 521: EqKnife, // weapon_knife_outdoor + 522: EqKnife, // weapon_knife_stiletto + 523: EqKnife, // weapon_knife_widowmaker + 525: EqKnife, // weapon_knife_skeleton +} diff --git a/pkg/demoinfocs/common/equipment_test.go b/pkg/demoinfocs/common/equipment_test.go index 843f54d3..6223426f 100644 --- a/pkg/demoinfocs/common/equipment_test.go +++ b/pkg/demoinfocs/common/equipment_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) func TestEquipmentElement_Class(t *testing.T) { @@ -41,7 +41,7 @@ func TestEquipment_UniqueID(t *testing.T) { func TestEquipment_AmmoInMagazine(t *testing.T) { wep := &Equipment{ Type: EqAK47, - Entity: entityWithProperty("m_iClip1", st.PropertyValue{IntVal: 31}), + Entity: entityWithProperty("m_iClip1", st.PropertyValue{IntVal: 31, Any: uint32(30)}), } // returned value should be minus 1, m_iClip1 is always 1 more than the actual number of bullets @@ -78,7 +78,18 @@ func TestEquipment_AmmoInMagazine_EntityNil(t *testing.T) { } func TestEquipment_AmmoReserve(t *testing.T) { - entity := entityWithProperty("m_iPrimaryReserveAmmoCount", st.PropertyValue{IntVal: 60}) + entity := entityWithProperties([]fakeProp{ + { + propName: "m_pReserveAmmo.0000", + value: st.PropertyValue{}, + isNil: true, + }, + { + propName: "m_iPrimaryReserveAmmoCount", + value: st.PropertyValue{IntVal: 60}, + isNil: false, + }, + }) wep := &Equipment{ Type: EqAK47, Entity: entity, @@ -91,7 +102,18 @@ func TestEquipment_AmmoReserve_Grenade(t *testing.T) { owner := new(Player) owner.AmmoLeft[1] = 2 - entity := entityWithProperty("LocalWeaponData.m_iPrimaryAmmoType", st.PropertyValue{IntVal: 1}) + entity := entityWithProperties([]fakeProp{ + { + propName: "m_pReserveAmmo.0001", + value: st.PropertyValue{}, + isNil: true, + }, + { + propName: "LocalWeaponData.m_iPrimaryAmmoType", + value: st.PropertyValue{IntVal: 1}, + isNil: false, + }, + }) wep := &Equipment{ Type: EqFlash, Owner: owner, diff --git a/pkg/demoinfocs/common/hostage.go b/pkg/demoinfocs/common/hostage.go index ac7d9692..d407a2aa 100644 --- a/pkg/demoinfocs/common/hostage.go +++ b/pkg/demoinfocs/common/hostage.go @@ -3,7 +3,7 @@ package common import ( "github.com/golang/geo/r3" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // HostageState is the type for the various HostageStateXYZ constants. diff --git a/pkg/demoinfocs/common/hostage_test.go b/pkg/demoinfocs/common/hostage_test.go index 8284307c..9dabe31b 100644 --- a/pkg/demoinfocs/common/hostage_test.go +++ b/pkg/demoinfocs/common/hostage_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) func TestHostage_Leader(t *testing.T) { diff --git a/pkg/demoinfocs/common/inferno.go b/pkg/demoinfocs/common/inferno.go index 8fd83b06..d3be3867 100644 --- a/pkg/demoinfocs/common/inferno.go +++ b/pkg/demoinfocs/common/inferno.go @@ -9,7 +9,7 @@ import ( "github.com/golang/geo/r3" "github.com/markus-wa/quickhull-go/v2" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // Inferno is a list of Fires with helper functions. @@ -22,6 +22,7 @@ type Inferno struct { // uniqueID is used to distinguish different infernos (which potentially have the same, reused entityID) from each other. uniqueID int64 demoInfoProvider demoInfoProvider + thrower *Player } // Fire is a component of an Inferno. @@ -47,7 +48,16 @@ func (inf *Inferno) UniqueID() int64 { // Thrower returns the player who threw the fire grenade. // Could be nil if the player disconnected after throwing it. func (inf *Inferno) Thrower() *Player { - return inf.demoInfoProvider.FindPlayerByHandle(inf.Entity.Property("m_hOwnerEntity").Value().IntVal) + if inf.thrower != nil { + return inf.thrower + } + + handleProp := inf.Entity.Property("m_hOwnerEntity").Value() + if inf.demoInfoProvider.IsSource2() { + return inf.demoInfoProvider.FindPlayerByPawnHandle(handleProp.Handle()) + } + + return inf.demoInfoProvider.FindPlayerByHandle(handleProp.Int()) } // Fires returns all fires (past + present). @@ -55,20 +65,24 @@ func (inf *Inferno) Thrower() *Player { func (inf *Inferno) Fires() Fires { entity := inf.Entity origin := entity.Position() - nFires := entity.PropertyValueMust("m_fireCount").IntVal + nFires := entity.PropertyValueMust("m_fireCount").Int() fires := make([]Fire, 0, nFires) + iFormat := "%03d" + if inf.demoInfoProvider.IsSource2() { + iFormat = "%04d" + } for i := 0; i < nFires; i++ { - iStr := fmt.Sprintf("%03d", i) + iStr := fmt.Sprintf(iFormat, i) offset := r3.Vector{ - X: float64(entity.PropertyValueMust("m_fireXDelta." + iStr).IntVal), - Y: float64(entity.PropertyValueMust("m_fireYDelta." + iStr).IntVal), - Z: float64(entity.PropertyValueMust("m_fireZDelta." + iStr).IntVal), + X: float64(entity.PropertyValueMust("m_fireXDelta." + iStr).Int()), + Y: float64(entity.PropertyValueMust("m_fireYDelta." + iStr).Int()), + Z: float64(entity.PropertyValueMust("m_fireZDelta." + iStr).Int()), } fire := Fire{ Vector: origin.Add(offset), - IsBurning: entity.PropertyValueMust("m_bFireIsBurning."+iStr).IntVal == 1, + IsBurning: entity.PropertyValueMust("m_bFireIsBurning." + iStr).BoolVal(), } fires = append(fires, fire) @@ -186,10 +200,11 @@ func convexHull(pointCloud []r3.Vector) quickhull.ConvexHull { // NewInferno creates a inferno and sets the Unique-ID. // // Intended for internal use only. -func NewInferno(demoInfoProvider demoInfoProvider, entity st.Entity) *Inferno { +func NewInferno(demoInfoProvider demoInfoProvider, entity st.Entity, thrower *Player) *Inferno { return &Inferno{ Entity: entity, uniqueID: rand.Int63(), //nolint:gosec demoInfoProvider: demoInfoProvider, + thrower: thrower, } } diff --git a/pkg/demoinfocs/common/inferno_test.go b/pkg/demoinfocs/common/inferno_test.go index f6906d41..3f239539 100644 --- a/pkg/demoinfocs/common/inferno_test.go +++ b/pkg/demoinfocs/common/inferno_test.go @@ -7,13 +7,13 @@ import ( "github.com/golang/geo/r3" "github.com/stretchr/testify/assert" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) func TestInferno_UniqueID(t *testing.T) { entity := new(stfake.Entity) - assert.NotEqual(t, NewInferno(nil, entity).UniqueID(), NewInferno(nil, entity).UniqueID(), "UniqueIDs of different infernos should be different") + assert.NotEqual(t, NewInferno(nil, entity, nil).UniqueID(), NewInferno(nil, entity, nil).UniqueID(), "UniqueIDs of different infernos should be different") } func TestFires_Active(t *testing.T) { @@ -119,5 +119,5 @@ func TestInferno_Thrower(t *testing.T) { playersByHandle: map[int]*Player{1: player}, } - assert.Equal(t, player, NewInferno(provider, entity).Thrower()) + assert.Equal(t, player, NewInferno(provider, entity, nil).Thrower()) } diff --git a/pkg/demoinfocs/common/player.go b/pkg/demoinfocs/common/player.go index 82413487..71d254d5 100644 --- a/pkg/demoinfocs/common/player.go +++ b/pkg/demoinfocs/common/player.go @@ -7,8 +7,8 @@ import ( "github.com/golang/geo/r3" "github.com/pkg/errors" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/constants" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // Player contains mostly game-relevant player information. @@ -33,6 +33,23 @@ type Player struct { IsPlanting bool IsReloading bool IsUnknown bool // Used to identify unknown/broken players. see https://github.com/markus-wa/demoinfocs-golang/issues/162 + PawnEntityID int +} + +func (p *Player) PlayerPawnEntity() st.Entity { + playerPawn, exists := p.Entity.PropertyValue("m_hPlayerPawn") + if !exists { + return nil + } + return p.demoInfoProvider.FindEntityByHandle(playerPawn.Handle()) +} + +func (p *Player) GetTeam() Team { + return Team(p.PlayerPawnEntity().PropertyValueMust("m_iTeamNum").S2UInt64()) +} + +func (p *Player) GetFlashDuration() float32 { + return p.PlayerPawnEntity().PropertyValueMust("m_flFlashDuration").Float() } // String returns the player's name. @@ -53,7 +70,18 @@ func (p *Player) SteamID32() uint32 { // IsAlive returns true if the player is alive. func (p *Player) IsAlive() bool { - return p.Health() > 0 || getInt(p.Entity, "m_lifeState") == 0 + if p.Health() > 0 { + return true + } + + if p.demoInfoProvider.IsSource2() { + if pawnEntity := p.PlayerPawnEntity(); pawnEntity != nil { + return pawnEntity.PropertyValueMust("m_lifeState").S2UInt64() == 0 + } + return getBool(p.Entity, "m_bPawnIsAlive") + } + + return getInt(p.Entity, "m_lifeState") == 0 } // IsBlinded returns true if the player is currently flashed. @@ -64,6 +92,11 @@ func (p *Player) IsBlinded() bool { // IsAirborne returns true if the player is jumping or falling. func (p *Player) IsAirborne() bool { + if p.demoInfoProvider.IsSource2() { + groundEntityHandle := getUInt64(p.PlayerPawnEntity(), "m_hGroundEntity") + return groundEntityHandle == constants.InvalidEntityHandleSource2 + } + if p.Entity == nil { return false } @@ -123,10 +156,19 @@ This isn't very conclusive but it looks like IsFlashed isn't super reliable curr // Used internally to set the active weapon, see ActiveWeapon() func (p *Player) activeWeaponID() int { + if p.demoInfoProvider.IsSource2() { + if pawnEntity := p.PlayerPawnEntity(); pawnEntity != nil { + return int(pawnEntity.PropertyValueMust("m_pWeaponServices.m_hActiveWeapon").S2UInt64() & constants.EntityHandleIndexMaskSource2) + } + + return 0 + } + return getInt(p.Entity, "m_hActiveWeapon") & constants.EntityHandleIndexMask } // ActiveWeapon returns the currently active / equipped weapon of the player. +// ! Can be nil func (p *Player) ActiveWeapon() *Equipment { return p.demoInfoProvider.FindWeaponByEntityID(p.activeWeaponID()) } @@ -155,13 +197,25 @@ func (p *Player) IsSpottedBy(other *Player) bool { var mask st.Property if bit < 32 { - mask = p.Entity.Property("m_bSpottedByMask.000") + if p.demoInfoProvider.IsSource2() { + mask = p.PlayerPawnEntity().Property("m_bSpottedByMask.0000") + } else { + mask = p.Entity.Property("m_bSpottedByMask.000") + } } else { bit -= 32 - mask = p.Entity.Property("m_bSpottedByMask.001") + if p.demoInfoProvider.IsSource2() { + mask = p.PlayerPawnEntity().Property("m_bSpottedByMask.0001") + } else { + mask = p.Entity.Property("m_bSpottedByMask.001") + } } - return (mask.Value().IntVal & (1 << bit)) != 0 + if p.demoInfoProvider.IsSource2() { + return (mask.Value().S2UInt64() & (1 << bit)) != 0 + } else { + return (mask.Value().IntVal & (1 << bit)) != 0 + } } // HasSpotted returns true if the player has spotted the other player. @@ -173,39 +227,81 @@ func (p *Player) HasSpotted(other *Player) bool { // IsInBombZone returns whether the player is currently in the bomb zone or not. func (p *Player) IsInBombZone() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_bInBombZone") + } + return getBool(p.Entity, "m_bInBombZone") } // IsInBuyZone returns whether the player is currently in the buy zone or not. func (p *Player) IsInBuyZone() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_bInBuyZone") + } + return getBool(p.Entity, "m_bInBuyZone") } // IsWalking returns whether the player is currently walking (sneaking) in or not. func (p *Player) IsWalking() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_bIsWalking") + } + return getBool(p.Entity, "m_bIsWalking") } // IsScoped returns whether the player is currently scoped in or not. func (p *Player) IsScoped() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_bIsScoped") + } + return getBool(p.Entity, "m_bIsScoped") } // IsDucking returns true if the player is currently fully crouching. // See also: Flags().Ducking() & Flags().DuckingKeyPressed() func (p *Player) IsDucking() bool { + if p.demoInfoProvider.IsSource2() { + return p.Flags().Ducking() + } + return p.Flags().Ducking() && p.Flags().DuckingKeyPressed() } // IsDuckingInProgress returns true if the player is currently in the progress of going from standing to crouched. // See also: Flags().Ducking() & Flags().DuckingKeyPressed() func (p *Player) IsDuckingInProgress() bool { + if p.demoInfoProvider.IsSource2() { + pawnEntity := p.PlayerPawnEntity() + if pawnEntity == nil { + return false + } + duckAmount := pawnEntity.PropertyValueMust("m_pMovementServices.m_flDuckAmount").Float() + wantToDuck := pawnEntity.PropertyValueMust("m_pMovementServices.m_bDesiresDuck").BoolVal() + + return !p.Flags().Ducking() && wantToDuck && duckAmount > 0 + } + return !p.Flags().Ducking() && p.Flags().DuckingKeyPressed() } // IsUnDuckingInProgress returns true if the player is currently in the progress of going from crouched to standing. // See also: Flags().Ducking() & Flags().DuckingKeyPressed() func (p *Player) IsUnDuckingInProgress() bool { + if p.demoInfoProvider.IsSource2() { + pawnEntity := p.PlayerPawnEntity() + if pawnEntity == nil { + return false + } + duckAmount := pawnEntity.PropertyValueMust("m_pMovementServices.m_flDuckAmount").Float() + wantToDuck := pawnEntity.PropertyValueMust("m_pMovementServices.m_bDesiresDuck").BoolVal() + + return !p.Flags().Ducking() && !wantToDuck && duckAmount > 0 + } + return p.Flags().Ducking() && !p.Flags().DuckingKeyPressed() } @@ -217,17 +313,29 @@ func (p *Player) IsStanding() bool { // HasDefuseKit returns true if the player currently has a defuse kit in his inventory. func (p *Player) HasDefuseKit() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_pItemServices.m_bHasDefuser") + } + return getBool(p.Entity, "m_bHasDefuser") } // HasHelmet returns true if the player is currently wearing head armor. func (p *Player) HasHelmet() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.PlayerPawnEntity(), "m_pItemServices.m_bHasHelmet") + } + return getBool(p.Entity, "m_bHasHelmet") } // IsControllingBot returns true if the player is currently controlling a bot. // See also ControlledBot(). func (p *Player) IsControllingBot() bool { + if p.demoInfoProvider.IsSource2() { + return getBool(p.Entity, "m_bControllingBot") + } + return getBool(p.Entity, "m_bIsControllingBot") } @@ -245,21 +353,37 @@ func (p *Player) ControlledBot() *Player { // Health returns the player's health points, normally 0-100. func (p *Player) Health() int { + if p.demoInfoProvider.IsSource2() { + return int(getUInt64(p.Entity, "m_iPawnHealth")) + } + return getInt(p.Entity, "m_iHealth") } // Armor returns the player's armor points, normally 0-100. func (p *Player) Armor() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_iPawnArmor") + } + return getInt(p.Entity, "m_ArmorValue") } // Money returns the amount of money in the player's bank. func (p *Player) Money() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pInGameMoneyServices.m_iAccount") + } + return getInt(p.Entity, "m_iAccount") } // EquipmentValueCurrent returns the current value of equipment in the player's inventory. func (p *Player) EquipmentValueCurrent() int { + if p.demoInfoProvider.IsSource2() { + return int(getUInt64(p.PlayerPawnEntity(), "m_unCurrentEquipmentValue")) + } + return getInt(p.Entity, "m_unCurrentEquipmentValue") } @@ -267,21 +391,45 @@ func (p *Player) EquipmentValueCurrent() int { // This is before the player has bought any new items in the freeze time. // See also Player.EquipmentValueFreezetimeEnd(). func (p *Player) EquipmentValueRoundStart() int { + if p.demoInfoProvider.IsSource2() { + return int(getUInt64(p.PlayerPawnEntity(), "m_unRoundStartEquipmentValue")) + } + return getInt(p.Entity, "m_unRoundStartEquipmentValue") } // EquipmentValueFreezeTimeEnd returns the value of equipment in the player's inventory at the end of the freeze time. func (p *Player) EquipmentValueFreezeTimeEnd() int { + if p.demoInfoProvider.IsSource2() { + return int(getUInt64(p.PlayerPawnEntity(), "m_unFreezetimeEndEquipmentValue")) + } + return getInt(p.Entity, "m_unFreezetimeEndEquipmentValue") } // ViewDirectionX returns the Yaw value in degrees, 0 to 360. func (p *Player) ViewDirectionX() float32 { + if p.demoInfoProvider.IsSource2() { + if pawnEntity := p.PlayerPawnEntity(); pawnEntity != nil { + return float32(pawnEntity.PropertyValueMust("m_angEyeAngles").R3Vec().Y) + } + + return 0 + } + return getFloat(p.Entity, "m_angEyeAngles[1]") } // ViewDirectionY returns the Pitch value in degrees, 270 to 90 (270=-90). func (p *Player) ViewDirectionY() float32 { + if p.demoInfoProvider.IsSource2() { + if pawnEntity := p.PlayerPawnEntity(); pawnEntity != nil { + return float32(pawnEntity.PropertyValueMust("m_angEyeAngles").R3Vec().X) + } + + return 0 + } + return getFloat(p.Entity, "m_angEyeAngles[0]") } @@ -289,6 +437,14 @@ func (p *Player) ViewDirectionY() float32 { // Note: the Z value is not on the player's eye height but instead at his feet. // See also PositionEyes(). func (p *Player) Position() r3.Vector { + if p.demoInfoProvider.IsSource2() { + if pawnEntity := p.PlayerPawnEntity(); pawnEntity != nil { + return pawnEntity.Position() + } + + return r3.Vector{} + } + if p.Entity == nil { return r3.Vector{} } @@ -305,13 +461,23 @@ func (p *Player) PositionEyes() r3.Vector { } pos := p.Position() - pos.Z += float64(p.Entity.PropertyValueMust("localdata.m_vecViewOffset[2]").FloatVal) + if p.demoInfoProvider.IsSource2() { + // TODO Find out where we can find the offset in Source 2 demos + return pos + } else { + pos.Z += float64(p.Entity.PropertyValueMust("localdata.m_vecViewOffset[2]").Float()) + } return pos } // Velocity returns the player's velocity. func (p *Player) Velocity() r3.Vector { + if p.demoInfoProvider.IsSource2() { + // TODO Find out where we can find the velocity in Source 2 demos + return r3.Vector{} + } + if p.Entity == nil { return r3.Vector{} } @@ -369,6 +535,10 @@ func (pf PlayerFlags) DuckingKeyPressed() bool { // Flags returns flags currently set on m_fFlags. func (p *Player) Flags() PlayerFlags { + if p.demoInfoProvider.IsSource2() { + return PlayerFlags(getUInt64(p.PlayerPawnEntity(), "m_fFlags")) + } + return PlayerFlags(getInt(p.Entity, "m_fFlags")) } @@ -386,11 +556,19 @@ func (p *Player) resourceEntity() st.Entity { // ClanTag returns the player's individual clan tag (Steam Groups etc.). func (p *Player) ClanTag() string { + if p.demoInfoProvider.IsSource2() { + return getString(p.Entity, "m_szClan") + } + return getString(p.resourceEntity(), "m_szClan."+p.entityIDStr()) } // CrosshairCode returns the player's crosshair code or an empty string if there isn't one. func (p *Player) CrosshairCode() string { + if p.demoInfoProvider.IsSource2() { + return getString(p.Entity, "m_szCrosshairCodes") + } + if p.resourceEntity() == nil { return "" } @@ -403,11 +581,20 @@ func (p *Player) CrosshairCode() string { // Ping returns the players latency to the game server. func (p *Player) Ping() int { + // TODO change this func return type to uint64? (small BC) + if p.demoInfoProvider.IsSource2() { + return int(getUInt64(p.Entity, "m_iPing")) + } + return getInt(p.resourceEntity(), "m_iPing."+p.entityIDStr()) } // Score returns the players score as shown on the scoreboard. func (p *Player) Score() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_iScore") + } + return getInt(p.resourceEntity(), "m_iScore."+p.entityIDStr()) } @@ -437,6 +624,10 @@ var ( // Returns ErrDataNotAvailable if the resource entity does not exist (it may exist later during parsing). // Returns ErrNotSupportedByDemo if the demo does not support player colors (e.g. very old demos). func (p *Player) ColorOrErr() (Color, error) { + if p.demoInfoProvider.IsSource2() { + return Color(getInt(p.Entity, "m_iCompTeammateColor")), nil + } + resourceEnt := p.resourceEntity() if resourceEnt == nil { return Grey, errors.Wrap(ErrDataNotAvailable, "player resource entity is nil") @@ -452,46 +643,90 @@ func (p *Player) ColorOrErr() (Color, error) { // Kills returns the amount of kills the player has as shown on the scoreboard. func (p *Player) Kills() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pActionTrackingServices.m_iKills") + } + return getInt(p.resourceEntity(), "m_iKills."+p.entityIDStr()) } // Deaths returns the amount of deaths the player has as shown on the scoreboard. func (p *Player) Deaths() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pActionTrackingServices.m_iDeaths") + } + return getInt(p.resourceEntity(), "m_iDeaths."+p.entityIDStr()) } // Assists returns the amount of assists the player has as shown on the scoreboard. func (p *Player) Assists() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pActionTrackingServices.m_iAssists") + } + return getInt(p.resourceEntity(), "m_iAssists."+p.entityIDStr()) } // MVPs returns the amount of Most-Valuable-Player awards the player has as shown on the scoreboard. func (p *Player) MVPs() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_iMVPs") + } + return getInt(p.resourceEntity(), "m_iMVPs."+p.entityIDStr()) } // TotalDamage returns the total health damage done by the player. func (p *Player) TotalDamage() int { + if p.demoInfoProvider.IsSource2() { + value := p.Entity.PropertyValueMust("m_pActionTrackingServices.m_iDamage") + if value.Any == nil { + return 0 + } + return value.Int() + } + return getInt(p.resourceEntity(), "m_iMatchStats_Damage_Total."+p.entityIDStr()) } // UtilityDamage returns the total damage done by the player with grenades. func (p *Player) UtilityDamage() int { + if p.demoInfoProvider.IsSource2() { + value := p.Entity.PropertyValueMust("m_pActionTrackingServices.m_iUtilityDamage") + if value.Any == nil { + return 0 + } + return value.Int() + } + return getInt(p.resourceEntity(), "m_iMatchStats_UtilityDamage_Total."+p.entityIDStr()) } // MoneySpentTotal returns the total amount of money the player has spent in the current match. func (p *Player) MoneySpentTotal() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pInGameMoneyServices.m_iTotalCashSpent") + } + return getInt(p.resourceEntity(), "m_iTotalCashSpent."+p.entityIDStr()) } // MoneySpentThisRound returns the amount of money the player has spent in the current round. func (p *Player) MoneySpentThisRound() int { + if p.demoInfoProvider.IsSource2() { + return getInt(p.Entity, "m_pInGameMoneyServices.m_iCashSpentThisRound") + } + return getInt(p.resourceEntity(), "m_iCashSpentThisRound."+p.entityIDStr()) } // LastPlaceName returns the string value of the player's position. func (p *Player) LastPlaceName() string { + if p.demoInfoProvider.IsSource2() { + return getString(p.PlayerPawnEntity(), "m_szLastPlaceName") + } + return getString(p.Entity, "m_szLastPlaceName") } @@ -499,8 +734,11 @@ type demoInfoProvider interface { IngameTick() int // current in-game tick, used for IsBlinded() TickRate() float64 // in-game tick rate, used for Player.IsBlinded() FindPlayerByHandle(handle int) *Player + FindPlayerByPawnHandle(handle uint64) *Player PlayerResourceEntity() st.Entity FindWeaponByEntityID(id int) *Equipment + FindEntityByHandle(handle uint64) st.Entity + IsSource2() bool } // NewPlayer creates a *Player with an initialized equipment map. @@ -516,20 +754,20 @@ func NewPlayer(demoInfoProvider demoInfoProvider) *Player { // PlayerInfo contains information about a player such as their name and SteamID. // Primarily intended for internal use. type PlayerInfo struct { - Version int64 + Version int64 // Not available with CS2 demos XUID uint64 // SteamID64 Name string - UserID int - GUID string - FriendsID int - FriendsName string - // Custom files stuff (CRC) + UserID int // Not available with CS2 demos + GUID string // Not available with CS2 demos + FriendsID int // Not available with CS2 demos + FriendsName string // Not available with CS2 demos + // Custom files stuff (CRC). Not available with CS2 demos CustomFiles0 int CustomFiles1 int CustomFiles2 int CustomFiles3 int // Amount of downloaded files from the server - FilesDownloaded byte + FilesDownloaded byte // Not available with CS2 demos // Bots IsFakePlayer bool // HLTV Proxy diff --git a/pkg/demoinfocs/common/player_test.go b/pkg/demoinfocs/common/player_test.go index 151e9c88..d990b700 100644 --- a/pkg/demoinfocs/common/player_test.go +++ b/pkg/demoinfocs/common/player_test.go @@ -7,8 +7,8 @@ import ( "github.com/golang/geo/r3" "github.com/stretchr/testify/assert" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) func TestPlayerActiveWeapon(t *testing.T) { @@ -140,6 +140,7 @@ func TestPlayer_FlashDurationTimeRemaining_Fallback(t *testing.T) { func TestPlayer_IsSpottedBy_HasSpotted_True(t *testing.T) { pl := playerWithProperty("m_bSpottedByMask.000", st.PropertyValue{IntVal: 2}) pl.EntityID = 1 + pl.demoInfoProvider = s1DemoInfoProvider other := newPlayer(0) other.EntityID = 2 @@ -150,6 +151,7 @@ func TestPlayer_IsSpottedBy_HasSpotted_True(t *testing.T) { func TestPlayer_IsSpottedBy_HasSpotted_False(t *testing.T) { pl := playerWithProperty("m_bSpottedByMask.000", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider pl.EntityID = 1 other := newPlayer(0) @@ -161,6 +163,7 @@ func TestPlayer_IsSpottedBy_HasSpotted_False(t *testing.T) { func TestPlayer_IsSpottedBy_HasSpotted_BitOver32(t *testing.T) { pl := playerWithProperty("m_bSpottedByMask.001", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider pl.EntityID = 1 other := newPlayer(0) @@ -182,46 +185,54 @@ func TestPlayer_IsSpottedBy_EntityNull(t *testing.T) { func TestPlayer_IsInBombZone(t *testing.T) { pl := playerWithProperty("m_bInBombZone", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsInBombZone()) } func TestPlayer_IsInBuyZone(t *testing.T) { pl := playerWithProperty("m_bInBuyZone", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsInBuyZone()) } func TestPlayer_IsWalking(t *testing.T) { pl := playerWithProperty("m_bIsWalking", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsWalking()) } func TestPlayer_IsScoped(t *testing.T) { pl := playerWithProperty("m_bIsScoped", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsScoped()) } func TestPlayer_IsAirborne_NilEntity(t *testing.T) { pl := new(Player) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsAirborne()) } func TestPlayer_IsAirborne(t *testing.T) { pl := playerWithProperty("m_hGroundEntity", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsAirborne()) pl = playerWithProperty("m_hGroundEntity", st.PropertyValue{IntVal: 2097151}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsAirborne()) } func TestPlayer_IsDucking(t *testing.T) { pl := playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsDucking()) assert.True(t, pl.IsStanding()) @@ -229,6 +240,7 @@ func TestPlayer_IsDucking(t *testing.T) { assert.False(t, pl.IsUnDuckingInProgress()) pl = playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 1 << 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsDucking()) assert.False(t, pl.IsStanding()) @@ -236,6 +248,7 @@ func TestPlayer_IsDucking(t *testing.T) { assert.True(t, pl.IsUnDuckingInProgress()) pl = playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 1 << 2}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsDucking()) assert.False(t, pl.IsStanding()) @@ -243,6 +256,7 @@ func TestPlayer_IsDucking(t *testing.T) { assert.False(t, pl.IsUnDuckingInProgress()) pl = playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 1<<1 | 1<<2}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsDucking()) assert.False(t, pl.IsStanding()) @@ -252,46 +266,55 @@ func TestPlayer_IsDucking(t *testing.T) { func TestPlayerFlags_OnGround(t *testing.T) { pl := playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.Flags().OnGround()) pl = playerWithProperty("m_fFlags", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.Flags().OnGround()) } func TestPlayer_HasDefuseKit(t *testing.T) { pl := playerWithProperty("m_bHasDefuser", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.HasDefuseKit()) pl = playerWithProperty("m_bHasDefuser", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.HasDefuseKit()) } func TestPlayer_HasHelmet(t *testing.T) { pl := playerWithProperty("m_bHasHelmet", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.HasHelmet()) pl = playerWithProperty("m_bHasHelmet", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.HasHelmet()) } func TestPlayer_IsControllingBot_NilEntity(t *testing.T) { pl := new(Player) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsControllingBot()) } func TestPlayer_IsControllingBot(t *testing.T) { pl := playerWithProperty("m_bIsControllingBot", st.PropertyValue{IntVal: 0}) + pl.demoInfoProvider = s1DemoInfoProvider assert.False(t, pl.IsControllingBot()) pl = playerWithProperty("m_bIsControllingBot", st.PropertyValue{IntVal: 1}) + pl.demoInfoProvider = s1DemoInfoProvider assert.True(t, pl.IsControllingBot()) } @@ -324,26 +347,32 @@ func TestPlayer_ControlledBot(t *testing.T) { assert.Same(t, dave, pl.ControlledBot()) } +/* +TODO: fix for CS2 func TestPlayer_Armor(t *testing.T) { pl := playerWithProperty("m_ArmorValue", st.PropertyValue{IntVal: 95}) assert.Equal(t, 95, pl.Armor()) } +*/ func TestPlayer_Money(t *testing.T) { pl := playerWithProperty("m_iAccount", st.PropertyValue{IntVal: 800}) + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, 800, pl.Money()) } func TestPlayer_ViewDirectionX(t *testing.T) { pl := playerWithProperty("m_angEyeAngles[1]", st.PropertyValue{FloatVal: 180}) + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, float32(180), pl.ViewDirectionX()) } func TestPlayer_ViewDirectionY(t *testing.T) { pl := playerWithProperty("m_angEyeAngles[0]", st.PropertyValue{FloatVal: 15}) + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, float32(15), pl.ViewDirectionY()) } @@ -355,12 +384,14 @@ func TestPlayer_Position(t *testing.T) { entity.On("Position").Return(pos) pl := &Player{Entity: entity} + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, pos, pl.Position()) } func TestPlayer_Position_EntityNil(t *testing.T) { pl := new(Player) + pl.demoInfoProvider = s1DemoInfoProvider assert.Empty(t, pl.Position()) } @@ -372,6 +403,7 @@ func TestPlayer_PositionEyes(t *testing.T) { entity.On("Position").Return(pos) pl := &Player{Entity: entity} + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, r3.Vector{X: 1, Y: 2, Z: 5}, pl.PositionEyes()) } @@ -389,6 +421,7 @@ func TestPlayer_Velocity(t *testing.T) { entity.On("PropertyValueMust", "localdata.m_vecVelocity[2]").Return(st.PropertyValue{FloatVal: 3}) pl := &Player{Entity: entity} + pl.demoInfoProvider = s1DemoInfoProvider expected := r3.Vector{X: 1, Y: 2, Z: 3} assert.Equal(t, expected, pl.Velocity()) @@ -396,12 +429,17 @@ func TestPlayer_Velocity(t *testing.T) { func TestPlayer_Velocity_EntityNil(t *testing.T) { pl := new(Player) + pl.demoInfoProvider = s1DemoInfoProvider assert.Empty(t, pl.Velocity()) } func TestPlayer_ClanTag(t *testing.T) { - pl := playerWithResourceProperty("m_szClan", st.PropertyValue{StringVal: "SuperClan"}) + pl := playerWithResourceProperty("m_szClan", st.PropertyValue{Any: "SuperClan"}) + pl.demoInfoProvider = demoInfoProviderMock{ + playerResourceEntity: (pl.demoInfoProvider.(demoInfoProviderMock)).playerResourceEntity, + isSource2: false, + } assert.Equal(t, "SuperClan", pl.ClanTag()) } @@ -517,7 +555,8 @@ func TestPlayer_SteamID32(t *testing.T) { } func TestPlayer_LastPlaceName(t *testing.T) { - pl := playerWithProperty("m_szLastPlaceName", st.PropertyValue{StringVal: "TopofMid"}) + pl := playerWithProperty("m_szLastPlaceName", st.PropertyValue{Any: "TopofMid"}) + pl.demoInfoProvider = s1DemoInfoProvider assert.Equal(t, "TopofMid", pl.LastPlaceName()) } diff --git a/pkg/demoinfocs/constants/constants.go b/pkg/demoinfocs/constants/constants.go index 9938ba72..35a56718 100644 --- a/pkg/demoinfocs/constants/constants.go +++ b/pkg/demoinfocs/constants/constants.go @@ -3,9 +3,15 @@ package constants // Various constants that are used internally. const ( - MaxEdictBits = 11 - EntityHandleIndexMask = (1 << MaxEdictBits) - 1 EntityHandleSerialNumberBits = 10 - EntityHandleBits = MaxEdictBits + EntityHandleSerialNumberBits - InvalidEntityHandle = (1 << EntityHandleBits) - 1 + + MaxEdictBits = 11 + EntityHandleIndexMask = (1 << MaxEdictBits) - 1 + EntityHandleBits = MaxEdictBits + EntityHandleSerialNumberBits + InvalidEntityHandle = (1 << EntityHandleBits) - 1 + + MaxEdictBitsSource2 = 14 + EntityHandleIndexMaskSource2 = (1 << MaxEdictBitsSource2) - 1 + EntityHandleBitsSource2 = MaxEdictBitsSource2 + EntityHandleSerialNumberBits + InvalidEntityHandleSource2 = (1 << EntityHandleBitsSource2) - 1 ) diff --git a/pkg/demoinfocs/datatables.go b/pkg/demoinfocs/datatables.go index a6cd0837..387a90ab 100644 --- a/pkg/demoinfocs/datatables.go +++ b/pkg/demoinfocs/datatables.go @@ -7,14 +7,18 @@ import ( "github.com/golang/geo/r3" "github.com/markus-wa/go-unassert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/constants" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) func (p *parser) mapEquipment() { - for _, sc := range p.stParser.ServerClasses() { + if p.isSource2() { + return + } + + for _, sc := range p.stParser.ServerClasses().All() { switch sc.Name() { case "CC4": p.equipmentMapping[sc] = common.EqBomb @@ -76,24 +80,70 @@ func (p *parser) bindBomb() { scC4 := p.stParser.ServerClasses().FindByName("CC4") scC4.OnEntityCreated(func(bombEntity st.Entity) { bombEntity.OnPositionUpdate(func(pos r3.Vector) { - // Bomb only has a position when not held by a player - bomb.Carrier = nil - bomb.LastOnGroundPosition = pos }) - bombEntity.Property("m_hOwner").OnUpdate(func(val st.PropertyValue) { - bomb.Carrier = p.gameState.Participants().FindByHandle(val.IntVal) - }) + if p.isSource2() { + bombEntity.Property("m_hOwnerEntity").OnUpdate(func(val st.PropertyValue) { + carrier := p.gameState.Participants().FindByPawnHandle(val.Handle()) + if !p.disableMimicSource1GameEvents { + if carrier != nil { + p.eventDispatcher.Dispatch(events.BombPickup{ + Player: carrier, + }) + } else if bomb.Carrier != nil { + p.eventDispatcher.Dispatch(events.BombDropped{ + Player: bomb.Carrier, + EntityID: bomb.Carrier.EntityID, + }) + } + } + bomb.Carrier = carrier + }) + } else { + bombEntity.Property("m_hOwner").OnUpdate(func(val st.PropertyValue) { + bomb.Carrier = p.gameState.Participants().FindByHandle(val.Int()) + }) + } + + // Updated when a player starts/stops planting the bomb bombEntity.Property("m_bStartedArming").OnUpdate(func(val st.PropertyValue) { - if val.IntVal != 0 { - p.gameState.currentPlanter = bomb.Carrier + if val.BoolVal() { + if p.isSource2() { + planter := p.gameState.Participants().FindByPawnHandle(bombEntity.PropertyValueMust("m_hOwnerEntity").Handle()) + planter.IsPlanting = true + p.gameState.currentPlanter = planter + + siteNumber := p.gameState.currentPlanter.PlayerPawnEntity().PropertyValueMust("m_nWhichBombZone").Int() + site := events.BomsiteUnknown + switch siteNumber { + case 1: + site = events.BombsiteA + case 2: + site = events.BombsiteB + } + + if !p.disableMimicSource1GameEvents { + p.eventDispatcher.Dispatch(events.BombPlantBegin{ + BombEvent: events.BombEvent{ + Player: p.gameState.currentPlanter, + Site: site, + }, + }) + } + } else { + p.gameState.currentPlanter = bomb.Carrier + } } else if p.gameState.currentPlanter != nil { p.gameState.currentPlanter.IsPlanting = false p.eventDispatcher.Dispatch(events.BombPlantAborted{Player: p.gameState.currentPlanter}) } }) + + bombEntity.OnDestroy(func() { + p.gameState.currentPlanter = nil + }) }) // Track bomb when it has been planted @@ -101,14 +151,108 @@ func (p *parser) bindBomb() { scPlantedC4.OnEntityCreated(func(bombEntity st.Entity) { // Player can't hold the bomb when it has been planted p.gameState.bomb.Carrier = nil + p.gameState.currentPlanter = nil bomb.LastOnGroundPosition = bombEntity.Position() + + if p.isSource2() { + isTicking := true + ownerProp := bombEntity.PropertyValueMust("m_hOwnerEntity") + planter := p.gameState.Participants().FindByPawnHandle(ownerProp.Handle()) + planter.IsPlanting = false + + siteNumber := bombEntity.PropertyValueMust("m_nBombSite").Int() + site := events.BomsiteUnknown + if siteNumber == 0 { + site = events.BombsiteA + } else if siteNumber == 1 { + site = events.BombsiteB + } + + if !p.disableMimicSource1GameEvents { + p.eventDispatcher.Dispatch(events.BombPlanted{ + BombEvent: events.BombEvent{ + Player: planter, + Site: site, + }, + }) + } + + // Set to true when the bomb has been planted and to false when it has been defused or has exploded. + bombEntity.Property("m_bBombTicking").OnUpdate(func(val st.PropertyValue) { + isTicking = val.BoolVal() + if isTicking { + return + } + + // At this point the bomb stopped ticking either because it has been defused or has exploded. + // We detect only explosions here, defuse events are detected with m_bBombDefused updates which seems more suitable. + // When the bomb is defused, m_bBombTicking is set to false and then m_hBombDefuser is set to nil. + // It means that if a player is currently defusing the bomb, it's a defuse event. + isDefuseEvent := p.gameState.currentDefuser != nil + if isDefuseEvent || p.disableMimicSource1GameEvents { + return + } + + p.eventDispatcher.Dispatch(events.BombExplode{ + BombEvent: events.BombEvent{ + Player: planter, + Site: site, + }, + }) + }) + + // Updated when a player starts/stops defusing the bomb + bombEntity.Property("m_hBombDefuser").OnUpdate(func(val st.PropertyValue) { + isValidPlayer := val.Handle() != constants.InvalidEntityHandleSource2 + if isValidPlayer { + defuser := p.gameState.Participants().FindByPawnHandle(val.Handle()) + p.gameState.currentDefuser = defuser + if !p.disableMimicSource1GameEvents { + p.eventDispatcher.Dispatch(events.BombDefuseStart{ + Player: defuser, + HasKit: defuser.HasDefuseKit(), + }) + } + return + } + + isDefused := bombEntity.PropertyValueMust("m_bBombDefused").BoolVal() + if !isDefused && p.gameState.currentDefuser != nil { + p.eventDispatcher.Dispatch(events.BombDefuseAborted{ + Player: p.gameState.currentDefuser, + }) + } + + p.gameState.currentDefuser = nil + }) + + // Updated when the bomb has been planted and defused. + bombEntity.Property("m_bBombDefused").OnUpdate(func(val st.PropertyValue) { + isDefused := val.BoolVal() + if isDefused && !p.disableMimicSource1GameEvents { + defuser := p.gameState.Participants().FindByPawnHandle(bombEntity.PropertyValueMust("m_hBombDefuser").Handle()) + p.eventDispatcher.Dispatch(events.BombDefused{ + BombEvent: events.BombEvent{ + Player: defuser, + Site: site, + }, + }) + } + }) + + bombEntity.OnDestroy(func() { + isTicking = true + p.gameState.currentDefuser = nil + }) + } }) } func (p *parser) bindTeamStates() { p.stParser.ServerClasses().FindByName("CCSTeam").OnEntityCreated(func(entity st.Entity) { - team := entity.PropertyValueMust("m_szTeamname").StringVal + teamVal := entity.PropertyValueMust("m_szTeamname") + team := teamVal.String() var s *common.TeamState @@ -130,14 +274,24 @@ func (p *parser) bindTeamStates() { s.Entity = entity // Register updates - var score int - entity.Property("m_scoreTotal").OnUpdate(func(val st.PropertyValue) { + var ( + scoreProp st.Property + score int + ) + + if p.isSource2() { + scoreProp = entity.Property("m_iScore") + } else { + scoreProp = entity.Property("m_scoreTotal") + } + + scoreProp.OnUpdate(func(val st.PropertyValue) { oldScore := score - score = val.IntVal + score = val.Int() p.eventDispatcher.Dispatch(events.ScoreUpdated{ OldScore: oldScore, - NewScore: val.IntVal, + NewScore: val.Int(), TeamState: s, }) }) @@ -155,19 +309,33 @@ func (p *parser) bindBombSites() { t := new(boundingBoxInformation) p.triggers[baseTrigger.ID()] = t - baseTrigger.BindProperty("m_Collision.m_vecMins", &t.min, st.ValTypeVector) - baseTrigger.BindProperty("m_Collision.m_vecMaxs", &t.max, st.ValTypeVector) + if p.isSource2() { + baseTrigger.BindProperty("m_vecMins", &t.min, st.ValTypeVector) + baseTrigger.BindProperty("m_vecMaxs", &t.max, st.ValTypeVector) + } else { + baseTrigger.BindProperty("m_Collision.m_vecMins", &t.min, st.ValTypeVector) + baseTrigger.BindProperty("m_Collision.m_vecMaxs", &t.max, st.ValTypeVector) + } }) } func (p *parser) bindPlayers() { - p.stParser.ServerClasses().FindByName("CCSPlayer").OnEntityCreated(func(player st.Entity) { - p.bindNewPlayer(player) - }) + if p.isSource2() { + p.stParser.ServerClasses().FindByName("CCSPlayerController").OnEntityCreated(func(player st.Entity) { + p.bindNewPlayerControllerS2(player) + }) + p.stParser.ServerClasses().FindByName("CCSPlayerPawn").OnEntityCreated(func(player st.Entity) { + p.bindNewPlayerPawnS2(player) + }) + } else { + p.stParser.ServerClasses().FindByName("CCSPlayerResource").OnEntityCreated(func(entity st.Entity) { + p.gameState.playerResourceEntity = entity + }) - p.stParser.ServerClasses().FindByName("CCSPlayerResource").OnEntityCreated(func(entity st.Entity) { - p.gameState.playerResourceEntity = entity - }) + p.stParser.ServerClasses().FindByName("CCSPlayer").OnEntityCreated(func(player st.Entity) { + p.bindNewPlayerS1(player) + }) + } } func (p *parser) getOrCreatePlayer(entityID int, rp *common.PlayerInfo) (isNew bool, player *common.Player) { @@ -209,7 +377,7 @@ func (p *parser) getOrCreatePlayer(entityID int, rp *common.PlayerInfo) (isNew b } //nolint:funlen -func (p *parser) bindNewPlayer(playerEntity st.Entity) { +func (p *parser) bindNewPlayerS1(playerEntity st.Entity) { entityID := playerEntity.ID() rp := p.rawPlayers[entityID-1] @@ -249,16 +417,17 @@ func (p *parser) bindNewPlayer(playerEntity st.Entity) { p.bindPlayerWeapons(playerEntity, pl) - // Active weapon - playerEntity.Property("m_hActiveWeapon").OnUpdate(func(val st.PropertyValue) { - pl.IsReloading = false - }) - for i := 0; i < 32; i++ { i2 := i // Copy so it stays the same playerEntity.BindProperty("m_iAmmo."+fmt.Sprintf("%03d", i2), &pl.AmmoLeft[i2], st.ValTypeInt) } + activeWep := playerEntity.Property("m_hActiveWeapon") + + activeWep.OnUpdate(func(val st.PropertyValue) { + pl.IsReloading = false + }) + playerEntity.Property("m_bIsDefusing").OnUpdate(func(val st.PropertyValue) { if p.gameState.currentDefuser == pl && pl.IsDefusing && val.IntVal == 0 { p.eventDispatcher.Dispatch(events.BombDefuseAborted{Player: pl}) @@ -287,6 +456,119 @@ func (p *parser) bindNewPlayer(playerEntity st.Entity) { } } +func (p *parser) bindNewPlayerControllerS2(controllerEntity st.Entity) { + controllerEntityID := controllerEntity.ID() + + rp := p.rawPlayers[controllerEntityID-1] + + isNew, pl := p.getOrCreatePlayer(controllerEntityID, rp) + + pl.EntityID = controllerEntityID + pl.Entity = controllerEntity + pl.IsConnected = true + pawnProp := controllerEntity.Property("m_hPawn") + pl.PawnEntityID = int(pawnProp.Value().S2UInt64() & constants.EntityHandleIndexMaskSource2) + + controllerEntity.Property("m_iTeamNum").OnUpdate(func(val st.PropertyValue) { + pl.Team = common.Team(val.S2UInt64()) + pl.TeamState = p.gameState.Team(pl.Team) + }) + + pawnProp.OnUpdate(func(val st.PropertyValue) { + pl.PawnEntityID = int(val.S2UInt64()) & constants.EntityHandleIndexMaskSource2 + }) + + controllerEntity.OnDestroy(func() { + delete(p.gameState.playersByEntityID, controllerEntityID) + pl.Entity = nil + }) + + if isNew { + if pl.SteamID64 != 0 { + p.eventDispatcher.Dispatch(events.PlayerConnect{Player: pl}) + } else { + p.eventDispatcher.Dispatch(events.BotConnect{Player: pl}) + } + } +} + +func (p *parser) bindNewPlayerPawnS2(pawnEntity st.Entity) { + player := func() *common.Player { + return p.gameState.Participants().FindByHandle64(pawnEntity.PropertyValueMust("m_hController").Handle()) + } + + // Position + pawnEntity.OnPositionUpdate(func(pos r3.Vector) { + pl := player() + if pl == nil { + return + } + + if pl.IsAlive() { + pl.LastAlivePosition = pos + } + }) + + pawnEntity.Property("m_flFlashDuration").OnUpdate(func(val st.PropertyValue) { + pl := player() + if pl == nil { + return + } + + if val.Float() == 0 { + pl.FlashTick = 0 + } else { + pl.FlashTick = p.gameState.ingameTick + } + + pl.FlashDuration = val.Float() + + if pl.FlashDuration > 0 { + if len(p.gameState.flyingFlashbangs) == 0 { + return + } + + flashbang := p.gameState.flyingFlashbangs[0] + flashbang.flashedEntityIDs = append(flashbang.flashedEntityIDs, pl.EntityID) + } + }) + + p.bindPlayerWeaponsS2(pawnEntity, player) + + pawnEntity.Property("m_pWeaponServices.m_hActiveWeapon").OnUpdate(func(val st.PropertyValue) { + pl := player() + if pl == nil { + return + } + + pl.IsReloading = false + }) + + pawnEntity.Property("m_bIsDefusing").OnUpdate(func(val st.PropertyValue) { + pl := player() + if pl == nil { + return + } + + pl.IsDefusing = val.BoolVal() + }) + + spottedByMaskProp := pawnEntity.Property("m_bSpottedByMask.0000") + if spottedByMaskProp != nil { + pl := player() + if pl == nil { + return + } + + spottersChanged := func(val st.PropertyValue) { + p.eventDispatcher.Dispatch(events.PlayerSpottersChanged{Spotted: pl}) + } + + spottedByMaskProp.OnUpdate(spottersChanged) + pawnEntity.Property("m_bSpottedByMask.0001").OnUpdate(spottersChanged) + } +} + const maxWeapons = 64 func (p *parser) bindPlayerWeapons(playerEntity st.Entity, pl *common.Player) { @@ -339,19 +621,106 @@ func (p *parser) bindPlayerWeapons(playerEntity st.Entity, pl *common.Player) { } } +func (p *parser) bindPlayerWeaponsS2(pawnEntity st.Entity, getPlayer func() *common.Player) { + pl := getPlayer() + if pl == nil { + return + } + + var cache [maxWeapons]uint64 + for i := range cache { + i2 := i // Copy for passing to handler + pawnEntity.Property(playerWeaponPrefixS2 + fmt.Sprintf("%04d", i)).OnUpdate(func(val st.PropertyValue) { + if val.Any == nil { + return + } + entityID := val.S2UInt64() & constants.EntityHandleIndexMaskSource2 + if entityID != constants.EntityHandleIndexMaskSource2 { + if cache[i2] != 0 { + // Player already has a weapon in this slot. + delete(pl.Inventory, int(cache[i2])) + } + cache[i2] = entityID + + wep := p.gameState.weapons[int(entityID)] + + if wep == nil { + // sometimes a weapon is assigned to a player before the weapon entity is created + wep = common.NewEquipment(common.EqUnknown) + p.gameState.weapons[int(entityID)] = wep + } + + // Clear previous owner + if wep.Owner != nil && wep.Entity != nil { + delete(wep.Owner.Inventory, wep.Entity.ID()) + } + + // Attribute weapon to player + wep.Owner = pl + pl.Inventory[int(entityID)] = wep + } else { + if cache[i2] != 0 && pl.Inventory[int(cache[i2])] != nil { + pl.Inventory[int(cache[i2])].Owner = nil + } + delete(pl.Inventory, int(cache[i2])) + + cache[i2] = 0 + } + }) + } +} + func (p *parser) bindWeapons() { - for _, sc := range p.stParser.ServerClasses() { - for _, bc := range sc.BaseClasses() { - switch bc.Name() { - case "CWeaponCSBase": - sc2 := sc // Local copy for loop - sc.OnEntityCreated(func(e st.Entity) { p.bindWeapon(e, p.equipmentMapping[sc2]) }) - case "CBaseGrenade": // Grenade that has been thrown by player. + s2 := p.isSource2() + + for _, sc := range p.stParser.ServerClasses().All() { + if s2 { + hasIndexProp := false + hasClipProp := false + hasThrower := false + + for _, prop := range sc.PropertyEntries() { + if prop == "m_iItemDefinitionIndex" { + hasIndexProp = true + } + + if prop == "m_iClip1" { + hasClipProp = true + } + + if prop == "m_hThrower" { + hasThrower = true + } + } + + isEquipmentClass := hasClipProp && hasIndexProp + + if isEquipmentClass { + sc.OnEntityCreated(p.bindWeaponS2) + } + + if hasThrower { sc.OnEntityCreated(p.bindGrenadeProjectiles) - case "CBaseCSGrenade": - // @micvbang TODO: handle grenades dropped by dead player. - // Grenades that were dropped by a dead player (and can be picked up by other players). - } //nolint:wsl + } + } else { + for _, bc := range sc.BaseClasses() { + switch bc.Name() { + case "CWeaponCSBase": + if s2 { + continue + } + + sc2 := sc // Local copy for loop + sc.OnEntityCreated(func(e st.Entity) { p.bindWeapon(e, p.equipmentMapping[sc2]) }) + + case "CBaseGrenade": // Grenade that has been thrown by player. + sc.OnEntityCreated(p.bindGrenadeProjectiles) + + case "CBaseCSGrenade": + // @micvbang TODO: handle grenades dropped by dead player. + // Grenades that were dropped by a dead player (and can be picked up by other players). + } //nolint:wsl + } } } @@ -367,8 +736,24 @@ func (p *parser) bindGrenadeProjectiles(entity st.Entity) { proj.Entity = entity p.gameState.grenadeProjectiles[entityID] = proj + if p.demoInfoProvider.IsSource2() { + player := p.demoInfoProvider.FindPlayerByPawnHandle(entity.PropertyValueMust("m_hOwnerEntity").Handle()) + proj.Thrower = player + proj.Owner = player + } + var wep common.EquipmentType entity.OnCreateFinished(func() { //nolint:wsl + if p.demoInfoProvider.IsSource2() { + model := entity.PropertyValueMust("CBodyComponent.m_hModel").S2UInt64() + weaponType, exists := p.equipmentTypePerModel[model] + if exists { + wep = weaponType + } else { + fmt.Printf("unknown grenade model %d", model) + } + } + // copy the weapon so it doesn't get overwritten by a new entity in parser.weapons wepCopy := *(getPlayerWeapon(proj.Thrower, wep)) proj.WeaponInstance = &wepCopy @@ -380,26 +765,69 @@ func (p *parser) bindGrenadeProjectiles(entity st.Entity) { p.gameEventHandler.addThrownGrenade(proj.Thrower, proj.WeaponInstance) + if p.demoInfoProvider.IsSource2() && wep == common.EqFlash { + p.gameState.flyingFlashbangs = append(p.gameState.flyingFlashbangs, &FlyingFlashbang{ + projectile: proj, + flashedEntityIDs: []int{}, + }) + } + + if p.isSource2() && !p.disableMimicSource1GameEvents { + p.eventDispatcher.Dispatch(events.WeaponFire{ + Shooter: proj.Owner, + Weapon: proj.WeaponInstance, + }) + } + p.eventDispatcher.Dispatch(events.GrenadeProjectileThrow{ Projectile: proj, }) }) entity.OnDestroy(func() { + if p.demoInfoProvider.IsSource2() && wep == common.EqFlash && !p.disableMimicSource1GameEvents { + p.gameEventHandler.dispatch(events.FlashExplode{ + GrenadeEvent: events.GrenadeEvent{ + GrenadeType: common.EqFlash, + Grenade: proj.WeaponInstance, + Position: proj.Position(), + Thrower: proj.Thrower, + GrenadeEntityID: proj.Entity.ID(), + }, + }) + + if len(p.gameState.flyingFlashbangs) == 0 { + return + } + + flashbang := p.gameState.flyingFlashbangs[0] + flashbang.explodedFrame = p.currentFrame + } + p.nadeProjectileDestroyed(proj) }) - entity.Property("m_nModelIndex").OnUpdate(func(val st.PropertyValue) { - wep = p.grenadeModelIndices[val.IntVal] - }) + if !p.demoInfoProvider.IsSource2() { + entity.Property("m_nModelIndex").OnUpdate(func(val st.PropertyValue) { + wep = p.grenadeModelIndices[val.Int()] + }) + } // @micvbang: not quite sure what the difference between Thrower and Owner is. entity.Property("m_hThrower").OnUpdate(func(val st.PropertyValue) { - proj.Thrower = p.gameState.Participants().FindByHandle(val.IntVal) + if p.demoInfoProvider.IsSource2() { + proj.Thrower = p.demoInfoProvider.FindPlayerByPawnHandle(val.Handle()) + } else { + proj.Thrower = p.gameState.Participants().FindByHandle(val.Int()) + } }) entity.Property("m_hOwnerEntity").OnUpdate(func(val st.PropertyValue) { - proj.Owner = p.gameState.Participants().FindByHandle(val.IntVal) + if p.demoInfoProvider.IsSource2() { + proj.Owner = p.gameState.Participants().FindByPawnHandle(val.Handle()) + } else { + proj.Owner = p.gameState.Participants().FindByHandle(val.Int()) + } }) entity.OnPositionUpdate(func(newPos r3.Vector) { @@ -410,10 +838,11 @@ func (p *parser) bindGrenadeProjectiles(entity st.Entity) { // So we need to check for nil and can't send out bounce events if it's missing if bounceProp := entity.Property("m_nBounces"); bounceProp != nil { bounceProp.OnUpdate(func(val st.PropertyValue) { - if val.IntVal != 0 { + bounceNumber := val.Int() + if bounceNumber != 0 { p.eventDispatcher.Dispatch(events.GrenadeProjectileBounce{ Projectile: proj, - BounceNr: val.IntVal, + BounceNr: bounceNumber, }) } }) @@ -448,6 +877,60 @@ func (p *parser) nadeProjectileDestroyed(proj *common.GrenadeProjectile) { } } +func (p *parser) bindWeaponS2(entity st.Entity) { + entityID := entity.ID() + itemIndex := entity.PropertyValueMust("m_iItemDefinitionIndex").S2UInt64() + wepType := common.EquipmentIndexMapping[itemIndex] + + if wepType == common.EqUnknown { + fmt.Println("unknown equipment with index", itemIndex) + p.msgDispatcher.Dispatch(events.ParserWarn{ + Message: fmt.Sprintf("unknown equipment with index %d", itemIndex), + Type: events.WarnTypeUnknownEquipmentIndex, + }) + } else { + model := entity.PropertyValueMust("CBodyComponent.m_hModel").S2UInt64() + p.equipmentTypePerModel[model] = wepType + } + + equipment, exists := p.gameState.weapons[entityID] + if !exists { + equipment = common.NewEquipment(wepType) + p.gameState.weapons[entityID] = equipment + } else { + equipment.Type = wepType + } + + equipment.Entity = entity + + entity.OnDestroy(func() { + delete(p.gameState.weapons, entityID) + }) + + // Detect weapon firing, we don't use m_iClip1 because it would not work with weapons such as the knife (no ammo). + // WeaponFire events for grenades are dispatched when the grenade's projectile is created. + if p.isSource2() && equipment.Class() != common.EqClassGrenade && !p.disableMimicSource1GameEvents { + entity.Property("m_fLastShotTime").OnUpdate(func(val st.PropertyValue) { + shooter := p.GameState().Participants().FindByPawnHandle(entity.PropertyValueMust("m_hOwnerEntity").Handle()) + if shooter == nil { + shooter = equipment.Owner + } + if shooter != nil && val.Float() > 0 { + p.eventDispatcher.Dispatch(events.WeaponFire{ + Shooter: shooter, + Weapon: equipment, + }) + } + }) + } + + entity.Property("m_iClip1").OnUpdate(func(val st.PropertyValue) { + if equipment.Owner != nil { + equipment.Owner.IsReloading = false + } + }) +} + func (p *parser) bindWeapon(entity st.Entity, wepType common.EquipmentType) { entityID := entity.ID() @@ -501,7 +984,14 @@ func (p *parser) bindWeapon(entity st.Entity, wepType common.EquipmentType) { } func (p *parser) bindNewInferno(entity st.Entity) { - inf := common.NewInferno(p.demoInfoProvider, entity) + throwerHandle := entity.PropertyValueMust("m_hOwnerEntity").Handle() + var thrower *common.Player + if p.isSource2() { + thrower = p.gameState.Participants().FindByPawnHandle(throwerHandle) + } else { + thrower = p.gameState.Participants().FindByHandle64(throwerHandle) + } + inf := common.NewInferno(p.demoInfoProvider, entity, thrower) p.gameState.infernos[entity.ID()] = inf entity.OnCreateFinished(func() { @@ -534,17 +1024,56 @@ func (p *parser) infernoExpired(inf *common.Inferno) { //nolint:funlen func (p *parser) bindGameRules() { - grPrefix := func(s string) string { - return fmt.Sprintf("%s.%s", gameRulesPrefix, s) - } - gameRules := p.ServerClasses().FindByName("CCSGameRulesProxy") gameRules.OnEntityCreated(func(entity st.Entity) { + grPrefix := func(s string) string { + if p.isSource2() { + return fmt.Sprintf("%s.%s", gameRulesPrefixS2, s) + } + + return fmt.Sprintf("%s.%s", gameRulesPrefix, s) + } + p.gameState.rules.entity = entity + roundTime := entity.PropertyValueMust(grPrefix("m_iRoundTime")).Int() + hasRescueZone := entity.PropertyValueMust(grPrefix("m_bMapHasRescueZone")).BoolVal() + hasBombTarget := entity.PropertyValueMust(grPrefix("m_bMapHasBombTarget")).BoolVal() + + dispatchRoundStart := func() { + p.gameEventHandler.clearGrenadeProjectiles() + + if p.disableMimicSource1GameEvents { + return + } + + if p.gameState.TotalRoundsPlayed() > 0 { + p.gameEventHandler.dispatch(events.RoundEndOfficial{}) + } + + var objective string + if hasBombTarget { + objective = "BOMB TARGET" + } else if hasRescueZone { + objective = "HOSTAGE RESCUE" + } else { + objective = "DEATHMATCH" + } + + p.gameState.lastRoundStartEvent = &events.RoundStart{ + TimeLimit: roundTime, + FragLimit: 0, // Always 0, seems hardcoded in the game + Objective: objective, + } + } + + entity.Property(grPrefix("m_iRoundTime")).OnUpdate(func(val st.PropertyValue) { + roundTime = val.Int() + }) + entity.Property(grPrefix("m_gamePhase")).OnUpdate(func(val st.PropertyValue) { oldGamePhase := p.gameState.gamePhase - p.gameState.gamePhase = common.GamePhase(val.IntVal) + p.gameState.gamePhase = common.GamePhase(val.Int()) p.eventDispatcher.Dispatch(events.GamePhaseChanged{ OldGamePhase: oldGamePhase, @@ -562,7 +1091,7 @@ func (p *parser) bindGameRules() { entity.BindProperty(grPrefix("m_totalRoundsPlayed"), &p.gameState.totalRoundsPlayed, st.ValTypeInt) entity.Property(grPrefix("m_bWarmupPeriod")).OnUpdate(func(val st.PropertyValue) { oldIsWarmupPeriod := p.gameState.isWarmupPeriod - p.gameState.isWarmupPeriod = val.IntVal == 1 + p.gameState.isWarmupPeriod = val.BoolVal() p.eventDispatcher.Dispatch(events.IsWarmupPeriodChanged{ OldIsWarmupPeriod: oldIsWarmupPeriod, @@ -572,20 +1101,133 @@ func (p *parser) bindGameRules() { entity.Property(grPrefix("m_bHasMatchStarted")).OnUpdate(func(val st.PropertyValue) { oldMatchStarted := p.gameState.isMatchStarted - p.gameState.isMatchStarted = val.IntVal == 1 + newMatchStarted := val.BoolVal() - p.eventDispatcher.Dispatch(events.MatchStartedChanged{ + event := events.MatchStartedChanged{ OldIsStarted: oldMatchStarted, - NewIsStarted: p.gameState.isMatchStarted, + NewIsStarted: newMatchStarted, + } + if p.isSource2() && !p.disableMimicSource1GameEvents { + p.gameState.lastMatchStartedChangedEvent = &event + // First round start event detection, we can't detect it by listening for a m_eRoundWinReason prop update + // because there is no update triggered when the first round starts as the prop value is already 0. + if newMatchStarted { + winRoundReason := events.RoundEndReason(entity.PropertyValueMust(grPrefix("m_eRoundWinReason")).Int()) + if winRoundReason == events.RoundEndReasonStillInProgress { + dispatchRoundStart() + } + } + } else { + p.gameState.isMatchStarted = newMatchStarted + p.eventDispatcher.Dispatch(event) + } + }) + + // Incremented at the beginning of a new overtime. + entity.Property(grPrefix("m_nOvertimePlaying")).OnUpdate(func(val st.PropertyValue) { + overtimeCount := val.Int() + p.eventDispatcher.Dispatch(events.OvertimeNumberChanged{ + OldCount: p.gameState.overtimeCount, + NewCount: overtimeCount, }) + p.gameState.overtimeCount = overtimeCount }) - // TODO: seems like this is more reliable than RoundEnd events - // "m_eRoundWinReason" + if p.isSource2() { + firstUpdateOccurred := false + // Updated when a round ends or starts. + // The value 0 means there is no result yet and the round is in progress. + entity.Property(grPrefix("m_eRoundWinReason")).OnUpdate(func(val st.PropertyValue) { + // Ignore the first update that contains initial CCSGameRulesProxy class values. + if !firstUpdateOccurred { + firstUpdateOccurred = true + return + } + + reason := events.RoundEndReason(val.Int()) + if reason == events.RoundEndReasonStillInProgress { + dispatchRoundStart() + return + } + + message := "UNKNOWN" + var winner common.Team = common.TeamUnassigned + switch reason { + case events.RoundEndReasonTargetBombed: + winner = common.TeamTerrorists + message = "#SFUI_Notice_Target_Bombed" + case events.RoundEndReasonTerroristsEscaped: + winner = common.TeamTerrorists + message = "#SFUI_Notice_Terrorists_Escaped" + case events.RoundEndReasonTerroristsWin: + winner = common.TeamTerrorists + message = "#SFUI_Notice_Terrorists_Win" + case events.RoundEndReasonHostagesNotRescued: + winner = common.TeamTerrorists + message = "#SFUI_Notice_Hostages_Not_Rescued" + case events.RoundEndReasonTerroristsPlanted: + winner = common.TeamTerrorists + message = "#SFUI_Notice_Terrorists_Planted" + case events.RoundEndReasonCTSurrender: + winner = common.TeamTerrorists + message = "#SFUI_Notice_CTs_Surrender" + case events.RoundEndReasonCTsReachedHostage: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_CTs_ReachedHostage" + case events.RoundEndReasonCTStoppedEscape: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_CTs_PreventEscape" + case events.RoundEndReasonTerroristsStopped: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_Escaping_Terrorists_Neutralized" + case events.RoundEndReasonBombDefused: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_Bomb_Defused" + case events.RoundEndReasonCTWin: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_CTs_Win" + case events.RoundEndReasonHostagesRescued: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_All_Hostages_Rescued" + case events.RoundEndReasonTargetSaved: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_Target_Saved" + case events.RoundEndReasonTerroristsNotEscaped: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_Terrorists_Not_Escaped" + case events.RoundEndReasonTerroristsSurrender: + winner = common.TeamCounterTerrorists + message = "#SFUI_Notice_Terrorists_Surrender" + case events.RoundEndReasonGameStart: + winner = common.TeamSpectators + message = "#SFUI_Notice_Game_Commencing" + case events.RoundEndReasonDraw: + winner = common.TeamSpectators + message = "#SFUI_Notice_Round_Draw" + } + + var winnerState *common.TeamState + var loserState *common.TeamState + if winner != common.TeamUnassigned { + winnerState = p.gameState.Team(winner) + loserState = winnerState.Opponent + } + + if !p.disableMimicSource1GameEvents { + p.gameState.lastRoundEndEvent = &events.RoundEnd{ + Reason: reason, + Message: message, + Winner: winner, + WinnerState: winnerState, + LoserState: loserState, + } + } + + p.gameState.currentPlanter = nil + }) + } // TODO: future fields to use - // "m_iRoundWinStatus" - // "m_nOvertimePlaying" // "m_bGameRestart" // "m_MatchDevice" // "m_bHasMatchStarted" @@ -615,7 +1257,7 @@ func (p *parser) bindHostages() { var state common.HostageState entity.Property("m_nHostageState").OnUpdate(func(val st.PropertyValue) { oldState := state - state = common.HostageState(val.IntVal) + state = common.HostageState(val.Int()) if oldState != state { p.eventDispatcher.Dispatch(events.HostageStateChanged{OldState: oldState, NewState: state, Hostage: p.gameState.hostages[entityID]}) } diff --git a/pkg/demoinfocs/datatables_test.go b/pkg/demoinfocs/datatables_test.go index 0dba91a3..0f1cbea7 100644 --- a/pkg/demoinfocs/datatables_test.go +++ b/pkg/demoinfocs/datatables_test.go @@ -6,10 +6,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) type DevNullReader struct { @@ -36,11 +36,11 @@ func TestParser_BindNewPlayer_Issue98(t *testing.T) { } bot := fakePlayerEntity(1) - p.bindNewPlayer(bot) + p.bindNewPlayerS1(bot) bot.Destroy() player := fakePlayerEntity(2) - p.bindNewPlayer(player) + p.bindNewPlayerS1(player) assert.Len(t, p.GameState().Participants().Connected(), 1) } @@ -58,13 +58,13 @@ func TestParser_BindNewPlayer_Issue98_Reconnect(t *testing.T) { } player := fakePlayerEntity(1) - p.bindNewPlayer(player) + p.bindNewPlayerS1(player) player.Destroy() p.RegisterEventHandler(func(events.PlayerConnect) { t.Error("expected no more PlayerConnect events but got one") }) - p.bindNewPlayer(player) + p.bindNewPlayerS1(player) assert.Len(t, p.GameState().Participants().All(), 1) } @@ -100,7 +100,7 @@ func testPlayerSpotted(t *testing.T, propName string) { spotted.On("Property", propName).Return(spottedByProp0) configurePlayerEntityMock(1, spotted) - p.bindNewPlayer(spotted) + p.bindNewPlayerS1(spotted) var actual events.PlayerSpottersChanged p.RegisterEventHandler(func(e events.PlayerSpottersChanged) { diff --git a/pkg/demoinfocs/debug_off.go b/pkg/demoinfocs/debug_off.go index f4f98497..7f4387b0 100644 --- a/pkg/demoinfocs/debug_off.go +++ b/pkg/demoinfocs/debug_off.go @@ -5,8 +5,8 @@ package demoinfocs import ( - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) func debugGameEvent(descriptor *msg.CSVCMsg_GameEventListDescriptorT, ge *msg.CSVCMsg_GameEvent) { diff --git a/pkg/demoinfocs/debug_on.go b/pkg/demoinfocs/debug_on.go index e48400ca..7df80144 100644 --- a/pkg/demoinfocs/debug_on.go +++ b/pkg/demoinfocs/debug_on.go @@ -8,8 +8,8 @@ package demoinfocs import ( "fmt" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) const ( @@ -17,7 +17,7 @@ const ( no = "NO" ) -// Can be overridden via -ldflags="-X 'github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs.debugServerClasses=YES'" +// Can be overridden via -ldflags="-X 'github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs.debugServerClasses=YES'" // e.g. `go run -tags debugdemoinfocs -ldflags="-X 'github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs.debugDemoCommands=YES'" examples/print-events/print_events.go -demo example.dem` // Oh and btw we cant use bools for this, Go says 'cannot use -X with non-string symbol' var ( @@ -111,7 +111,7 @@ func debugDemoCommand(cmd demoCommand) { func debugAllServerClasses(classes st.ServerClasses) { if debugServerClasses == yes { - for _, sc := range classes { + for _, sc := range classes.All() { fmt.Println(sc) fmt.Println() } diff --git a/pkg/demoinfocs/demoinfocs_test.go b/pkg/demoinfocs/demoinfocs_test.go index a9a2cd98..b6502c8c 100644 --- a/pkg/demoinfocs/demoinfocs_test.go +++ b/pkg/demoinfocs/demoinfocs_test.go @@ -21,19 +21,21 @@ import ( "github.com/stretchr/testify/assert" "google.golang.org/protobuf/proto" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) const ( testDataPath = "../../test" csDemosPath = testDataPath + "/cs-demos" demSetPath = csDemosPath + "/set" + demSetPathS2 = csDemosPath + "/s2" defaultDemPath = csDemosPath + "/default.dem" retakeDemPath = csDemosPath + "/retake_unknwon_bombsite_index.dem" unexpectedEndOfDemoPath = csDemosPath + "/unexpected_end_of_demo.dem" + s2DemPath = demSetPathS2 + "/s2.dem" ) var concurrentDemos = flag.Int("concurrentdemos", 2, "The `number` of current demos") @@ -194,6 +196,33 @@ func TestDemoInfoCs(t *testing.T) { assertGolden(t, assertions, "default", actual.Bytes()) } +func TestS2(t *testing.T) { + t.Parallel() + + if testing.Short() { + t.Skip("skipping test due to -short flag") + } + + f, err := os.Open(s2DemPath) + assertions := assert.New(t) + assertions.NoError(err, "error opening demo %q", s2DemPath) + + defer mustClose(t, f) + + cfg := demoinfocs.DefaultParserConfig + cfg.MsgQueueBufferSize = 0 + + p := demoinfocs.NewParserWithConfig(f, cfg) + + t.Log("Parsing header") + _, err = p.ParseHeader() + assertions.NoError(err, "error returned by Parser.ParseHeader()") + + t.Log("Parsing to end") + err = p.ParseToEnd() + assertions.NoError(err, "error occurred in ParseToEnd()") +} + func TestEncryptedNetMessages(t *testing.T) { t.Parallel() @@ -280,7 +309,7 @@ func TestUnexpectedEndOfDemo(t *testing.T) { p := demoinfocs.NewParser(f) err := p.ParseToEnd() - assert.Equal(t, demoinfocs.ErrUnexpectedEndOfDemo, err, "parsing cancelled but error was not ErrUnexpectedEndOfDemo") + assert.ErrorIs(t, err, demoinfocs.ErrUnexpectedEndOfDemo, "parsing cancelled but error was not ErrUnexpectedEndOfDemo") } func TestBadNetMessageDecryptionKey(t *testing.T) { @@ -456,26 +485,20 @@ func runConcurrently(runner func()) { wg.Wait() } -func TestDemoSet(t *testing.T) { - t.Parallel() - - if testing.Short() { - t.Skip("skipping test due to -short flag") - } - - dems, err := ioutil.ReadDir(demSetPath) - assert.NoError(t, err, "failed to list directory %q", demSetPath) +func testDemoSet(t *testing.T, path string) { + dems, err := os.ReadDir(path) + assert.NoError(t, err, "failed to list directory %q", path) for _, d := range dems { name := d.Name() if strings.HasSuffix(name, ".dem") { - t.Logf("Parsing '%s/%s'\n", demSetPath, name) + t.Logf("Parsing '%s/%s'\n", path, name) func() { - f := openFile(t, fmt.Sprintf("%s/%s", demSetPath, name)) + f := openFile(t, fmt.Sprintf("%s/%s", path, name)) defer mustClose(t, f) defer func() { - assert.Nil(t, recover(), "parsing of '%s/%s' panicked", demSetPath, name) + assert.Nil(t, recover(), "parsing of '%s/%s' panicked", path, name) }() p := demoinfocs.NewParser(f) @@ -506,12 +529,32 @@ func TestDemoSet(t *testing.T) { }) err = p.ParseToEnd() - assert.Nil(t, err, "parsing of '%s/%s' failed", demSetPath, name) + assert.NoError(t, err, "parsing of '%s/%s' failed", demSetPath, name) }() } } } +func TestDemoSet(t *testing.T) { + if testing.Short() { + t.Skip("skipping test due to -short flag") + } + + t.Parallel() + + testDemoSet(t, demSetPath) +} + +func TestDemoSetS2(t *testing.T) { + if testing.Short() { + t.Skip("skipping test due to -short flag") + } + + t.Parallel() + + testDemoSet(t, demSetPathS2) +} + func BenchmarkDemoInfoCs(b *testing.B) { for i := 0; i < b.N; i++ { parseDefaultDemo(b) diff --git a/pkg/demoinfocs/events/events.go b/pkg/demoinfocs/events/events.go index dc5f5b10..af8114c1 100644 --- a/pkg/demoinfocs/events/events.go +++ b/pkg/demoinfocs/events/events.go @@ -10,8 +10,8 @@ import ( "github.com/golang/geo/r3" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) // FrameDone signals that a demo-frame has been processed. @@ -45,6 +45,7 @@ type RoundEndReason byte // RoundEndReason constants give information about why a round ended (Bomb defused, exploded etc.). const ( + RoundEndReasonStillInProgress RoundEndReason = 0 RoundEndReasonTargetBombed RoundEndReason = 1 RoundEndReasonVIPEscaped RoundEndReason = 2 RoundEndReasonVIPKilled RoundEndReason = 3 @@ -63,6 +64,8 @@ const ( RoundEndReasonGameStart RoundEndReason = 16 RoundEndReasonTerroristsSurrender RoundEndReason = 17 RoundEndReasonCTSurrender RoundEndReason = 18 + RoundEndReasonTerroristsPlanted RoundEndReason = 19 + RoundEndReasonCTsReachedHostage RoundEndReason = 20 ) // RoundEnd signals that a round just finished. @@ -229,6 +232,7 @@ type SmokeExpired struct { // FireGrenadeStart signals the start of a molly/incendiary. // GrenadeType will always be EqIncendiary as it's not networked whether it's an incendiary or molotov. // Thrower will always be nil as this isn't networked. +// May not be triggered with Source 2 demos and contain missing/incorrect data, it's recommended to use InfernoStart instead. type FireGrenadeStart struct { GrenadeEvent } @@ -236,6 +240,7 @@ type FireGrenadeStart struct { // FireGrenadeExpired signals that all fires of a molly/incendiary have extinguished. // GrenadeType will always be EqIncendiary as it's not networked whether it's an incendiary or molotov. // Thrower will always be nil as this isn't networked. +// May not be triggered with Source 2 demos and contain missing/incorrect data, it's recommended to use InfernoExpired instead. type FireGrenadeExpired struct { GrenadeEvent } @@ -549,6 +554,8 @@ const ( // May occur because the decryption key used is incorrect. // See ParserConfig.NetMessageDecryptionKey WarnTypeCantReadEncryptedNetMessage + + WarnTypeUnknownEquipmentIndex ) // ParserWarn signals that a non-fatal problem occurred during parsing. @@ -640,3 +647,9 @@ type PlayerInfo struct { Index int Info common.PlayerInfo } + +// OvertimeNumberChanged signals that the number of overtime periods has changed. +type OvertimeNumberChanged struct { + OldCount int + NewCount int +} diff --git a/pkg/demoinfocs/events/events_test.go b/pkg/demoinfocs/events/events_test.go index bed84516..a5552067 100644 --- a/pkg/demoinfocs/events/events_test.go +++ b/pkg/demoinfocs/events/events_test.go @@ -6,8 +6,8 @@ import ( "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) func TestPlayerFlashed_FlashDuration(t *testing.T) { @@ -56,12 +56,21 @@ func TestKill_IsWallBang(t *testing.T) { } type demoInfoProviderMock struct { + isSource2 bool +} + +func (p demoInfoProviderMock) FindEntityByHandle(handle uint64) st.Entity { + panic("implement me") } func (p demoInfoProviderMock) IngameTick() int { return 0 } +func (p demoInfoProviderMock) IsSource2() bool { + return p.isSource2 +} + func (p demoInfoProviderMock) TickRate() float64 { return 128 } @@ -70,6 +79,10 @@ func (p demoInfoProviderMock) FindPlayerByHandle(int) *common.Player { return nil } +func (p demoInfoProviderMock) FindPlayerByPawnHandle(uint64) *common.Player { + return nil +} + func (p demoInfoProviderMock) PlayerResourceEntity() st.Entity { return nil } diff --git a/pkg/demoinfocs/examples_test.go b/pkg/demoinfocs/examples_test.go index cb282c37..a6c18bac 100644 --- a/pkg/demoinfocs/examples_test.go +++ b/pkg/demoinfocs/examples_test.go @@ -6,8 +6,8 @@ import ( "os" "testing" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" ) /* diff --git a/pkg/demoinfocs/fake/game_rules.go b/pkg/demoinfocs/fake/game_rules.go index d5aadd35..c943b479 100644 --- a/pkg/demoinfocs/fake/game_rules.go +++ b/pkg/demoinfocs/fake/game_rules.go @@ -5,8 +5,8 @@ import ( "github.com/stretchr/testify/mock" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) var _ demoinfocs.GameRules = new(GameRules) diff --git a/pkg/demoinfocs/fake/game_state.go b/pkg/demoinfocs/fake/game_state.go index 03b51604..965668dd 100644 --- a/pkg/demoinfocs/fake/game_state.go +++ b/pkg/demoinfocs/fake/game_state.go @@ -3,9 +3,9 @@ package fake import ( "github.com/stretchr/testify/mock" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) var _ demoinfocs.GameState = new(GameState) @@ -15,6 +15,11 @@ type GameState struct { mock.Mock } +// OvertimeCount is a mock-implementation of GameState.OvertimeCount(). +func (gs *GameState) OvertimeCount() int { + return gs.Called().Int(0) +} + // IngameTick is a mock-implementation of GameState.IngameTick(). func (gs *GameState) IngameTick() int { return gs.Called().Int(0) @@ -90,7 +95,7 @@ func (gs *GameState) Rules() demoinfocs.GameRules { return gs.Called().Get(0).(demoinfocs.GameRules) } -// PlayerResourceEntity is a mock-implementation of GameState.PlayerResorceEntity(). +// PlayerResourceEntity is a mock-implementation of GameState.PlayerResourceEntity(). func (gs *GameState) PlayerResourceEntity() st.Entity { return gs.Called().Get(0).(st.Entity) } @@ -99,3 +104,8 @@ func (gs *GameState) PlayerResourceEntity() st.Entity { func (gs *GameState) Hostages() []*common.Hostage { return gs.Called().Get(0).([]*common.Hostage) } + +// EntityByHandle is a mock-implementation of GameState.EntityByHandle(). +func (gs *GameState) EntityByHandle(handle uint64) st.Entity { + return gs.Called(handle).Get(0).(st.Entity) +} diff --git a/pkg/demoinfocs/fake/parser.go b/pkg/demoinfocs/fake/parser.go index 2ba9bea2..5b689c36 100644 --- a/pkg/demoinfocs/fake/parser.go +++ b/pkg/demoinfocs/fake/parser.go @@ -9,9 +9,9 @@ import ( mock "github.com/stretchr/testify/mock" "golang.org/x/exp/constraints" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) var _ demoinfocs.Parser = new(Parser) diff --git a/pkg/demoinfocs/fake/parser_test.go b/pkg/demoinfocs/fake/parser_test.go index b1f09dfc..897f8c3c 100644 --- a/pkg/demoinfocs/fake/parser_test.go +++ b/pkg/demoinfocs/fake/parser_test.go @@ -7,10 +7,10 @@ import ( assert "github.com/stretchr/testify/assert" "google.golang.org/protobuf/proto" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - fake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/fake" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + fake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/fake" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) func TestParseHeader(t *testing.T) { diff --git a/pkg/demoinfocs/fake/participants.go b/pkg/demoinfocs/fake/participants.go index c9e24aef..defa874a 100644 --- a/pkg/demoinfocs/fake/participants.go +++ b/pkg/demoinfocs/fake/participants.go @@ -3,8 +3,8 @@ package fake import ( "github.com/stretchr/testify/mock" - demoinfocs "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" + demoinfocs "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" ) var _ demoinfocs.Participants = new(Participants) @@ -54,6 +54,16 @@ func (ptcp *Participants) FindByHandle(handle int) *common.Player { return ptcp.Called().Get(0).(*common.Player) } +// FindByHandle64 is a mock-implementation of Participants.FindByHandle64(). +func (ptcp *Participants) FindByHandle64(handle uint64) *common.Player { + return ptcp.Called().Get(0).(*common.Player) +} + +// FindByPawnHandle is a mock-implementation of Participants.FindByPawnHandle(). +func (ptcp *Participants) FindByPawnHandle(handle uint64) *common.Player { + return ptcp.Called().Get(0).(*common.Player) +} + // SpottersOf is a mock-implementation of Participants.SpottersOf(). func (ptcp *Participants) SpottersOf(spotted *common.Player) []*common.Player { return ptcp.Called().Get(0).([]*common.Player) diff --git a/pkg/demoinfocs/game_events.go b/pkg/demoinfocs/game_events.go index 677652c8..e2a675f7 100644 --- a/pkg/demoinfocs/game_events.go +++ b/pkg/demoinfocs/game_events.go @@ -7,9 +7,10 @@ import ( "github.com/markus-wa/go-unassert" "github.com/pkg/errors" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" ) func (p *parser) handleGameEventList(gel *msg.CSVCMsg_GameEventList) { @@ -19,6 +20,31 @@ func (p *parser) handleGameEventList(gel *msg.CSVCMsg_GameEventList) { } } +func (p *parser) handleGameEventListS2(gel *msgs2.CMsgSource1LegacyGameEventList) { + s1desc := make([]*msg.CSVCMsg_GameEventListDescriptorT, 0, len(gel.GetDescriptors())) + + for _, d := range gel.GetDescriptors() { + s1keys := make([]*msg.CSVCMsg_GameEventListKeyT, 0, len(d.Keys)) + + for _, k := range d.Keys { + s1keys = append(s1keys, &msg.CSVCMsg_GameEventListKeyT{ + Type: k.Type, + Name: k.Name, + }) + } + + s1desc = append(s1desc, &msg.CSVCMsg_GameEventListDescriptorT{ + Eventid: d.Eventid, + Name: d.Name, + Keys: s1keys, + }) + } + + p.handleGameEventList(&msg.CSVCMsg_GameEventList{ + Descriptors: s1desc, + }) +} + func (p *parser) handleGameEvent(ge *msg.CSVCMsg_GameEvent) { if p.gameEventDescs == nil { p.eventDispatcher.Dispatch(events.ParserWarn{ @@ -52,6 +78,30 @@ func (p *parser) handleGameEvent(ge *msg.CSVCMsg_GameEvent) { }) } +func (p *parser) handleGameEventS2(ge *msgs2.CMsgSource1LegacyGameEvent) { + keys := make([]*msg.CSVCMsg_GameEventKeyT, 0, len(ge.Keys)) + + for _, k := range ge.Keys { + keys = append(keys, &msg.CSVCMsg_GameEventKeyT{ + Type: k.Type, + ValString: k.ValString, + ValFloat: k.ValFloat, + ValLong: k.ValLong, + ValShort: k.ValShort, + ValByte: k.ValByte, + ValBool: k.ValBool, + ValUint64: k.ValUint64, + }) + } + + p.handleGameEvent(&msg.CSVCMsg_GameEvent{ + EventName: ge.EventName, + Eventid: ge.Eventid, + Keys: keys, + Passthrough: ge.Passthrough, + }) +} + type gameEventHandler struct { parser *parser gameEventNameToHandler map[string]gameEventHandlerFunc @@ -176,6 +226,7 @@ func newGameEventHandler(parser *parser, ignoreBombsiteIndexNotFound bool) gameE "player_given_c4": nil, // Dunno, only present in locally recorded (POV) demos "player_ping": nil, // When a player uses the "ping system" added with the operation Broken Fang, only present in locally recorded (POV) demos "player_ping_stop": nil, // When a player's ping expired, only present in locally recorded (POV) demos + "player_sound": nil, // When a player makes a sound. TODO: implement player_sound // Player changed team. Delayed for two reasons // - team IDs of other players changing teams in the same tick might not have changed yet @@ -208,12 +259,43 @@ func newGameEventHandler(parser *parser, ignoreBombsiteIndexNotFound bool) gameE "weapon_reload": geh.weaponReload, // Weapon reloaded "weapon_zoom": nil, // Zooming in "weapon_zoom_rifle": nil, // Dunno, only in locally recorded (POV) demo + "entity_killed": nil, + + // S2 + "hltv_versioninfo": nil, // HLTV version info } return geh } +func (geh gameEventHandler) clearGrenadeProjectiles() { + // Issue #42 + // Sometimes grenades & infernos aren't deleted / destroyed via entity-updates at the end of the round, + // so we need to do it here for those that weren't. + // + // We're not deleting them from entitites though as that's supposed to be as close to the actual demo data as possible. + // We're also not using Entity.Destroy() because it would - in some cases - be called twice on the same entity + // and it's supposed to be called when the demo actually says so (same case as with gameState.entities). + for _, proj := range geh.gameState().grenadeProjectiles { + geh.parser.nadeProjectileDestroyed(proj) + } + + for _, inf := range geh.gameState().infernos { + geh.parser.infernoExpired(inf) + } + + // Thrown grenades could not be deleted at the end of the round (if they are thrown at the very end, they never get destroyed) + geh.gameState().thrownGrenades = make(map[*common.Player][]*common.Equipment) + geh.gameState().flyingFlashbangs = make([]*FlyingFlashbang, 0) +} + func (geh gameEventHandler) roundStart(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + + geh.clearGrenadeProjectiles() + geh.dispatch(events.RoundStart{ TimeLimit: int(data["timelimit"].GetValLong()), FragLimit: int(data["fraglimit"].GetValLong()), @@ -234,6 +316,10 @@ func (geh gameEventHandler) roundAnnounceLastRoundHalf(map[string]*msg.CSVCMsg_G } func (geh gameEventHandler) roundEnd(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + winner := common.Team(data["winner"].GetValByte()) winnerState := geh.gameState().Team(winner) @@ -255,23 +341,11 @@ func (geh gameEventHandler) roundEnd(data map[string]*msg.CSVCMsg_GameEventKeyT) } func (geh gameEventHandler) roundOfficiallyEnded(map[string]*msg.CSVCMsg_GameEventKeyT) { - // Issue #42 - // Sometimes grenades & infernos aren't deleted / destroyed via entity-updates at the end of the round, - // so we need to do it here for those that weren't. - // - // We're not deleting them from entitites though as that's supposed to be as close to the actual demo data as possible. - // We're also not using Entity.Destroy() because it would - in some cases - be called twice on the same entity - // and it's supposed to be called when the demo actually says so (same case as with gameState.entities). - for _, proj := range geh.gameState().grenadeProjectiles { - geh.parser.nadeProjectileDestroyed(proj) - } - - for _, inf := range geh.gameState().infernos { - geh.parser.infernoExpired(inf) + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return } - // Thrown grenades could not be deleted at the end of the round (if they are thrown at the very end, they never get destroyed) - geh.gameState().thrownGrenades = make(map[*common.Player][]*common.Equipment) + geh.clearGrenadeProjectiles() geh.dispatch(events.RoundEndOfficial{}) } @@ -316,6 +390,10 @@ func (geh gameEventHandler) playerJump(data map[string]*msg.CSVCMsg_GameEventKey } func (geh gameEventHandler) weaponFire(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + shooter := geh.playerByUserID32(data["userid"].GetValShort()) wepType := common.MapEquipment(data["weapon"].GetValString()) @@ -413,6 +491,10 @@ func (geh gameEventHandler) playerFallDamage(data map[string]*msg.CSVCMsg_GameEv } func (geh gameEventHandler) playerBlind(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + attacker := geh.gameState().lastFlash.player projectile := geh.gameState().lastFlash.projectileByPlayer[attacker] unassert.NotNilf(projectile, "PlayerFlashed.Projectile should never be nil") @@ -434,6 +516,10 @@ func (geh gameEventHandler) playerBlind(data map[string]*msg.CSVCMsg_GameEventKe } func (geh gameEventHandler) flashBangDetonate(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + nadeEvent := geh.nadeEvent(data, common.EqFlash) geh.gameState().lastFlash.player = nadeEvent.Thrower @@ -525,12 +611,14 @@ func (geh gameEventHandler) HostageRescuedAll(map[string]*msg.CSVCMsg_GameEventK func (geh gameEventHandler) playerConnect(data map[string]*msg.CSVCMsg_GameEventKeyT) { pl := common.PlayerInfo{ - UserID: int(data["userid"].GetValShort()), - Name: data["name"].GetValString(), - GUID: data["networkid"].GetValString(), + UserID: int(data["userid"].GetValShort()), + Name: data["name"].GetValString(), + GUID: data["networkid"].GetValString(), + XUID: data["xuid"].GetValUint64(), + IsFakePlayer: data["bot"].GetValBool(), } - if pl.GUID != "" { + if pl.GUID != "" && pl.XUID == 0 { var err error pl.XUID, err = guidToSteamID64(pl.GUID) @@ -592,6 +680,10 @@ func (geh gameEventHandler) playerTeam(data map[string]*msg.CSVCMsg_GameEventKey } func (geh gameEventHandler) bombBeginPlant(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + bombEvent, err := geh.bombEvent(data) if err != nil { geh.parser.setError(err) @@ -605,6 +697,10 @@ func (geh gameEventHandler) bombBeginPlant(data map[string]*msg.CSVCMsg_GameEven } func (geh gameEventHandler) bombPlanted(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + bombEvent, err := geh.bombEvent(data) if err != nil { geh.parser.setError(err) @@ -622,6 +718,10 @@ func (geh gameEventHandler) bombPlanted(data map[string]*msg.CSVCMsg_GameEventKe } func (geh gameEventHandler) bombDefused(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + bombEvent, err := geh.bombEvent(data) if err != nil { geh.parser.setError(err) @@ -633,6 +733,10 @@ func (geh gameEventHandler) bombDefused(data map[string]*msg.CSVCMsg_GameEventKe } func (geh gameEventHandler) bombExploded(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + bombEvent, err := geh.bombEvent(data) if err != nil { geh.parser.setError(err) @@ -697,6 +801,10 @@ func (geh gameEventHandler) bombEvent(data map[string]*msg.CSVCMsg_GameEventKeyT } func (geh gameEventHandler) bombBeginDefuse(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + geh.gameState().currentDefuser = geh.playerByUserID32(data["userid"].GetValShort()) geh.dispatch(events.BombDefuseStart{ @@ -739,6 +847,10 @@ func (geh gameEventHandler) itemEvent(data map[string]*msg.CSVCMsg_GameEventKeyT } func (geh gameEventHandler) bombDropped(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + player := geh.playerByUserID32(data["userid"].GetValShort()) entityID := int(data["entityid"].GetValShort()) @@ -749,6 +861,10 @@ func (geh gameEventHandler) bombDropped(data map[string]*msg.CSVCMsg_GameEventKe } func (geh gameEventHandler) bombPickup(data map[string]*msg.CSVCMsg_GameEventKeyT) { + if geh.parser.isSource2() && !geh.parser.disableMimicSource1GameEvents { + return + } + geh.dispatch(events.BombPickup{ Player: geh.playerByUserID32(data["userid"].GetValShort()), }) @@ -893,3 +1009,81 @@ func guidToSteamID64(guid string) (uint64, error) { return common.ConvertSteamID32To64(steamID32), nil } + +func (p *parser) dispatchMatchStartedEventIfNecessary() { + if p.gameState.lastMatchStartedChangedEvent != nil { + p.gameState.isMatchStarted = p.gameState.lastMatchStartedChangedEvent.NewIsStarted + p.gameEventHandler.dispatch(*p.gameState.lastMatchStartedChangedEvent) + p.gameState.lastMatchStartedChangedEvent = nil + } +} + +// Dispatch round progress events in the following order: +// 1. MatchStartedChanged +// 2. RoundStart +// 3. RoundEnd +// 4. MatchStartedChanged +func (p *parser) processRoundProgressEvents() { + if p.gameState.lastRoundStartEvent != nil { + p.dispatchMatchStartedEventIfNecessary() + p.gameEventHandler.dispatch(*p.gameState.lastRoundStartEvent) + p.gameState.lastRoundStartEvent = nil + } + + if p.gameState.lastRoundEndEvent != nil { + p.gameEventHandler.dispatch(*p.gameState.lastRoundEndEvent) + p.gameState.lastRoundEndEvent = nil + } + + p.dispatchMatchStartedEventIfNecessary() +} + +func (p *parser) processFlyingFlashbangs() { + if len(p.gameState.flyingFlashbangs) == 0 { + return + } + + flashbang := p.gameState.flyingFlashbangs[0] + if len(flashbang.flashedEntityIDs) == 0 { + // Flashbang exploded and didn't flash any players, remove it from the queue + if flashbang.explodedFrame > 0 && flashbang.explodedFrame < p.currentFrame { + p.gameState.flyingFlashbangs = p.gameState.flyingFlashbangs[1:] + } + return + } + + for _, entityID := range flashbang.flashedEntityIDs { + player := p.gameState.Participants().ByEntityID()[entityID] + if player == nil { + continue + } + + p.gameEventHandler.dispatch(events.PlayerFlashed{ + Player: player, + Attacker: flashbang.projectile.Thrower, + Projectile: flashbang.projectile, + }) + } + + p.gameState.flyingFlashbangs = p.gameState.flyingFlashbangs[1:] +} + +// Do some processing to dispatch game events at the end of the frame in correct order. +// This is necessary because some prop updates are not in a order that we would expect, e.g.: +// - The player prop m_flFlashDuration is updated after the game event player_blind have been parsed (used for CS:GO only) +// - The player prop m_flFlashDuration may be updated after *or* before the flashbang explosion event +// - Bomb props used to detect bomb events are updated after the prop m_eRoundWinReason used to detect round end events +// +// This makes sure game events are dispatched in a more expected order. +func (p *parser) processFrameGameEvents() { + if p.isSource2() && !p.disableMimicSource1GameEvents { + p.processFlyingFlashbangs() + p.processRoundProgressEvents() + } + + for _, eventHandler := range p.delayedEventHandlers { + eventHandler() + } + + p.delayedEventHandlers = p.delayedEventHandlers[:0] +} diff --git a/pkg/demoinfocs/game_events_test.go b/pkg/demoinfocs/game_events_test.go index 8c527c44..e7bed056 100644 --- a/pkg/demoinfocs/game_events_test.go +++ b/pkg/demoinfocs/game_events_test.go @@ -7,16 +7,19 @@ import ( "github.com/stretchr/testify/assert" "google.golang.org/protobuf/proto" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) // See #90 func TestRoundEnd_LoserState_Score(t *testing.T) { p := NewParser(rand.Reader).(*parser) + p.header = &common.DemoHeader{ + Filestamp: "HL2DEMO", + } p.gameState.tState.Entity = stfake.NewEntityWithProperty("m_scoreTotal", st.PropertyValue{IntVal: 1}) p.gameState.ctState.Entity = stfake.NewEntityWithProperty("m_scoreTotal", st.PropertyValue{IntVal: 2}) diff --git a/pkg/demoinfocs/game_rules_interface.go b/pkg/demoinfocs/game_rules_interface.go index 702ca374..61769da0 100644 --- a/pkg/demoinfocs/game_rules_interface.go +++ b/pkg/demoinfocs/game_rules_interface.go @@ -5,7 +5,7 @@ package demoinfocs import ( "time" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // GameRules is an auto-generated interface for gameRules. diff --git a/pkg/demoinfocs/game_state.go b/pkg/demoinfocs/game_state.go index a650e8ff..61c232c9 100644 --- a/pkg/demoinfocs/game_state.go +++ b/pkg/demoinfocs/game_state.go @@ -5,9 +5,10 @@ import ( "strconv" "time" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/constants" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) //go:generate ifacemaker -f game_state.go -s gameState -i GameState -p demoinfocs -D -y "GameState is an auto-generated interface for gameState." -c "DO NOT EDIT: Auto generated" -o game_state_interface.go @@ -16,29 +17,56 @@ import ( // gameState contains all game-state relevant information. type gameState struct { - ingameTick int - tState common.TeamState - ctState common.TeamState - playersByUserID map[int]*common.Player // Maps user-IDs to players - playersByEntityID map[int]*common.Player // Maps entity-IDs to players - playersBySteamID32 map[uint32]*common.Player // Maps 32-bit-steam-IDs to players - playerResourceEntity st.Entity // CCSPlayerResource entity instance, contains scoreboard info and more - grenadeProjectiles map[int]*common.GrenadeProjectile // Maps entity-IDs to active nade-projectiles. That's grenades that have been thrown, but have not yet detonated. - infernos map[int]*common.Inferno // Maps entity-IDs to active infernos. - weapons map[int]*common.Equipment // Maps entity IDs to weapons. Used to remember what a weapon is (p250 / cz etc.) - hostages map[int]*common.Hostage // Maps entity-IDs to hostages. - entities map[int]st.Entity // Maps entity IDs to entities - bomb common.Bomb - totalRoundsPlayed int - gamePhase common.GamePhase - isWarmupPeriod bool - isMatchStarted bool - lastFlash lastFlash // Information about the last flash that exploded, used to find the attacker and projectile for player_blind events - currentDefuser *common.Player // Player currently defusing the bomb, if any - currentPlanter *common.Player // Player currently planting the bomb, if any - thrownGrenades map[*common.Player][]*common.Equipment // Information about every player's thrown grenades (from the moment they are thrown to the moment their effect is ended) - rules gameRules - demoInfo demoInfoProvider + ingameTick int + tState common.TeamState + ctState common.TeamState + playersByUserID map[int]*common.Player // Maps user-IDs to players + playersByEntityID map[int]*common.Player // Maps entity-IDs to players + playersBySteamID32 map[uint32]*common.Player // Maps 32-bit-steam-IDs to players + playerResourceEntity st.Entity // CCSPlayerResource entity instance, contains scoreboard info and more + grenadeProjectiles map[int]*common.GrenadeProjectile // Maps entity-IDs to active nade-projectiles. That's grenades that have been thrown, but have not yet detonated. + infernos map[int]*common.Inferno // Maps entity-IDs to active infernos. + weapons map[int]*common.Equipment // Maps entity IDs to weapons. Used to remember what a weapon is (p250 / cz etc.) + hostages map[int]*common.Hostage // Maps entity-IDs to hostages. + entities map[int]st.Entity // Maps entity IDs to entities + bomb common.Bomb + totalRoundsPlayed int + gamePhase common.GamePhase + isWarmupPeriod bool + isMatchStarted bool + overtimeCount int + lastFlash lastFlash // Information about the last flash that exploded, used to find the attacker and projectile for player_blind events + currentDefuser *common.Player // Player currently defusing the bomb, if any + currentPlanter *common.Player // Player currently planting the bomb, if any + thrownGrenades map[*common.Player][]*common.Equipment // Information about every player's thrown grenades (from the moment they are thrown to the moment their effect is ended) + rules gameRules + demoInfo demoInfoProvider + lastRoundStartEvent *events.RoundStart // Used to dispatch this event after a possible MatchStartedChanged event + lastRoundEndEvent *events.RoundEnd // Used to dispatch this event before a possible MatchStartedChanged event + lastMatchStartedChangedEvent *events.MatchStartedChanged // Used to dispatch this event before a possible RoundStart event and after a possible RoundEnd event + // Used to mimic missing player_blind events for CS2 demos. + // + // When a player throws a flashbang the following happens: + // 1. A player throws a flashbang + // 2. A projectile entity is created + // 3. The projectile entity is destroyed a few seconds later which means the flashbang exploded + // 4. The prop m_flFlashDuration is updated for all players that are flashed + // + // The problem is that the order of the steps 3 and 4 is not guaranteed. + // So it's not reliable to dispatch player-flashed events either when the projectile is destroyed or when the + // m_flFlashDuration prop is updated. + // + // As a solution, we keep track of flashbang projectiles created and all m_flFlashDuration prop updates related + // to this projectile. As all m_flFlashDuration prop updates occur during the same frame, we batch dispatch + // player-flashed events at the end of the frame if there are any. + // This slice acts like a FIFO queue, the first projectile inserted is the first one to be removed when it exploded. + flyingFlashbangs []*FlyingFlashbang +} + +type FlyingFlashbang struct { + projectile *common.GrenadeProjectile + flashedEntityIDs []int + explodedFrame int } type lastFlash struct { @@ -100,6 +128,7 @@ func (gs gameState) Participants() Participants { return participants{ playersByEntityID: gs.playersByEntityID, playersByUserID: gs.playersByUserID, + getIsSource2: gs.demoInfo.parser.isSource2, } } @@ -168,12 +197,39 @@ func (gs gameState) IsMatchStarted() bool { return gs.isMatchStarted } +// OvertimeCount returns the number of overtime according to CCSGameRulesProxy. +func (gs gameState) OvertimeCount() int { + return gs.overtimeCount +} + // PlayerResourceEntity returns the game's CCSPlayerResource entity. // Contains scoreboard information and more. -func (gs *gameState) PlayerResourceEntity() st.Entity { +func (gs gameState) PlayerResourceEntity() st.Entity { return gs.playerResourceEntity } +func entityIDFromHandle(handle uint64, isS2 bool) int { + if isS2 { + if handle == constants.InvalidEntityHandleSource2 { + return -1 + } + + return int(handle & constants.EntityHandleIndexMaskSource2) + } + + if handle == constants.InvalidEntityHandle { + return -1 + } + + return int(handle & constants.EntityHandleIndexMask) +} + +// EntityByHandle returns the entity corresponding to the given handle. +// Returns nil if the handle is invalid. +func (gs gameState) EntityByHandle(handle uint64) st.Entity { + return gs.entities[entityIDFromHandle(handle, gs.demoInfo.parser.isSource2())] +} + func newGameState(demoInfo demoInfoProvider) *gameState { gs := &gameState{ playersByEntityID: make(map[int]*common.Player), @@ -185,6 +241,7 @@ func newGameState(demoInfo demoInfoProvider) *gameState { hostages: make(map[int]*common.Hostage), entities: make(map[int]st.Entity), thrownGrenades: make(map[*common.Player][]*common.Equipment), + flyingFlashbangs: make([]*FlyingFlashbang, 0), lastFlash: lastFlash{ projectileByPlayer: make(map[*common.Player]*common.GrenadeProjectile), }, @@ -194,8 +251,8 @@ func newGameState(demoInfo demoInfoProvider) *gameState { demoInfo: demoInfo, } - gs.tState = common.NewTeamState(common.TeamTerrorists, gs.Participants().TeamMembers) - gs.ctState = common.NewTeamState(common.TeamCounterTerrorists, gs.Participants().TeamMembers) + gs.tState = common.NewTeamState(common.TeamTerrorists, gs.Participants().TeamMembers, gs.demoInfo) + gs.ctState = common.NewTeamState(common.TeamCounterTerrorists, gs.Participants().TeamMembers, gs.demoInfo) gs.tState.Opponent = &gs.ctState gs.ctState.Opponent = &gs.tState @@ -265,6 +322,7 @@ func (gr gameRules) Entity() st.Entity { type participants struct { playersByUserID map[int]*common.Player // Maps user-IDs to players playersByEntityID map[int]*common.Player // Maps entity-IDs to players + getIsSource2 func() bool } // ByUserID returns all currently connected players in a map where the key is the user-ID. @@ -357,18 +415,37 @@ func (ptcp participants) TeamMembers(team common.Team) []*common.Player { return res } +// FindByPawnHandle attempts to find a player by his pawn entity-handle. +// This works only for Source 2 demos. +// +// Returns nil if not found. +func (ptcp participants) FindByPawnHandle(handle uint64) *common.Player { + entityID := entityIDFromHandle(handle, ptcp.getIsSource2()) + for _, player := range ptcp.All() { + if player.PawnEntityID == entityID { + return player + } + } + + return nil +} + +// FindByHandle64 attempts to find a player by his entity-handle. +// The entity-handle is often used in entity-properties when referencing other entities such as a weapon's owner. +// +// Returns nil if not found or if handle == invalidEntityHandle (used when referencing no entity). +func (ptcp participants) FindByHandle64(handle uint64) *common.Player { + return ptcp.playersByEntityID[entityIDFromHandle(handle, ptcp.getIsSource2())] +} + // FindByHandle attempts to find a player by his entity-handle. // The entity-handle is often used in entity-properties when referencing other entities such as a weapon's owner. // // Returns nil if not found or if handle == invalidEntityHandle (used when referencing no entity). +// +// Deprecated: Use FindByHandle64 instead. func (ptcp participants) FindByHandle(handle int) *common.Player { - if handle == constants.InvalidEntityHandle { - return nil - } - - entityID := handle & constants.EntityHandleIndexMask - - return ptcp.playersByEntityID[entityID] + return ptcp.FindByHandle64(uint64(handle)) } func (ptcp participants) initializeSliceFromByUserID() ([]*common.Player, map[int]*common.Player) { diff --git a/pkg/demoinfocs/game_state_interface.go b/pkg/demoinfocs/game_state_interface.go index ba54840f..14c9ff9a 100644 --- a/pkg/demoinfocs/game_state_interface.go +++ b/pkg/demoinfocs/game_state_interface.go @@ -3,8 +3,8 @@ package demoinfocs import ( - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // GameState is an auto-generated interface for gameState. @@ -57,7 +57,12 @@ type GameState interface { IsWarmupPeriod() bool // IsMatchStarted returns whether the match has started according to CCSGameRulesProxy. IsMatchStarted() bool + // OvertimeCount returns the number of overtime according to CCSGameRulesProxy. + OvertimeCount() int // PlayerResourceEntity returns the game's CCSPlayerResource entity. // Contains scoreboard information and more. PlayerResourceEntity() st.Entity + // EntityByHandle returns the entity corresponding to the given handle. + // Returns nil if the handle is invalid. + EntityByHandle(handle uint64) st.Entity } diff --git a/pkg/demoinfocs/game_state_test.go b/pkg/demoinfocs/game_state_test.go index 3187b2f5..fe77fdd7 100644 --- a/pkg/demoinfocs/game_state_test.go +++ b/pkg/demoinfocs/game_state_test.go @@ -6,10 +6,10 @@ import ( "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/constants" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" - stfake "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables/fake" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + stfake "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables/fake" ) func TestNewGameState(t *testing.T) { @@ -49,8 +49,8 @@ func TestGameState_Participants(t *testing.T) { allByUserID := ptcp.AllByUserID() // Should update ptcp as well since it uses the same map - gs.playersByEntityID[0] = newPlayer() - gs.playersByUserID[0] = newPlayer() + gs.playersByEntityID[0] = newPlayerS1() + gs.playersByUserID[0] = newPlayerS1() assert.Equal(t, gs.playersByEntityID, ptcp.ByEntityID()) assert.Equal(t, gs.playersByUserID, ptcp.ByUserID()) @@ -74,7 +74,7 @@ func TestGameState_Participants(t *testing.T) { } func TestParticipants_All(t *testing.T) { - pl := newPlayer() + pl := newPlayerS1() ptcps := participants{ playersByUserID: map[int]*common.Player{0: pl}, } @@ -85,15 +85,15 @@ func TestParticipants_All(t *testing.T) { } func TestParticipants_Playing(t *testing.T) { - terrorist := newPlayer() + terrorist := newPlayerS1() terrorist.Team = common.TeamTerrorists - ct := newPlayer() + ct := newPlayerS1() ct.Team = common.TeamCounterTerrorists - unassigned := newPlayer() + unassigned := newPlayerS1() unassigned.Team = common.TeamUnassigned - spectator := newPlayer() + spectator := newPlayerS1() spectator.Team = common.TeamSpectators - def := newPlayer() + def := newPlayerS1() ptcps := participants{ playersByUserID: map[int]*common.Player{ @@ -112,15 +112,15 @@ func TestParticipants_Playing(t *testing.T) { } func TestParticipants_TeamMembers(t *testing.T) { - terrorist := newPlayer() + terrorist := newPlayerS1() terrorist.Team = common.TeamTerrorists - ct := newPlayer() + ct := newPlayerS1() ct.Team = common.TeamCounterTerrorists - unassigned := newPlayer() + unassigned := newPlayerS1() unassigned.Team = common.TeamUnassigned - spectator := newPlayer() + spectator := newPlayerS1() spectator.Team = common.TeamSpectators - def := newPlayer() + def := newPlayerS1() ptcps := participants{ playersByUserID: map[int]*common.Player{ @@ -138,13 +138,16 @@ func TestParticipants_TeamMembers(t *testing.T) { } func TestParticipants_FindByHandle(t *testing.T) { - pl := newPlayer() + pl := newPlayerS1() pl.Team = common.TeamTerrorists ptcps := participants{ playersByEntityID: map[int]*common.Player{ 3000 & constants.EntityHandleIndexMask: pl, }, + getIsSource2: func() bool { + return false + }, } found := ptcps.FindByHandle(3000) @@ -153,12 +156,15 @@ func TestParticipants_FindByHandle(t *testing.T) { } func TestParticipants_FindByHandle_InvalidEntityHandle(t *testing.T) { - pl := newPlayer() + pl := newPlayerS1() pl.Team = common.TeamTerrorists ptcps := participants{ playersByEntityID: map[int]*common.Player{ constants.InvalidEntityHandle & constants.EntityHandleIndexMask: pl, }, + getIsSource2: func() bool { + return false + }, } found := ptcps.FindByHandle(constants.InvalidEntityHandle) @@ -167,7 +173,7 @@ func TestParticipants_FindByHandle_InvalidEntityHandle(t *testing.T) { } func TestParticipants_Connected_SuppressNoEntity(t *testing.T) { - pl := newPlayer() + pl := newPlayerS1() pl2 := common.NewPlayer(nil) pl2.IsConnected = true @@ -184,8 +190,8 @@ func TestParticipants_Connected_SuppressNoEntity(t *testing.T) { } func TestParticipants_Connected_SuppressNotConnected(t *testing.T) { - pl := newPlayer() - pl2 := newPlayer() + pl := newPlayerS1() + pl2 := newPlayerS1() pl2.IsConnected = false ptcps := participants{ @@ -201,14 +207,14 @@ func TestParticipants_Connected_SuppressNotConnected(t *testing.T) { } func TestParticipants_SpottersOf(t *testing.T) { - spotter1 := newPlayer() + spotter1 := newPlayerS1() spotter1.EntityID = 1 - spotter2 := newPlayer() + spotter2 := newPlayerS1() spotter2.EntityID = 35 - nonSpotter := newPlayer() + nonSpotter := newPlayerS1() nonSpotter.EntityID = 5 - spotted := newPlayer() + spotted := newPlayerS1() entity := new(stfake.Entity) entity.On("ID").Return(3) prop0 := new(stfake.Property) @@ -234,9 +240,9 @@ func TestParticipants_SpottersOf(t *testing.T) { } func TestParticipants_SpottedBy(t *testing.T) { - spotted1 := newPlayer() + spotted1 := newPlayerS1() spotted1.EntityID = 2 - spotted2 := newPlayer() + spotted2 := newPlayerS1() spotted2.EntityID = 35 prop0 := new(stfake.Property) @@ -249,9 +255,9 @@ func TestParticipants_SpottedBy(t *testing.T) { spotted2Entity.On("Property", "m_bSpottedByMask.000").Return(prop0) spotted2.Entity = spotted2Entity - unSpotted := newPlayer() + unSpotted := newPlayerS1() unSpotted.EntityID = 5 - spotter := newPlayer() + spotter := newPlayerS1() spotter.EntityID = 1 unSpottedProp := new(stfake.Property) @@ -347,13 +353,15 @@ func TestGameRules(t *testing.T) { assert.Equal(t, ErrFailedToRetrieveGameRule, err) } -func newPlayer() *common.Player { - pl := newPlayerWithEntityID(1) +func newPlayerS1() *common.Player { + pl := newPlayerWithEntityIDS1(1) return pl } -func newPlayerWithEntityID(id int) *common.Player { - pl := common.NewPlayer(nil) +func newPlayerWithEntityIDS1(id int) *common.Player { + pl := common.NewPlayer(demoInfoProvider{ + parser: &parser{header: &common.DemoHeader{Filestamp: "HL2DEMO"}}, + }) pl.Entity = fakePlayerEntity(id) pl.IsConnected = true diff --git a/pkg/demoinfocs/matchinfo.go b/pkg/demoinfocs/matchinfo.go index ce3c10b3..fbf88415 100644 --- a/pkg/demoinfocs/matchinfo.go +++ b/pkg/demoinfocs/matchinfo.go @@ -7,7 +7,7 @@ import ( "github.com/pkg/errors" "google.golang.org/protobuf/proto" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) // MatchInfoDecryptionKey extracts the net-message decryption key stored in `match730_*.dem.info`. diff --git a/pkg/demoinfocs/msg/cstrike15_gcmessages.pb.go b/pkg/demoinfocs/msg/cstrike15_gcmessages.pb.go index 0a22d93c..3326ffd6 100644 --- a/pkg/demoinfocs/msg/cstrike15_gcmessages.pb.go +++ b/pkg/demoinfocs/msg/cstrike15_gcmessages.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.3 +// protoc-gen-go v1.28.0 +// protoc v3.21.12 // source: cstrike15_gcmessages.proto package msg diff --git a/pkg/demoinfocs/msg/cstrike15_usermessages.pb.go b/pkg/demoinfocs/msg/cstrike15_usermessages.pb.go index d3eb9ba8..2346f96e 100644 --- a/pkg/demoinfocs/msg/cstrike15_usermessages.pb.go +++ b/pkg/demoinfocs/msg/cstrike15_usermessages.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.3 +// protoc-gen-go v1.28.0 +// protoc v3.21.12 // source: cstrike15_usermessages.proto package msg diff --git a/pkg/demoinfocs/msg/engine_gcmessages.pb.go b/pkg/demoinfocs/msg/engine_gcmessages.pb.go index fc163dbc..984a38bb 100644 --- a/pkg/demoinfocs/msg/engine_gcmessages.pb.go +++ b/pkg/demoinfocs/msg/engine_gcmessages.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.3 +// protoc-gen-go v1.28.0 +// protoc v3.21.12 // source: engine_gcmessages.proto package msg diff --git a/pkg/demoinfocs/msg/generate.sh b/pkg/demoinfocs/msg/generate.sh index 00131520..087a3eee 100755 --- a/pkg/demoinfocs/msg/generate.sh +++ b/pkg/demoinfocs/msg/generate.sh @@ -1,14 +1,18 @@ #!/bin/bash -protoc --proto_path=proto \ +protoc -Iproto \ --go_out=. \ - --go_opt=Mcstrike15_usermessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mcstrike15_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mengine_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mnetmessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Msteammessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mgcsdk_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mnetworkbasetypes.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=Mnetwork_connection.proto=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - --go_opt=module=github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg \ - cstrike15_gcmessages.proto cstrike15_usermessages.proto engine_gcmessages.proto netmessages.proto steammessages.proto + --go_opt=Mcstrike15_usermessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mcstrike15_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mengine_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mnetmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Msteammessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mgcsdk_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mnetworkbasetypes.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=Mnetwork_connection.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + --go_opt=module=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg \ + cstrike15_gcmessages.proto \ + cstrike15_usermessages.proto \ + engine_gcmessages.proto \ + netmessages.proto \ + steammessages.proto diff --git a/pkg/demoinfocs/msg/netmessages.pb.go b/pkg/demoinfocs/msg/netmessages.pb.go index c21dfbf1..032aa3d6 100644 --- a/pkg/demoinfocs/msg/netmessages.pb.go +++ b/pkg/demoinfocs/msg/netmessages.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.3 +// protoc-gen-go v1.28.0 +// protoc v3.21.12 // source: netmessages.proto package msg diff --git a/pkg/demoinfocs/msg/proto/steammessages.proto b/pkg/demoinfocs/msg/proto/steammessages.proto index c27c467e..03db3269 100644 --- a/pkg/demoinfocs/msg/proto/steammessages.proto +++ b/pkg/demoinfocs/msg/proto/steammessages.proto @@ -11,591 +11,3 @@ extend .google.protobuf.MessageOptions { optional int32 msgpool_soft_limit = 60000 [default = 32]; optional int32 msgpool_hard_limit = 60001 [default = 384]; } - -enum GCProtoBufMsgSrc { - GCProtoBufMsgSrc_Unspecified = 0; - GCProtoBufMsgSrc_FromSystem = 1; - GCProtoBufMsgSrc_FromSteamID = 2; - GCProtoBufMsgSrc_FromGC = 3; - GCProtoBufMsgSrc_ReplySystem = 4; -} - -message CMsgProtoBufHeader { - option (msgpool_soft_limit) = 256; - option (msgpool_hard_limit) = 1024; - - optional fixed64 client_steam_id = 1; - optional int32 client_session_id = 2; - optional uint32 source_app_id = 3; - optional fixed64 job_id_source = 10 [default = 18446744073709551615]; - optional fixed64 job_id_target = 11 [default = 18446744073709551615]; - optional string target_job_name = 12; - optional int32 eresult = 13 [default = 2]; - optional string error_message = 14; - optional uint32 ip = 15; - optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; - optional uint32 gc_dir_index_source = 201; -} - -message CMsgWebAPIKey { - optional uint32 status = 1 [default = 255]; - optional uint32 account_id = 2 [default = 0]; - optional uint32 publisher_group_id = 3 [default = 0]; - optional uint32 key_id = 4; - optional string domain = 5; -} - -message CMsgHttpRequest { - message RequestHeader { - optional string name = 1; - optional string value = 2; - } - - message QueryParam { - optional string name = 1; - optional bytes value = 2; - } - - optional uint32 request_method = 1; - optional string hostname = 2; - optional string url = 3; - repeated .CMsgHttpRequest.RequestHeader headers = 4; - repeated .CMsgHttpRequest.QueryParam get_params = 5; - repeated .CMsgHttpRequest.QueryParam post_params = 6; - optional bytes body = 7; - optional uint32 absolute_timeout = 8; -} - -message CMsgWebAPIRequest { - optional string UNUSED_job_name = 1; - optional string interface_name = 2; - optional string method_name = 3; - optional uint32 version = 4; - optional .CMsgWebAPIKey api_key = 5; - optional .CMsgHttpRequest request = 6; - optional uint32 routing_app_id = 7; -} - -message CMsgHttpResponse { - message ResponseHeader { - optional string name = 1; - optional string value = 2; - } - - optional uint32 status_code = 1; - repeated .CMsgHttpResponse.ResponseHeader headers = 2; - optional bytes body = 3; -} - -message CMsgAMFindAccounts { - optional uint32 search_type = 1; - optional string search_string = 2; -} - -message CMsgAMFindAccountsResponse { - repeated fixed64 steam_id = 1; -} - -message CMsgNotifyWatchdog { - optional uint32 source = 1; - optional uint32 alert_type = 2; - optional uint32 alert_destination = 3; - optional bool critical = 4; - optional uint32 time = 5; - optional uint32 appid = 6; - optional string text = 7; -} - -message CMsgAMGetLicenses { - optional fixed64 steamid = 1; -} - -message CMsgPackageLicense { - optional uint32 package_id = 1; - optional uint32 time_created = 2; - optional uint32 owner_id = 3; -} - -message CMsgAMGetLicensesResponse { - repeated .CMsgPackageLicense license = 1; - optional uint32 result = 2; -} - -message CMsgAMGetUserGameStats { - optional fixed64 steam_id = 1; - optional fixed64 game_id = 2; - repeated uint32 stats = 3; -} - -message CMsgAMGetUserGameStatsResponse { - message Stats { - optional uint32 stat_id = 1; - optional uint32 stat_value = 2; - } - - message Achievement_Blocks { - optional uint32 achievement_id = 1; - optional uint32 achievement_bit_id = 2; - optional fixed32 unlock_time = 3; - } - - optional fixed64 steam_id = 1; - optional fixed64 game_id = 2; - optional int32 eresult = 3 [default = 2]; - repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4; - repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; -} - -message CMsgGCGetCommandList { - optional uint32 app_id = 1; - optional string command_prefix = 2; -} - -message CMsgGCGetCommandListResponse { - repeated string command_name = 1; -} - -message CGCMsgMemCachedGet { - repeated string keys = 1; -} - -message CGCMsgMemCachedGetResponse { - message ValueTag { - optional bool found = 1; - optional bytes value = 2; - } - - repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; -} - -message CGCMsgMemCachedSet { - message KeyPair { - optional string name = 1; - optional bytes value = 2; - } - - repeated .CGCMsgMemCachedSet.KeyPair keys = 1; -} - -message CGCMsgMemCachedDelete { - repeated string keys = 1; -} - -message CGCMsgMemCachedStats { -} - -message CGCMsgMemCachedStatsResponse { - optional uint64 curr_connections = 1; - optional uint64 cmd_get = 2; - optional uint64 cmd_set = 3; - optional uint64 cmd_flush = 4; - optional uint64 get_hits = 5; - optional uint64 get_misses = 6; - optional uint64 delete_hits = 7; - optional uint64 delete_misses = 8; - optional uint64 bytes_read = 9; - optional uint64 bytes_written = 10; - optional uint64 limit_maxbytes = 11; - optional uint64 curr_items = 12; - optional uint64 evictions = 13; - optional uint64 bytes = 14; -} - -message CGCMsgSQLStats { - optional uint32 schema_catalog = 1; -} - -message CGCMsgSQLStatsResponse { - optional uint32 threads = 1; - optional uint32 threads_connected = 2; - optional uint32 threads_active = 3; - optional uint32 operations_submitted = 4; - optional uint32 prepared_statements_executed = 5; - optional uint32 non_prepared_statements_executed = 6; - optional uint32 deadlock_retries = 7; - optional uint32 operations_timed_out_in_queue = 8; - optional uint32 errors = 9; -} - -message CMsgAMAddFreeLicense { - optional fixed64 steamid = 1; - optional uint32 ip_public = 2; - optional uint32 packageid = 3; - optional string store_country_code = 4; -} - -message CMsgAMAddFreeLicenseResponse { - optional int32 eresult = 1 [default = 2]; - optional int32 purchase_result_detail = 2; - optional fixed64 transid = 3; -} - -message CGCMsgGetIPLocation { - repeated fixed32 ips = 1; -} - -message CIPLocationInfo { - optional uint32 ip = 1; - optional float latitude = 2; - optional float longitude = 3; - optional string country = 4; - optional string state = 5; - optional string city = 6; -} - -message CGCMsgGetIPLocationResponse { - repeated .CIPLocationInfo infos = 1; -} - -message CGCMsgSystemStatsSchema { - optional uint32 gc_app_id = 1; - optional bytes schema_kv = 2; -} - -message CGCMsgGetSystemStats { -} - -message CGCMsgGetSystemStatsResponse { - optional uint32 gc_app_id = 1; - optional bytes stats_kv = 2; - optional uint32 active_jobs = 3; - optional uint32 yielding_jobs = 4; - optional uint32 user_sessions = 5; - optional uint32 game_server_sessions = 6; - optional uint32 socaches = 7; - optional uint32 socaches_to_unload = 8; - optional uint32 socaches_loading = 9; - optional uint32 writeback_queue = 10; - optional uint32 steamid_locks = 11; - optional uint32 logon_queue = 12; - optional uint32 logon_jobs = 13; -} - -message CMsgAMSendEmail { - message ReplacementToken { - optional string token_name = 1; - optional string token_value = 2; - } - - message PersonaNameReplacementToken { - optional fixed64 steamid = 1; - optional string token_name = 2; - } - - optional fixed64 steamid = 1; - optional uint32 email_msg_type = 2; - optional uint32 email_format = 3; - repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; - optional uint32 source_gc = 6; - repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; -} - -message CMsgAMSendEmailResponse { - optional uint32 eresult = 1 [default = 2]; -} - -message CMsgGCGetEmailTemplate { - optional uint32 app_id = 1; - optional uint32 email_msg_type = 2; - optional int32 email_lang = 3; - optional int32 email_format = 4; -} - -message CMsgGCGetEmailTemplateResponse { - optional uint32 eresult = 1 [default = 2]; - optional bool template_exists = 2; - optional string template = 3; -} - -message CMsgAMGrantGuestPasses2 { - optional fixed64 steam_id = 1; - optional uint32 package_id = 2; - optional int32 passes_to_grant = 3; - optional int32 days_to_expiration = 4; - optional int32 action = 5; -} - -message CMsgAMGrantGuestPasses2Response { - optional int32 eresult = 1 [default = 2]; - optional int32 passes_granted = 2 [default = 0]; -} - -message CGCSystemMsg_GetAccountDetails { - option (msgpool_soft_limit) = 128; - option (msgpool_hard_limit) = 512; - - optional fixed64 steamid = 1; - optional uint32 appid = 2; -} - -message CGCSystemMsg_GetAccountDetails_Response { - option (msgpool_soft_limit) = 128; - option (msgpool_hard_limit) = 512; - - optional uint32 eresult_deprecated = 1 [default = 2]; - optional string account_name = 2; - optional string persona_name = 3; - optional bool is_profile_public = 4; - optional bool is_inventory_public = 5; - optional bool is_vac_banned = 7; - optional bool is_cyber_cafe = 8; - optional bool is_school_account = 9; - optional bool is_limited = 10; - optional bool is_subscribed = 11; - optional uint32 package = 12; - optional bool is_free_trial_account = 13; - optional uint32 free_trial_expiration = 14; - optional bool is_low_violence = 15; - optional bool is_account_locked_down = 16; - optional bool is_community_banned = 17; - optional bool is_trade_banned = 18; - optional uint32 trade_ban_expiration = 19; - optional uint32 accountid = 20; - optional uint32 suspension_end_time = 21; - optional string currency = 22; - optional uint32 steam_level = 23; - optional uint32 friend_count = 24; - optional uint32 account_creation_time = 25; - optional bool is_steamguard_enabled = 27; - optional bool is_phone_verified = 28; - optional bool is_two_factor_auth_enabled = 29; - optional uint32 two_factor_enabled_time = 30; - optional uint32 phone_verification_time = 31; - optional uint64 phone_id = 33; - optional bool is_phone_identifying = 34; - optional uint32 rt_identity_linked = 35; - optional uint32 rt_birth_date = 36; - optional string txn_country_code = 37; - optional bool has_accepted_china_ssa = 38; - optional bool is_banned_steam_china = 39; -} - -message CMsgGCGetPersonaNames { - repeated fixed64 steamids = 1; -} - -message CMsgGCGetPersonaNames_Response { - message PersonaName { - optional fixed64 steamid = 1; - optional string persona_name = 2; - } - - repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; - repeated fixed64 failed_lookup_steamids = 2; -} - -message CMsgGCCheckFriendship { - optional fixed64 steamid_left = 1; - optional fixed64 steamid_right = 2; -} - -message CMsgGCCheckFriendship_Response { - optional bool success = 1; - optional bool found_friendship = 2; -} - -message CMsgGCMsgMasterSetDirectory { - message SubGC { - optional uint32 dir_index = 1; - optional string name = 2; - optional string box = 3; - optional string command_line = 4; - optional string gc_binary = 5; - } - - optional uint32 master_dir_index = 1; - repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; -} - -message CMsgGCMsgMasterSetDirectory_Response { - optional int32 eresult = 1 [default = 2]; - optional string message = 2; -} - -message CMsgGCMsgWebAPIJobRequestForwardResponse { - optional uint32 dir_index = 1; -} - -message CGCSystemMsg_GetPurchaseTrust_Request { - optional fixed64 steamid = 1; -} - -message CGCSystemMsg_GetPurchaseTrust_Response { - optional bool has_prior_purchase_history = 1; - optional bool has_no_recent_password_resets = 2; - optional bool is_wallet_cash_trusted = 3; - optional uint32 time_all_trusted = 4; -} - -message CMsgGCHAccountVacStatusChange { - optional fixed64 steam_id = 1; - optional uint32 app_id = 2; - optional uint32 rtime_vacban_starts = 3; - optional bool is_banned_now = 4; - optional bool is_banned_future = 5; -} - -message CMsgGCGetPartnerAccountLink { - optional fixed64 steamid = 1; -} - -message CMsgGCGetPartnerAccountLink_Response { - optional uint32 pwid = 1; - optional uint32 nexonid = 2; - optional int32 ageclass = 3; - optional bool id_verified = 4 [default = true]; - optional bool is_adult = 5; -} - -message CMsgGCRoutingInfo { - enum RoutingMethod { - RANDOM = 0; - DISCARD = 1; - CLIENT_STEAMID = 2; - PROTOBUF_FIELD_UINT64 = 3; - WEBAPI_PARAM_UINT64 = 4; - } - - repeated uint32 dir_index = 1; - optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; - optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; - optional uint32 protobuf_field = 4; - optional string webapi_param = 5; -} - -message CMsgGCMsgMasterSetWebAPIRouting { - message Entry { - optional string interface_name = 1; - optional string method_name = 2; - optional .CMsgGCRoutingInfo routing = 3; - } - - repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; -} - -message CMsgGCMsgMasterSetClientMsgRouting { - message Entry { - optional uint32 msg_type = 1; - optional .CMsgGCRoutingInfo routing = 2; - } - - repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; -} - -message CMsgGCMsgMasterSetWebAPIRouting_Response { - optional int32 eresult = 1 [default = 2]; -} - -message CMsgGCMsgMasterSetClientMsgRouting_Response { - optional int32 eresult = 1 [default = 2]; -} - -message CMsgGCMsgSetOptions { - message MessageRange { - required uint32 low = 1; - required uint32 high = 2; - } - - enum Option { - NOTIFY_USER_SESSIONS = 0; - NOTIFY_SERVER_SESSIONS = 1; - NOTIFY_ACHIEVEMENTS = 2; - NOTIFY_VAC_ACTION = 3; - } - - repeated .CMsgGCMsgSetOptions.Option options = 1; - repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; -} - -message CMsgGCHUpdateSession { - message ExtraField { - optional string name = 1; - optional string value = 2; - } - - optional fixed64 steam_id = 1; - optional uint32 app_id = 2; - optional bool online = 3; - optional fixed64 server_steam_id = 4; - optional uint32 server_addr = 5; - optional uint32 server_port = 6; - optional uint32 os_type = 7; - optional uint32 client_addr = 8; - repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; - optional fixed64 owner_id = 10; - optional uint32 cm_session_sysid = 11; - optional uint32 cm_session_identifier = 12; - repeated uint32 depot_ids = 13; -} - -message CMsgNotificationOfSuspiciousActivity { - message MultipleGameInstances { - optional uint32 app_instance_count = 1; - repeated fixed64 other_steamids = 2; - } - - optional fixed64 steamid = 1; - optional uint32 appid = 2; - optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; -} - -message CMsgDPPartnerMicroTxns { - message PartnerMicroTxn { - optional uint32 init_time = 1; - optional uint32 last_update_time = 2; - optional uint64 txn_id = 3; - optional uint32 account_id = 4; - optional uint32 line_item = 5; - optional uint64 item_id = 6; - optional uint32 def_index = 7; - optional uint64 price = 8; - optional uint64 tax = 9; - optional uint64 price_usd = 10; - optional uint64 tax_usd = 11; - optional uint32 purchase_type = 12; - optional uint32 steam_txn_type = 13; - optional string country_code = 14; - optional string region_code = 15; - optional int32 quantity = 16; - optional uint64 ref_trans_id = 17; - } - - message PartnerInfo { - optional uint32 partner_id = 1; - optional string partner_name = 2; - optional string currency_code = 3; - optional string currency_name = 4; - } - - optional uint32 appid = 1; - optional string gc_name = 2; - optional .CMsgDPPartnerMicroTxns.PartnerInfo partner = 3; - repeated .CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4; -} - -message CMsgDPPartnerMicroTxnsResponse { - enum EErrorCode { - k_MsgValid = 0; - k_MsgInvalidAppID = 1; - k_MsgInvalidPartnerInfo = 2; - k_MsgNoTransactions = 3; - k_MsgSQLFailure = 4; - k_MsgPartnerInfoDiscrepancy = 5; - k_MsgTransactionInsertFailed = 7; - k_MsgAlreadyRunning = 8; - k_MsgInvalidTransactionData = 9; - } - - optional uint32 eresult = 1 [default = 2]; - optional .CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid]; -} - -message CChinaAgreementSessions_StartAgreementSessionInGame_Request { - optional uint32 appid = 1; - optional fixed64 steamid = 2; - optional string client_ipaddress = 3; -} - -message CChinaAgreementSessions_StartAgreementSessionInGame_Response { - optional string agreement_url = 1; -} diff --git a/pkg/demoinfocs/msg/steammessages.pb.go b/pkg/demoinfocs/msg/steammessages.pb.go index 9d453dd3..3f13bfb4 100644 --- a/pkg/demoinfocs/msg/steammessages.pb.go +++ b/pkg/demoinfocs/msg/steammessages.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.3 +// protoc-gen-go v1.28.0 +// protoc v3.21.12 // source: steammessages.proto package msg @@ -11,7 +11,6 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" - sync "sync" ) const ( @@ -21,5918 +20,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type GCProtoBufMsgSrc int32 - -const ( - GCProtoBufMsgSrc_GCProtoBufMsgSrc_Unspecified GCProtoBufMsgSrc = 0 - GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromSystem GCProtoBufMsgSrc = 1 - GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromSteamID GCProtoBufMsgSrc = 2 - GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromGC GCProtoBufMsgSrc = 3 - GCProtoBufMsgSrc_GCProtoBufMsgSrc_ReplySystem GCProtoBufMsgSrc = 4 -) - -// Enum value maps for GCProtoBufMsgSrc. -var ( - GCProtoBufMsgSrc_name = map[int32]string{ - 0: "GCProtoBufMsgSrc_Unspecified", - 1: "GCProtoBufMsgSrc_FromSystem", - 2: "GCProtoBufMsgSrc_FromSteamID", - 3: "GCProtoBufMsgSrc_FromGC", - 4: "GCProtoBufMsgSrc_ReplySystem", - } - GCProtoBufMsgSrc_value = map[string]int32{ - "GCProtoBufMsgSrc_Unspecified": 0, - "GCProtoBufMsgSrc_FromSystem": 1, - "GCProtoBufMsgSrc_FromSteamID": 2, - "GCProtoBufMsgSrc_FromGC": 3, - "GCProtoBufMsgSrc_ReplySystem": 4, - } -) - -func (x GCProtoBufMsgSrc) Enum() *GCProtoBufMsgSrc { - p := new(GCProtoBufMsgSrc) - *p = x - return p -} - -func (x GCProtoBufMsgSrc) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GCProtoBufMsgSrc) Descriptor() protoreflect.EnumDescriptor { - return file_steammessages_proto_enumTypes[0].Descriptor() -} - -func (GCProtoBufMsgSrc) Type() protoreflect.EnumType { - return &file_steammessages_proto_enumTypes[0] -} - -func (x GCProtoBufMsgSrc) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *GCProtoBufMsgSrc) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = GCProtoBufMsgSrc(num) - return nil -} - -// Deprecated: Use GCProtoBufMsgSrc.Descriptor instead. -func (GCProtoBufMsgSrc) EnumDescriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{0} -} - -type CMsgGCRoutingInfo_RoutingMethod int32 - -const ( - CMsgGCRoutingInfo_RANDOM CMsgGCRoutingInfo_RoutingMethod = 0 - CMsgGCRoutingInfo_DISCARD CMsgGCRoutingInfo_RoutingMethod = 1 - CMsgGCRoutingInfo_CLIENT_STEAMID CMsgGCRoutingInfo_RoutingMethod = 2 - CMsgGCRoutingInfo_PROTOBUF_FIELD_UINT64 CMsgGCRoutingInfo_RoutingMethod = 3 - CMsgGCRoutingInfo_WEBAPI_PARAM_UINT64 CMsgGCRoutingInfo_RoutingMethod = 4 -) - -// Enum value maps for CMsgGCRoutingInfo_RoutingMethod. -var ( - CMsgGCRoutingInfo_RoutingMethod_name = map[int32]string{ - 0: "RANDOM", - 1: "DISCARD", - 2: "CLIENT_STEAMID", - 3: "PROTOBUF_FIELD_UINT64", - 4: "WEBAPI_PARAM_UINT64", - } - CMsgGCRoutingInfo_RoutingMethod_value = map[string]int32{ - "RANDOM": 0, - "DISCARD": 1, - "CLIENT_STEAMID": 2, - "PROTOBUF_FIELD_UINT64": 3, - "WEBAPI_PARAM_UINT64": 4, - } -) - -func (x CMsgGCRoutingInfo_RoutingMethod) Enum() *CMsgGCRoutingInfo_RoutingMethod { - p := new(CMsgGCRoutingInfo_RoutingMethod) - *p = x - return p -} - -func (x CMsgGCRoutingInfo_RoutingMethod) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CMsgGCRoutingInfo_RoutingMethod) Descriptor() protoreflect.EnumDescriptor { - return file_steammessages_proto_enumTypes[1].Descriptor() -} - -func (CMsgGCRoutingInfo_RoutingMethod) Type() protoreflect.EnumType { - return &file_steammessages_proto_enumTypes[1] -} - -func (x CMsgGCRoutingInfo_RoutingMethod) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CMsgGCRoutingInfo_RoutingMethod) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CMsgGCRoutingInfo_RoutingMethod(num) - return nil -} - -// Deprecated: Use CMsgGCRoutingInfo_RoutingMethod.Descriptor instead. -func (CMsgGCRoutingInfo_RoutingMethod) EnumDescriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{51, 0} -} - -type CMsgGCMsgSetOptions_Option int32 - -const ( - CMsgGCMsgSetOptions_NOTIFY_USER_SESSIONS CMsgGCMsgSetOptions_Option = 0 - CMsgGCMsgSetOptions_NOTIFY_SERVER_SESSIONS CMsgGCMsgSetOptions_Option = 1 - CMsgGCMsgSetOptions_NOTIFY_ACHIEVEMENTS CMsgGCMsgSetOptions_Option = 2 - CMsgGCMsgSetOptions_NOTIFY_VAC_ACTION CMsgGCMsgSetOptions_Option = 3 -) - -// Enum value maps for CMsgGCMsgSetOptions_Option. -var ( - CMsgGCMsgSetOptions_Option_name = map[int32]string{ - 0: "NOTIFY_USER_SESSIONS", - 1: "NOTIFY_SERVER_SESSIONS", - 2: "NOTIFY_ACHIEVEMENTS", - 3: "NOTIFY_VAC_ACTION", - } - CMsgGCMsgSetOptions_Option_value = map[string]int32{ - "NOTIFY_USER_SESSIONS": 0, - "NOTIFY_SERVER_SESSIONS": 1, - "NOTIFY_ACHIEVEMENTS": 2, - "NOTIFY_VAC_ACTION": 3, - } -) - -func (x CMsgGCMsgSetOptions_Option) Enum() *CMsgGCMsgSetOptions_Option { - p := new(CMsgGCMsgSetOptions_Option) - *p = x - return p -} - -func (x CMsgGCMsgSetOptions_Option) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CMsgGCMsgSetOptions_Option) Descriptor() protoreflect.EnumDescriptor { - return file_steammessages_proto_enumTypes[2].Descriptor() -} - -func (CMsgGCMsgSetOptions_Option) Type() protoreflect.EnumType { - return &file_steammessages_proto_enumTypes[2] -} - -func (x CMsgGCMsgSetOptions_Option) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CMsgGCMsgSetOptions_Option) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CMsgGCMsgSetOptions_Option(num) - return nil -} - -// Deprecated: Use CMsgGCMsgSetOptions_Option.Descriptor instead. -func (CMsgGCMsgSetOptions_Option) EnumDescriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{56, 0} -} - -type CMsgDPPartnerMicroTxnsResponse_EErrorCode int32 - -const ( - CMsgDPPartnerMicroTxnsResponse_k_MsgValid CMsgDPPartnerMicroTxnsResponse_EErrorCode = 0 - CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidAppID CMsgDPPartnerMicroTxnsResponse_EErrorCode = 1 - CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidPartnerInfo CMsgDPPartnerMicroTxnsResponse_EErrorCode = 2 - CMsgDPPartnerMicroTxnsResponse_k_MsgNoTransactions CMsgDPPartnerMicroTxnsResponse_EErrorCode = 3 - CMsgDPPartnerMicroTxnsResponse_k_MsgSQLFailure CMsgDPPartnerMicroTxnsResponse_EErrorCode = 4 - CMsgDPPartnerMicroTxnsResponse_k_MsgPartnerInfoDiscrepancy CMsgDPPartnerMicroTxnsResponse_EErrorCode = 5 - CMsgDPPartnerMicroTxnsResponse_k_MsgTransactionInsertFailed CMsgDPPartnerMicroTxnsResponse_EErrorCode = 7 - CMsgDPPartnerMicroTxnsResponse_k_MsgAlreadyRunning CMsgDPPartnerMicroTxnsResponse_EErrorCode = 8 - CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidTransactionData CMsgDPPartnerMicroTxnsResponse_EErrorCode = 9 -) - -// Enum value maps for CMsgDPPartnerMicroTxnsResponse_EErrorCode. -var ( - CMsgDPPartnerMicroTxnsResponse_EErrorCode_name = map[int32]string{ - 0: "k_MsgValid", - 1: "k_MsgInvalidAppID", - 2: "k_MsgInvalidPartnerInfo", - 3: "k_MsgNoTransactions", - 4: "k_MsgSQLFailure", - 5: "k_MsgPartnerInfoDiscrepancy", - 7: "k_MsgTransactionInsertFailed", - 8: "k_MsgAlreadyRunning", - 9: "k_MsgInvalidTransactionData", - } - CMsgDPPartnerMicroTxnsResponse_EErrorCode_value = map[string]int32{ - "k_MsgValid": 0, - "k_MsgInvalidAppID": 1, - "k_MsgInvalidPartnerInfo": 2, - "k_MsgNoTransactions": 3, - "k_MsgSQLFailure": 4, - "k_MsgPartnerInfoDiscrepancy": 5, - "k_MsgTransactionInsertFailed": 7, - "k_MsgAlreadyRunning": 8, - "k_MsgInvalidTransactionData": 9, - } -) - -func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) Enum() *CMsgDPPartnerMicroTxnsResponse_EErrorCode { - p := new(CMsgDPPartnerMicroTxnsResponse_EErrorCode) - *p = x - return p -} - -func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) Descriptor() protoreflect.EnumDescriptor { - return file_steammessages_proto_enumTypes[3].Descriptor() -} - -func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) Type() protoreflect.EnumType { - return &file_steammessages_proto_enumTypes[3] -} - -func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *CMsgDPPartnerMicroTxnsResponse_EErrorCode) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = CMsgDPPartnerMicroTxnsResponse_EErrorCode(num) - return nil -} - -// Deprecated: Use CMsgDPPartnerMicroTxnsResponse_EErrorCode.Descriptor instead. -func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) EnumDescriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{60, 0} -} - -type CMsgProtoBufHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientSteamId *uint64 `protobuf:"fixed64,1,opt,name=client_steam_id,json=clientSteamId" json:"client_steam_id,omitempty"` - ClientSessionId *int32 `protobuf:"varint,2,opt,name=client_session_id,json=clientSessionId" json:"client_session_id,omitempty"` - SourceAppId *uint32 `protobuf:"varint,3,opt,name=source_app_id,json=sourceAppId" json:"source_app_id,omitempty"` - JobIdSource *uint64 `protobuf:"fixed64,10,opt,name=job_id_source,json=jobIdSource,def=18446744073709551615" json:"job_id_source,omitempty"` - JobIdTarget *uint64 `protobuf:"fixed64,11,opt,name=job_id_target,json=jobIdTarget,def=18446744073709551615" json:"job_id_target,omitempty"` - TargetJobName *string `protobuf:"bytes,12,opt,name=target_job_name,json=targetJobName" json:"target_job_name,omitempty"` - Eresult *int32 `protobuf:"varint,13,opt,name=eresult,def=2" json:"eresult,omitempty"` - ErrorMessage *string `protobuf:"bytes,14,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"` - Ip *uint32 `protobuf:"varint,15,opt,name=ip" json:"ip,omitempty"` - GcMsgSrc *GCProtoBufMsgSrc `protobuf:"varint,200,opt,name=gc_msg_src,json=gcMsgSrc,enum=GCProtoBufMsgSrc,def=0" json:"gc_msg_src,omitempty"` - GcDirIndexSource *uint32 `protobuf:"varint,201,opt,name=gc_dir_index_source,json=gcDirIndexSource" json:"gc_dir_index_source,omitempty"` -} - -// Default values for CMsgProtoBufHeader fields. -const ( - Default_CMsgProtoBufHeader_JobIdSource = uint64(18446744073709551615) - Default_CMsgProtoBufHeader_JobIdTarget = uint64(18446744073709551615) - Default_CMsgProtoBufHeader_Eresult = int32(2) - Default_CMsgProtoBufHeader_GcMsgSrc = GCProtoBufMsgSrc_GCProtoBufMsgSrc_Unspecified -) - -func (x *CMsgProtoBufHeader) Reset() { - *x = CMsgProtoBufHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgProtoBufHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgProtoBufHeader) ProtoMessage() {} - -func (x *CMsgProtoBufHeader) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgProtoBufHeader.ProtoReflect.Descriptor instead. -func (*CMsgProtoBufHeader) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{0} -} - -func (x *CMsgProtoBufHeader) GetClientSteamId() uint64 { - if x != nil && x.ClientSteamId != nil { - return *x.ClientSteamId - } - return 0 -} - -func (x *CMsgProtoBufHeader) GetClientSessionId() int32 { - if x != nil && x.ClientSessionId != nil { - return *x.ClientSessionId - } - return 0 -} - -func (x *CMsgProtoBufHeader) GetSourceAppId() uint32 { - if x != nil && x.SourceAppId != nil { - return *x.SourceAppId - } - return 0 -} - -func (x *CMsgProtoBufHeader) GetJobIdSource() uint64 { - if x != nil && x.JobIdSource != nil { - return *x.JobIdSource - } - return Default_CMsgProtoBufHeader_JobIdSource -} - -func (x *CMsgProtoBufHeader) GetJobIdTarget() uint64 { - if x != nil && x.JobIdTarget != nil { - return *x.JobIdTarget - } - return Default_CMsgProtoBufHeader_JobIdTarget -} - -func (x *CMsgProtoBufHeader) GetTargetJobName() string { - if x != nil && x.TargetJobName != nil { - return *x.TargetJobName - } - return "" -} - -func (x *CMsgProtoBufHeader) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgProtoBufHeader_Eresult -} - -func (x *CMsgProtoBufHeader) GetErrorMessage() string { - if x != nil && x.ErrorMessage != nil { - return *x.ErrorMessage - } - return "" -} - -func (x *CMsgProtoBufHeader) GetIp() uint32 { - if x != nil && x.Ip != nil { - return *x.Ip - } - return 0 -} - -func (x *CMsgProtoBufHeader) GetGcMsgSrc() GCProtoBufMsgSrc { - if x != nil && x.GcMsgSrc != nil { - return *x.GcMsgSrc - } - return Default_CMsgProtoBufHeader_GcMsgSrc -} - -func (x *CMsgProtoBufHeader) GetGcDirIndexSource() uint32 { - if x != nil && x.GcDirIndexSource != nil { - return *x.GcDirIndexSource - } - return 0 -} - -type CMsgWebAPIKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status *uint32 `protobuf:"varint,1,opt,name=status,def=255" json:"status,omitempty"` - AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId,def=0" json:"account_id,omitempty"` - PublisherGroupId *uint32 `protobuf:"varint,3,opt,name=publisher_group_id,json=publisherGroupId,def=0" json:"publisher_group_id,omitempty"` - KeyId *uint32 `protobuf:"varint,4,opt,name=key_id,json=keyId" json:"key_id,omitempty"` - Domain *string `protobuf:"bytes,5,opt,name=domain" json:"domain,omitempty"` -} - -// Default values for CMsgWebAPIKey fields. -const ( - Default_CMsgWebAPIKey_Status = uint32(255) - Default_CMsgWebAPIKey_AccountId = uint32(0) - Default_CMsgWebAPIKey_PublisherGroupId = uint32(0) -) - -func (x *CMsgWebAPIKey) Reset() { - *x = CMsgWebAPIKey{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgWebAPIKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgWebAPIKey) ProtoMessage() {} - -func (x *CMsgWebAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgWebAPIKey.ProtoReflect.Descriptor instead. -func (*CMsgWebAPIKey) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{1} -} - -func (x *CMsgWebAPIKey) GetStatus() uint32 { - if x != nil && x.Status != nil { - return *x.Status - } - return Default_CMsgWebAPIKey_Status -} - -func (x *CMsgWebAPIKey) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId - } - return Default_CMsgWebAPIKey_AccountId -} - -func (x *CMsgWebAPIKey) GetPublisherGroupId() uint32 { - if x != nil && x.PublisherGroupId != nil { - return *x.PublisherGroupId - } - return Default_CMsgWebAPIKey_PublisherGroupId -} - -func (x *CMsgWebAPIKey) GetKeyId() uint32 { - if x != nil && x.KeyId != nil { - return *x.KeyId - } - return 0 -} - -func (x *CMsgWebAPIKey) GetDomain() string { - if x != nil && x.Domain != nil { - return *x.Domain - } - return "" -} - -type CMsgHttpRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RequestMethod *uint32 `protobuf:"varint,1,opt,name=request_method,json=requestMethod" json:"request_method,omitempty"` - Hostname *string `protobuf:"bytes,2,opt,name=hostname" json:"hostname,omitempty"` - Url *string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"` - Headers []*CMsgHttpRequest_RequestHeader `protobuf:"bytes,4,rep,name=headers" json:"headers,omitempty"` - GetParams []*CMsgHttpRequest_QueryParam `protobuf:"bytes,5,rep,name=get_params,json=getParams" json:"get_params,omitempty"` - PostParams []*CMsgHttpRequest_QueryParam `protobuf:"bytes,6,rep,name=post_params,json=postParams" json:"post_params,omitempty"` - Body []byte `protobuf:"bytes,7,opt,name=body" json:"body,omitempty"` - AbsoluteTimeout *uint32 `protobuf:"varint,8,opt,name=absolute_timeout,json=absoluteTimeout" json:"absolute_timeout,omitempty"` -} - -func (x *CMsgHttpRequest) Reset() { - *x = CMsgHttpRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgHttpRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgHttpRequest) ProtoMessage() {} - -func (x *CMsgHttpRequest) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgHttpRequest.ProtoReflect.Descriptor instead. -func (*CMsgHttpRequest) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{2} -} - -func (x *CMsgHttpRequest) GetRequestMethod() uint32 { - if x != nil && x.RequestMethod != nil { - return *x.RequestMethod - } - return 0 -} - -func (x *CMsgHttpRequest) GetHostname() string { - if x != nil && x.Hostname != nil { - return *x.Hostname - } - return "" -} - -func (x *CMsgHttpRequest) GetUrl() string { - if x != nil && x.Url != nil { - return *x.Url - } - return "" -} - -func (x *CMsgHttpRequest) GetHeaders() []*CMsgHttpRequest_RequestHeader { - if x != nil { - return x.Headers - } - return nil -} - -func (x *CMsgHttpRequest) GetGetParams() []*CMsgHttpRequest_QueryParam { - if x != nil { - return x.GetParams - } - return nil -} - -func (x *CMsgHttpRequest) GetPostParams() []*CMsgHttpRequest_QueryParam { - if x != nil { - return x.PostParams - } - return nil -} - -func (x *CMsgHttpRequest) GetBody() []byte { - if x != nil { - return x.Body - } - return nil -} - -func (x *CMsgHttpRequest) GetAbsoluteTimeout() uint32 { - if x != nil && x.AbsoluteTimeout != nil { - return *x.AbsoluteTimeout - } - return 0 -} - -type CMsgWebAPIRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UNUSEDJobName *string `protobuf:"bytes,1,opt,name=UNUSED_job_name,json=UNUSEDJobName" json:"UNUSED_job_name,omitempty"` - InterfaceName *string `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName" json:"interface_name,omitempty"` - MethodName *string `protobuf:"bytes,3,opt,name=method_name,json=methodName" json:"method_name,omitempty"` - Version *uint32 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"` - ApiKey *CMsgWebAPIKey `protobuf:"bytes,5,opt,name=api_key,json=apiKey" json:"api_key,omitempty"` - Request *CMsgHttpRequest `protobuf:"bytes,6,opt,name=request" json:"request,omitempty"` - RoutingAppId *uint32 `protobuf:"varint,7,opt,name=routing_app_id,json=routingAppId" json:"routing_app_id,omitempty"` -} - -func (x *CMsgWebAPIRequest) Reset() { - *x = CMsgWebAPIRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgWebAPIRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgWebAPIRequest) ProtoMessage() {} - -func (x *CMsgWebAPIRequest) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgWebAPIRequest.ProtoReflect.Descriptor instead. -func (*CMsgWebAPIRequest) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{3} -} - -func (x *CMsgWebAPIRequest) GetUNUSEDJobName() string { - if x != nil && x.UNUSEDJobName != nil { - return *x.UNUSEDJobName - } - return "" -} - -func (x *CMsgWebAPIRequest) GetInterfaceName() string { - if x != nil && x.InterfaceName != nil { - return *x.InterfaceName - } - return "" -} - -func (x *CMsgWebAPIRequest) GetMethodName() string { - if x != nil && x.MethodName != nil { - return *x.MethodName - } - return "" -} - -func (x *CMsgWebAPIRequest) GetVersion() uint32 { - if x != nil && x.Version != nil { - return *x.Version - } - return 0 -} - -func (x *CMsgWebAPIRequest) GetApiKey() *CMsgWebAPIKey { - if x != nil { - return x.ApiKey - } - return nil -} - -func (x *CMsgWebAPIRequest) GetRequest() *CMsgHttpRequest { - if x != nil { - return x.Request - } - return nil -} - -func (x *CMsgWebAPIRequest) GetRoutingAppId() uint32 { - if x != nil && x.RoutingAppId != nil { - return *x.RoutingAppId - } - return 0 -} - -type CMsgHttpResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatusCode *uint32 `protobuf:"varint,1,opt,name=status_code,json=statusCode" json:"status_code,omitempty"` - Headers []*CMsgHttpResponse_ResponseHeader `protobuf:"bytes,2,rep,name=headers" json:"headers,omitempty"` - Body []byte `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"` -} - -func (x *CMsgHttpResponse) Reset() { - *x = CMsgHttpResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgHttpResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgHttpResponse) ProtoMessage() {} - -func (x *CMsgHttpResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgHttpResponse.ProtoReflect.Descriptor instead. -func (*CMsgHttpResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{4} -} - -func (x *CMsgHttpResponse) GetStatusCode() uint32 { - if x != nil && x.StatusCode != nil { - return *x.StatusCode - } - return 0 -} - -func (x *CMsgHttpResponse) GetHeaders() []*CMsgHttpResponse_ResponseHeader { - if x != nil { - return x.Headers - } - return nil -} - -func (x *CMsgHttpResponse) GetBody() []byte { - if x != nil { - return x.Body - } - return nil -} - -type CMsgAMFindAccounts struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SearchType *uint32 `protobuf:"varint,1,opt,name=search_type,json=searchType" json:"search_type,omitempty"` - SearchString *string `protobuf:"bytes,2,opt,name=search_string,json=searchString" json:"search_string,omitempty"` -} - -func (x *CMsgAMFindAccounts) Reset() { - *x = CMsgAMFindAccounts{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMFindAccounts) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMFindAccounts) ProtoMessage() {} - -func (x *CMsgAMFindAccounts) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMFindAccounts.ProtoReflect.Descriptor instead. -func (*CMsgAMFindAccounts) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{5} -} - -func (x *CMsgAMFindAccounts) GetSearchType() uint32 { - if x != nil && x.SearchType != nil { - return *x.SearchType - } - return 0 -} - -func (x *CMsgAMFindAccounts) GetSearchString() string { - if x != nil && x.SearchString != nil { - return *x.SearchString - } - return "" -} - -type CMsgAMFindAccountsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId []uint64 `protobuf:"fixed64,1,rep,name=steam_id,json=steamId" json:"steam_id,omitempty"` -} - -func (x *CMsgAMFindAccountsResponse) Reset() { - *x = CMsgAMFindAccountsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMFindAccountsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMFindAccountsResponse) ProtoMessage() {} - -func (x *CMsgAMFindAccountsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMFindAccountsResponse.ProtoReflect.Descriptor instead. -func (*CMsgAMFindAccountsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{6} -} - -func (x *CMsgAMFindAccountsResponse) GetSteamId() []uint64 { - if x != nil { - return x.SteamId - } - return nil -} - -type CMsgNotifyWatchdog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Source *uint32 `protobuf:"varint,1,opt,name=source" json:"source,omitempty"` - AlertType *uint32 `protobuf:"varint,2,opt,name=alert_type,json=alertType" json:"alert_type,omitempty"` - AlertDestination *uint32 `protobuf:"varint,3,opt,name=alert_destination,json=alertDestination" json:"alert_destination,omitempty"` - Critical *bool `protobuf:"varint,4,opt,name=critical" json:"critical,omitempty"` - Time *uint32 `protobuf:"varint,5,opt,name=time" json:"time,omitempty"` - Appid *uint32 `protobuf:"varint,6,opt,name=appid" json:"appid,omitempty"` - Text *string `protobuf:"bytes,7,opt,name=text" json:"text,omitempty"` -} - -func (x *CMsgNotifyWatchdog) Reset() { - *x = CMsgNotifyWatchdog{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgNotifyWatchdog) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgNotifyWatchdog) ProtoMessage() {} - -func (x *CMsgNotifyWatchdog) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgNotifyWatchdog.ProtoReflect.Descriptor instead. -func (*CMsgNotifyWatchdog) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{7} -} - -func (x *CMsgNotifyWatchdog) GetSource() uint32 { - if x != nil && x.Source != nil { - return *x.Source - } - return 0 -} - -func (x *CMsgNotifyWatchdog) GetAlertType() uint32 { - if x != nil && x.AlertType != nil { - return *x.AlertType - } - return 0 -} - -func (x *CMsgNotifyWatchdog) GetAlertDestination() uint32 { - if x != nil && x.AlertDestination != nil { - return *x.AlertDestination - } - return 0 -} - -func (x *CMsgNotifyWatchdog) GetCritical() bool { - if x != nil && x.Critical != nil { - return *x.Critical - } - return false -} - -func (x *CMsgNotifyWatchdog) GetTime() uint32 { - if x != nil && x.Time != nil { - return *x.Time - } - return 0 -} - -func (x *CMsgNotifyWatchdog) GetAppid() uint32 { - if x != nil && x.Appid != nil { - return *x.Appid - } - return 0 -} - -func (x *CMsgNotifyWatchdog) GetText() string { - if x != nil && x.Text != nil { - return *x.Text - } - return "" -} - -type CMsgAMGetLicenses struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` -} - -func (x *CMsgAMGetLicenses) Reset() { - *x = CMsgAMGetLicenses{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetLicenses) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetLicenses) ProtoMessage() {} - -func (x *CMsgAMGetLicenses) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetLicenses.ProtoReflect.Descriptor instead. -func (*CMsgAMGetLicenses) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{8} -} - -func (x *CMsgAMGetLicenses) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -type CMsgPackageLicense struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PackageId *uint32 `protobuf:"varint,1,opt,name=package_id,json=packageId" json:"package_id,omitempty"` - TimeCreated *uint32 `protobuf:"varint,2,opt,name=time_created,json=timeCreated" json:"time_created,omitempty"` - OwnerId *uint32 `protobuf:"varint,3,opt,name=owner_id,json=ownerId" json:"owner_id,omitempty"` -} - -func (x *CMsgPackageLicense) Reset() { - *x = CMsgPackageLicense{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgPackageLicense) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgPackageLicense) ProtoMessage() {} - -func (x *CMsgPackageLicense) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgPackageLicense.ProtoReflect.Descriptor instead. -func (*CMsgPackageLicense) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{9} -} - -func (x *CMsgPackageLicense) GetPackageId() uint32 { - if x != nil && x.PackageId != nil { - return *x.PackageId - } - return 0 -} - -func (x *CMsgPackageLicense) GetTimeCreated() uint32 { - if x != nil && x.TimeCreated != nil { - return *x.TimeCreated - } - return 0 -} - -func (x *CMsgPackageLicense) GetOwnerId() uint32 { - if x != nil && x.OwnerId != nil { - return *x.OwnerId - } - return 0 -} - -type CMsgAMGetLicensesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - License []*CMsgPackageLicense `protobuf:"bytes,1,rep,name=license" json:"license,omitempty"` - Result *uint32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` -} - -func (x *CMsgAMGetLicensesResponse) Reset() { - *x = CMsgAMGetLicensesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetLicensesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetLicensesResponse) ProtoMessage() {} - -func (x *CMsgAMGetLicensesResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetLicensesResponse.ProtoReflect.Descriptor instead. -func (*CMsgAMGetLicensesResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{10} -} - -func (x *CMsgAMGetLicensesResponse) GetLicense() []*CMsgPackageLicense { - if x != nil { - return x.License - } - return nil -} - -func (x *CMsgAMGetLicensesResponse) GetResult() uint32 { - if x != nil && x.Result != nil { - return *x.Result - } - return 0 -} - -type CMsgAMGetUserGameStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - GameId *uint64 `protobuf:"fixed64,2,opt,name=game_id,json=gameId" json:"game_id,omitempty"` - Stats []uint32 `protobuf:"varint,3,rep,name=stats" json:"stats,omitempty"` -} - -func (x *CMsgAMGetUserGameStats) Reset() { - *x = CMsgAMGetUserGameStats{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetUserGameStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetUserGameStats) ProtoMessage() {} - -func (x *CMsgAMGetUserGameStats) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetUserGameStats.ProtoReflect.Descriptor instead. -func (*CMsgAMGetUserGameStats) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{11} -} - -func (x *CMsgAMGetUserGameStats) GetSteamId() uint64 { - if x != nil && x.SteamId != nil { - return *x.SteamId - } - return 0 -} - -func (x *CMsgAMGetUserGameStats) GetGameId() uint64 { - if x != nil && x.GameId != nil { - return *x.GameId - } - return 0 -} - -func (x *CMsgAMGetUserGameStats) GetStats() []uint32 { - if x != nil { - return x.Stats - } - return nil -} - -type CMsgAMGetUserGameStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - GameId *uint64 `protobuf:"fixed64,2,opt,name=game_id,json=gameId" json:"game_id,omitempty"` - Eresult *int32 `protobuf:"varint,3,opt,name=eresult,def=2" json:"eresult,omitempty"` - Stats []*CMsgAMGetUserGameStatsResponse_Stats `protobuf:"bytes,4,rep,name=stats" json:"stats,omitempty"` - AchievementBlocks []*CMsgAMGetUserGameStatsResponse_Achievement_Blocks `protobuf:"bytes,5,rep,name=achievement_blocks,json=achievementBlocks" json:"achievement_blocks,omitempty"` -} - -// Default values for CMsgAMGetUserGameStatsResponse fields. -const ( - Default_CMsgAMGetUserGameStatsResponse_Eresult = int32(2) -) - -func (x *CMsgAMGetUserGameStatsResponse) Reset() { - *x = CMsgAMGetUserGameStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetUserGameStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetUserGameStatsResponse) ProtoMessage() {} - -func (x *CMsgAMGetUserGameStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetUserGameStatsResponse.ProtoReflect.Descriptor instead. -func (*CMsgAMGetUserGameStatsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{12} -} - -func (x *CMsgAMGetUserGameStatsResponse) GetSteamId() uint64 { - if x != nil && x.SteamId != nil { - return *x.SteamId - } - return 0 -} - -func (x *CMsgAMGetUserGameStatsResponse) GetGameId() uint64 { - if x != nil && x.GameId != nil { - return *x.GameId - } - return 0 -} - -func (x *CMsgAMGetUserGameStatsResponse) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgAMGetUserGameStatsResponse_Eresult -} - -func (x *CMsgAMGetUserGameStatsResponse) GetStats() []*CMsgAMGetUserGameStatsResponse_Stats { - if x != nil { - return x.Stats - } - return nil -} - -func (x *CMsgAMGetUserGameStatsResponse) GetAchievementBlocks() []*CMsgAMGetUserGameStatsResponse_Achievement_Blocks { - if x != nil { - return x.AchievementBlocks - } - return nil -} - -type CMsgGCGetCommandList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AppId *uint32 `protobuf:"varint,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` - CommandPrefix *string `protobuf:"bytes,2,opt,name=command_prefix,json=commandPrefix" json:"command_prefix,omitempty"` -} - -func (x *CMsgGCGetCommandList) Reset() { - *x = CMsgGCGetCommandList{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetCommandList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetCommandList) ProtoMessage() {} - -func (x *CMsgGCGetCommandList) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetCommandList.ProtoReflect.Descriptor instead. -func (*CMsgGCGetCommandList) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{13} -} - -func (x *CMsgGCGetCommandList) GetAppId() uint32 { - if x != nil && x.AppId != nil { - return *x.AppId - } - return 0 -} - -func (x *CMsgGCGetCommandList) GetCommandPrefix() string { - if x != nil && x.CommandPrefix != nil { - return *x.CommandPrefix - } - return "" -} - -type CMsgGCGetCommandListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommandName []string `protobuf:"bytes,1,rep,name=command_name,json=commandName" json:"command_name,omitempty"` -} - -func (x *CMsgGCGetCommandListResponse) Reset() { - *x = CMsgGCGetCommandListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetCommandListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetCommandListResponse) ProtoMessage() {} - -func (x *CMsgGCGetCommandListResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetCommandListResponse.ProtoReflect.Descriptor instead. -func (*CMsgGCGetCommandListResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{14} -} - -func (x *CMsgGCGetCommandListResponse) GetCommandName() []string { - if x != nil { - return x.CommandName - } - return nil -} - -type CGCMsgMemCachedGet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Keys []string `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` -} - -func (x *CGCMsgMemCachedGet) Reset() { - *x = CGCMsgMemCachedGet{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedGet) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedGet) ProtoMessage() {} - -func (x *CGCMsgMemCachedGet) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedGet.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedGet) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{15} -} - -func (x *CGCMsgMemCachedGet) GetKeys() []string { - if x != nil { - return x.Keys - } - return nil -} - -type CGCMsgMemCachedGetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Values []*CGCMsgMemCachedGetResponse_ValueTag `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"` -} - -func (x *CGCMsgMemCachedGetResponse) Reset() { - *x = CGCMsgMemCachedGetResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedGetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedGetResponse) ProtoMessage() {} - -func (x *CGCMsgMemCachedGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedGetResponse.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedGetResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{16} -} - -func (x *CGCMsgMemCachedGetResponse) GetValues() []*CGCMsgMemCachedGetResponse_ValueTag { - if x != nil { - return x.Values - } - return nil -} - -type CGCMsgMemCachedSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Keys []*CGCMsgMemCachedSet_KeyPair `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` -} - -func (x *CGCMsgMemCachedSet) Reset() { - *x = CGCMsgMemCachedSet{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedSet) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedSet) ProtoMessage() {} - -func (x *CGCMsgMemCachedSet) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedSet.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedSet) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{17} -} - -func (x *CGCMsgMemCachedSet) GetKeys() []*CGCMsgMemCachedSet_KeyPair { - if x != nil { - return x.Keys - } - return nil -} - -type CGCMsgMemCachedDelete struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Keys []string `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` -} - -func (x *CGCMsgMemCachedDelete) Reset() { - *x = CGCMsgMemCachedDelete{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedDelete) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedDelete) ProtoMessage() {} - -func (x *CGCMsgMemCachedDelete) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedDelete.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedDelete) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{18} -} - -func (x *CGCMsgMemCachedDelete) GetKeys() []string { - if x != nil { - return x.Keys - } - return nil -} - -type CGCMsgMemCachedStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CGCMsgMemCachedStats) Reset() { - *x = CGCMsgMemCachedStats{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedStats) ProtoMessage() {} - -func (x *CGCMsgMemCachedStats) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedStats.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedStats) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{19} -} - -type CGCMsgMemCachedStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CurrConnections *uint64 `protobuf:"varint,1,opt,name=curr_connections,json=currConnections" json:"curr_connections,omitempty"` - CmdGet *uint64 `protobuf:"varint,2,opt,name=cmd_get,json=cmdGet" json:"cmd_get,omitempty"` - CmdSet *uint64 `protobuf:"varint,3,opt,name=cmd_set,json=cmdSet" json:"cmd_set,omitempty"` - CmdFlush *uint64 `protobuf:"varint,4,opt,name=cmd_flush,json=cmdFlush" json:"cmd_flush,omitempty"` - GetHits *uint64 `protobuf:"varint,5,opt,name=get_hits,json=getHits" json:"get_hits,omitempty"` - GetMisses *uint64 `protobuf:"varint,6,opt,name=get_misses,json=getMisses" json:"get_misses,omitempty"` - DeleteHits *uint64 `protobuf:"varint,7,opt,name=delete_hits,json=deleteHits" json:"delete_hits,omitempty"` - DeleteMisses *uint64 `protobuf:"varint,8,opt,name=delete_misses,json=deleteMisses" json:"delete_misses,omitempty"` - BytesRead *uint64 `protobuf:"varint,9,opt,name=bytes_read,json=bytesRead" json:"bytes_read,omitempty"` - BytesWritten *uint64 `protobuf:"varint,10,opt,name=bytes_written,json=bytesWritten" json:"bytes_written,omitempty"` - LimitMaxbytes *uint64 `protobuf:"varint,11,opt,name=limit_maxbytes,json=limitMaxbytes" json:"limit_maxbytes,omitempty"` - CurrItems *uint64 `protobuf:"varint,12,opt,name=curr_items,json=currItems" json:"curr_items,omitempty"` - Evictions *uint64 `protobuf:"varint,13,opt,name=evictions" json:"evictions,omitempty"` - Bytes *uint64 `protobuf:"varint,14,opt,name=bytes" json:"bytes,omitempty"` -} - -func (x *CGCMsgMemCachedStatsResponse) Reset() { - *x = CGCMsgMemCachedStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedStatsResponse) ProtoMessage() {} - -func (x *CGCMsgMemCachedStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedStatsResponse.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedStatsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{20} -} - -func (x *CGCMsgMemCachedStatsResponse) GetCurrConnections() uint64 { - if x != nil && x.CurrConnections != nil { - return *x.CurrConnections - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetCmdGet() uint64 { - if x != nil && x.CmdGet != nil { - return *x.CmdGet - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetCmdSet() uint64 { - if x != nil && x.CmdSet != nil { - return *x.CmdSet - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetCmdFlush() uint64 { - if x != nil && x.CmdFlush != nil { - return *x.CmdFlush - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetGetHits() uint64 { - if x != nil && x.GetHits != nil { - return *x.GetHits - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetGetMisses() uint64 { - if x != nil && x.GetMisses != nil { - return *x.GetMisses - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetDeleteHits() uint64 { - if x != nil && x.DeleteHits != nil { - return *x.DeleteHits - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetDeleteMisses() uint64 { - if x != nil && x.DeleteMisses != nil { - return *x.DeleteMisses - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetBytesRead() uint64 { - if x != nil && x.BytesRead != nil { - return *x.BytesRead - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetBytesWritten() uint64 { - if x != nil && x.BytesWritten != nil { - return *x.BytesWritten - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetLimitMaxbytes() uint64 { - if x != nil && x.LimitMaxbytes != nil { - return *x.LimitMaxbytes - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetCurrItems() uint64 { - if x != nil && x.CurrItems != nil { - return *x.CurrItems - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetEvictions() uint64 { - if x != nil && x.Evictions != nil { - return *x.Evictions - } - return 0 -} - -func (x *CGCMsgMemCachedStatsResponse) GetBytes() uint64 { - if x != nil && x.Bytes != nil { - return *x.Bytes - } - return 0 -} - -type CGCMsgSQLStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SchemaCatalog *uint32 `protobuf:"varint,1,opt,name=schema_catalog,json=schemaCatalog" json:"schema_catalog,omitempty"` -} - -func (x *CGCMsgSQLStats) Reset() { - *x = CGCMsgSQLStats{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgSQLStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgSQLStats) ProtoMessage() {} - -func (x *CGCMsgSQLStats) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgSQLStats.ProtoReflect.Descriptor instead. -func (*CGCMsgSQLStats) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{21} -} - -func (x *CGCMsgSQLStats) GetSchemaCatalog() uint32 { - if x != nil && x.SchemaCatalog != nil { - return *x.SchemaCatalog - } - return 0 -} - -type CGCMsgSQLStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Threads *uint32 `protobuf:"varint,1,opt,name=threads" json:"threads,omitempty"` - ThreadsConnected *uint32 `protobuf:"varint,2,opt,name=threads_connected,json=threadsConnected" json:"threads_connected,omitempty"` - ThreadsActive *uint32 `protobuf:"varint,3,opt,name=threads_active,json=threadsActive" json:"threads_active,omitempty"` - OperationsSubmitted *uint32 `protobuf:"varint,4,opt,name=operations_submitted,json=operationsSubmitted" json:"operations_submitted,omitempty"` - PreparedStatementsExecuted *uint32 `protobuf:"varint,5,opt,name=prepared_statements_executed,json=preparedStatementsExecuted" json:"prepared_statements_executed,omitempty"` - NonPreparedStatementsExecuted *uint32 `protobuf:"varint,6,opt,name=non_prepared_statements_executed,json=nonPreparedStatementsExecuted" json:"non_prepared_statements_executed,omitempty"` - DeadlockRetries *uint32 `protobuf:"varint,7,opt,name=deadlock_retries,json=deadlockRetries" json:"deadlock_retries,omitempty"` - OperationsTimedOutInQueue *uint32 `protobuf:"varint,8,opt,name=operations_timed_out_in_queue,json=operationsTimedOutInQueue" json:"operations_timed_out_in_queue,omitempty"` - Errors *uint32 `protobuf:"varint,9,opt,name=errors" json:"errors,omitempty"` -} - -func (x *CGCMsgSQLStatsResponse) Reset() { - *x = CGCMsgSQLStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgSQLStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgSQLStatsResponse) ProtoMessage() {} - -func (x *CGCMsgSQLStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgSQLStatsResponse.ProtoReflect.Descriptor instead. -func (*CGCMsgSQLStatsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{22} -} - -func (x *CGCMsgSQLStatsResponse) GetThreads() uint32 { - if x != nil && x.Threads != nil { - return *x.Threads - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetThreadsConnected() uint32 { - if x != nil && x.ThreadsConnected != nil { - return *x.ThreadsConnected - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetThreadsActive() uint32 { - if x != nil && x.ThreadsActive != nil { - return *x.ThreadsActive - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetOperationsSubmitted() uint32 { - if x != nil && x.OperationsSubmitted != nil { - return *x.OperationsSubmitted - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetPreparedStatementsExecuted() uint32 { - if x != nil && x.PreparedStatementsExecuted != nil { - return *x.PreparedStatementsExecuted - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetNonPreparedStatementsExecuted() uint32 { - if x != nil && x.NonPreparedStatementsExecuted != nil { - return *x.NonPreparedStatementsExecuted - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetDeadlockRetries() uint32 { - if x != nil && x.DeadlockRetries != nil { - return *x.DeadlockRetries - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetOperationsTimedOutInQueue() uint32 { - if x != nil && x.OperationsTimedOutInQueue != nil { - return *x.OperationsTimedOutInQueue - } - return 0 -} - -func (x *CGCMsgSQLStatsResponse) GetErrors() uint32 { - if x != nil && x.Errors != nil { - return *x.Errors - } - return 0 -} - -type CMsgAMAddFreeLicense struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - IpPublic *uint32 `protobuf:"varint,2,opt,name=ip_public,json=ipPublic" json:"ip_public,omitempty"` - Packageid *uint32 `protobuf:"varint,3,opt,name=packageid" json:"packageid,omitempty"` - StoreCountryCode *string `protobuf:"bytes,4,opt,name=store_country_code,json=storeCountryCode" json:"store_country_code,omitempty"` -} - -func (x *CMsgAMAddFreeLicense) Reset() { - *x = CMsgAMAddFreeLicense{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMAddFreeLicense) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMAddFreeLicense) ProtoMessage() {} - -func (x *CMsgAMAddFreeLicense) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMAddFreeLicense.ProtoReflect.Descriptor instead. -func (*CMsgAMAddFreeLicense) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{23} -} - -func (x *CMsgAMAddFreeLicense) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CMsgAMAddFreeLicense) GetIpPublic() uint32 { - if x != nil && x.IpPublic != nil { - return *x.IpPublic - } - return 0 -} - -func (x *CMsgAMAddFreeLicense) GetPackageid() uint32 { - if x != nil && x.Packageid != nil { - return *x.Packageid - } - return 0 -} - -func (x *CMsgAMAddFreeLicense) GetStoreCountryCode() string { - if x != nil && x.StoreCountryCode != nil { - return *x.StoreCountryCode - } - return "" -} - -type CMsgAMAddFreeLicenseResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` - PurchaseResultDetail *int32 `protobuf:"varint,2,opt,name=purchase_result_detail,json=purchaseResultDetail" json:"purchase_result_detail,omitempty"` - Transid *uint64 `protobuf:"fixed64,3,opt,name=transid" json:"transid,omitempty"` -} - -// Default values for CMsgAMAddFreeLicenseResponse fields. -const ( - Default_CMsgAMAddFreeLicenseResponse_Eresult = int32(2) -) - -func (x *CMsgAMAddFreeLicenseResponse) Reset() { - *x = CMsgAMAddFreeLicenseResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMAddFreeLicenseResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMAddFreeLicenseResponse) ProtoMessage() {} - -func (x *CMsgAMAddFreeLicenseResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMAddFreeLicenseResponse.ProtoReflect.Descriptor instead. -func (*CMsgAMAddFreeLicenseResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{24} -} - -func (x *CMsgAMAddFreeLicenseResponse) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgAMAddFreeLicenseResponse_Eresult -} - -func (x *CMsgAMAddFreeLicenseResponse) GetPurchaseResultDetail() int32 { - if x != nil && x.PurchaseResultDetail != nil { - return *x.PurchaseResultDetail - } - return 0 -} - -func (x *CMsgAMAddFreeLicenseResponse) GetTransid() uint64 { - if x != nil && x.Transid != nil { - return *x.Transid - } - return 0 -} - -type CGCMsgGetIPLocation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ips []uint32 `protobuf:"fixed32,1,rep,name=ips" json:"ips,omitempty"` -} - -func (x *CGCMsgGetIPLocation) Reset() { - *x = CGCMsgGetIPLocation{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgGetIPLocation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgGetIPLocation) ProtoMessage() {} - -func (x *CGCMsgGetIPLocation) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgGetIPLocation.ProtoReflect.Descriptor instead. -func (*CGCMsgGetIPLocation) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{25} -} - -func (x *CGCMsgGetIPLocation) GetIps() []uint32 { - if x != nil { - return x.Ips - } - return nil -} - -type CIPLocationInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ip *uint32 `protobuf:"varint,1,opt,name=ip" json:"ip,omitempty"` - Latitude *float32 `protobuf:"fixed32,2,opt,name=latitude" json:"latitude,omitempty"` - Longitude *float32 `protobuf:"fixed32,3,opt,name=longitude" json:"longitude,omitempty"` - Country *string `protobuf:"bytes,4,opt,name=country" json:"country,omitempty"` - State *string `protobuf:"bytes,5,opt,name=state" json:"state,omitempty"` - City *string `protobuf:"bytes,6,opt,name=city" json:"city,omitempty"` -} - -func (x *CIPLocationInfo) Reset() { - *x = CIPLocationInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CIPLocationInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CIPLocationInfo) ProtoMessage() {} - -func (x *CIPLocationInfo) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CIPLocationInfo.ProtoReflect.Descriptor instead. -func (*CIPLocationInfo) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{26} -} - -func (x *CIPLocationInfo) GetIp() uint32 { - if x != nil && x.Ip != nil { - return *x.Ip - } - return 0 -} - -func (x *CIPLocationInfo) GetLatitude() float32 { - if x != nil && x.Latitude != nil { - return *x.Latitude - } - return 0 -} - -func (x *CIPLocationInfo) GetLongitude() float32 { - if x != nil && x.Longitude != nil { - return *x.Longitude - } - return 0 -} - -func (x *CIPLocationInfo) GetCountry() string { - if x != nil && x.Country != nil { - return *x.Country - } - return "" -} - -func (x *CIPLocationInfo) GetState() string { - if x != nil && x.State != nil { - return *x.State - } - return "" -} - -func (x *CIPLocationInfo) GetCity() string { - if x != nil && x.City != nil { - return *x.City - } - return "" -} - -type CGCMsgGetIPLocationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Infos []*CIPLocationInfo `protobuf:"bytes,1,rep,name=infos" json:"infos,omitempty"` -} - -func (x *CGCMsgGetIPLocationResponse) Reset() { - *x = CGCMsgGetIPLocationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgGetIPLocationResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgGetIPLocationResponse) ProtoMessage() {} - -func (x *CGCMsgGetIPLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgGetIPLocationResponse.ProtoReflect.Descriptor instead. -func (*CGCMsgGetIPLocationResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{27} -} - -func (x *CGCMsgGetIPLocationResponse) GetInfos() []*CIPLocationInfo { - if x != nil { - return x.Infos - } - return nil -} - -type CGCMsgSystemStatsSchema struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GcAppId *uint32 `protobuf:"varint,1,opt,name=gc_app_id,json=gcAppId" json:"gc_app_id,omitempty"` - SchemaKv []byte `protobuf:"bytes,2,opt,name=schema_kv,json=schemaKv" json:"schema_kv,omitempty"` -} - -func (x *CGCMsgSystemStatsSchema) Reset() { - *x = CGCMsgSystemStatsSchema{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgSystemStatsSchema) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgSystemStatsSchema) ProtoMessage() {} - -func (x *CGCMsgSystemStatsSchema) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgSystemStatsSchema.ProtoReflect.Descriptor instead. -func (*CGCMsgSystemStatsSchema) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{28} -} - -func (x *CGCMsgSystemStatsSchema) GetGcAppId() uint32 { - if x != nil && x.GcAppId != nil { - return *x.GcAppId - } - return 0 -} - -func (x *CGCMsgSystemStatsSchema) GetSchemaKv() []byte { - if x != nil { - return x.SchemaKv - } - return nil -} - -type CGCMsgGetSystemStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CGCMsgGetSystemStats) Reset() { - *x = CGCMsgGetSystemStats{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgGetSystemStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgGetSystemStats) ProtoMessage() {} - -func (x *CGCMsgGetSystemStats) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgGetSystemStats.ProtoReflect.Descriptor instead. -func (*CGCMsgGetSystemStats) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{29} -} - -type CGCMsgGetSystemStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GcAppId *uint32 `protobuf:"varint,1,opt,name=gc_app_id,json=gcAppId" json:"gc_app_id,omitempty"` - StatsKv []byte `protobuf:"bytes,2,opt,name=stats_kv,json=statsKv" json:"stats_kv,omitempty"` - ActiveJobs *uint32 `protobuf:"varint,3,opt,name=active_jobs,json=activeJobs" json:"active_jobs,omitempty"` - YieldingJobs *uint32 `protobuf:"varint,4,opt,name=yielding_jobs,json=yieldingJobs" json:"yielding_jobs,omitempty"` - UserSessions *uint32 `protobuf:"varint,5,opt,name=user_sessions,json=userSessions" json:"user_sessions,omitempty"` - GameServerSessions *uint32 `protobuf:"varint,6,opt,name=game_server_sessions,json=gameServerSessions" json:"game_server_sessions,omitempty"` - Socaches *uint32 `protobuf:"varint,7,opt,name=socaches" json:"socaches,omitempty"` - SocachesToUnload *uint32 `protobuf:"varint,8,opt,name=socaches_to_unload,json=socachesToUnload" json:"socaches_to_unload,omitempty"` - SocachesLoading *uint32 `protobuf:"varint,9,opt,name=socaches_loading,json=socachesLoading" json:"socaches_loading,omitempty"` - WritebackQueue *uint32 `protobuf:"varint,10,opt,name=writeback_queue,json=writebackQueue" json:"writeback_queue,omitempty"` - SteamidLocks *uint32 `protobuf:"varint,11,opt,name=steamid_locks,json=steamidLocks" json:"steamid_locks,omitempty"` - LogonQueue *uint32 `protobuf:"varint,12,opt,name=logon_queue,json=logonQueue" json:"logon_queue,omitempty"` - LogonJobs *uint32 `protobuf:"varint,13,opt,name=logon_jobs,json=logonJobs" json:"logon_jobs,omitempty"` -} - -func (x *CGCMsgGetSystemStatsResponse) Reset() { - *x = CGCMsgGetSystemStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgGetSystemStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgGetSystemStatsResponse) ProtoMessage() {} - -func (x *CGCMsgGetSystemStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgGetSystemStatsResponse.ProtoReflect.Descriptor instead. -func (*CGCMsgGetSystemStatsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{30} -} - -func (x *CGCMsgGetSystemStatsResponse) GetGcAppId() uint32 { - if x != nil && x.GcAppId != nil { - return *x.GcAppId - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetStatsKv() []byte { - if x != nil { - return x.StatsKv - } - return nil -} - -func (x *CGCMsgGetSystemStatsResponse) GetActiveJobs() uint32 { - if x != nil && x.ActiveJobs != nil { - return *x.ActiveJobs - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetYieldingJobs() uint32 { - if x != nil && x.YieldingJobs != nil { - return *x.YieldingJobs - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetUserSessions() uint32 { - if x != nil && x.UserSessions != nil { - return *x.UserSessions - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetGameServerSessions() uint32 { - if x != nil && x.GameServerSessions != nil { - return *x.GameServerSessions - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetSocaches() uint32 { - if x != nil && x.Socaches != nil { - return *x.Socaches - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetSocachesToUnload() uint32 { - if x != nil && x.SocachesToUnload != nil { - return *x.SocachesToUnload - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetSocachesLoading() uint32 { - if x != nil && x.SocachesLoading != nil { - return *x.SocachesLoading - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetWritebackQueue() uint32 { - if x != nil && x.WritebackQueue != nil { - return *x.WritebackQueue - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetSteamidLocks() uint32 { - if x != nil && x.SteamidLocks != nil { - return *x.SteamidLocks - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetLogonQueue() uint32 { - if x != nil && x.LogonQueue != nil { - return *x.LogonQueue - } - return 0 -} - -func (x *CGCMsgGetSystemStatsResponse) GetLogonJobs() uint32 { - if x != nil && x.LogonJobs != nil { - return *x.LogonJobs - } - return 0 -} - -type CMsgAMSendEmail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - EmailMsgType *uint32 `protobuf:"varint,2,opt,name=email_msg_type,json=emailMsgType" json:"email_msg_type,omitempty"` - EmailFormat *uint32 `protobuf:"varint,3,opt,name=email_format,json=emailFormat" json:"email_format,omitempty"` - PersonaNameTokens []*CMsgAMSendEmail_PersonaNameReplacementToken `protobuf:"bytes,5,rep,name=persona_name_tokens,json=personaNameTokens" json:"persona_name_tokens,omitempty"` - SourceGc *uint32 `protobuf:"varint,6,opt,name=source_gc,json=sourceGc" json:"source_gc,omitempty"` - Tokens []*CMsgAMSendEmail_ReplacementToken `protobuf:"bytes,7,rep,name=tokens" json:"tokens,omitempty"` -} - -func (x *CMsgAMSendEmail) Reset() { - *x = CMsgAMSendEmail{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMSendEmail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMSendEmail) ProtoMessage() {} - -func (x *CMsgAMSendEmail) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMSendEmail.ProtoReflect.Descriptor instead. -func (*CMsgAMSendEmail) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{31} -} - -func (x *CMsgAMSendEmail) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CMsgAMSendEmail) GetEmailMsgType() uint32 { - if x != nil && x.EmailMsgType != nil { - return *x.EmailMsgType - } - return 0 -} - -func (x *CMsgAMSendEmail) GetEmailFormat() uint32 { - if x != nil && x.EmailFormat != nil { - return *x.EmailFormat - } - return 0 -} - -func (x *CMsgAMSendEmail) GetPersonaNameTokens() []*CMsgAMSendEmail_PersonaNameReplacementToken { - if x != nil { - return x.PersonaNameTokens - } - return nil -} - -func (x *CMsgAMSendEmail) GetSourceGc() uint32 { - if x != nil && x.SourceGc != nil { - return *x.SourceGc - } - return 0 -} - -func (x *CMsgAMSendEmail) GetTokens() []*CMsgAMSendEmail_ReplacementToken { - if x != nil { - return x.Tokens - } - return nil -} - -type CMsgAMSendEmailResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` -} - -// Default values for CMsgAMSendEmailResponse fields. -const ( - Default_CMsgAMSendEmailResponse_Eresult = uint32(2) -) - -func (x *CMsgAMSendEmailResponse) Reset() { - *x = CMsgAMSendEmailResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMSendEmailResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMSendEmailResponse) ProtoMessage() {} - -func (x *CMsgAMSendEmailResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMSendEmailResponse.ProtoReflect.Descriptor instead. -func (*CMsgAMSendEmailResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{32} -} - -func (x *CMsgAMSendEmailResponse) GetEresult() uint32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgAMSendEmailResponse_Eresult -} - -type CMsgGCGetEmailTemplate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AppId *uint32 `protobuf:"varint,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` - EmailMsgType *uint32 `protobuf:"varint,2,opt,name=email_msg_type,json=emailMsgType" json:"email_msg_type,omitempty"` - EmailLang *int32 `protobuf:"varint,3,opt,name=email_lang,json=emailLang" json:"email_lang,omitempty"` - EmailFormat *int32 `protobuf:"varint,4,opt,name=email_format,json=emailFormat" json:"email_format,omitempty"` -} - -func (x *CMsgGCGetEmailTemplate) Reset() { - *x = CMsgGCGetEmailTemplate{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetEmailTemplate) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetEmailTemplate) ProtoMessage() {} - -func (x *CMsgGCGetEmailTemplate) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetEmailTemplate.ProtoReflect.Descriptor instead. -func (*CMsgGCGetEmailTemplate) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{33} -} - -func (x *CMsgGCGetEmailTemplate) GetAppId() uint32 { - if x != nil && x.AppId != nil { - return *x.AppId - } - return 0 -} - -func (x *CMsgGCGetEmailTemplate) GetEmailMsgType() uint32 { - if x != nil && x.EmailMsgType != nil { - return *x.EmailMsgType - } - return 0 -} - -func (x *CMsgGCGetEmailTemplate) GetEmailLang() int32 { - if x != nil && x.EmailLang != nil { - return *x.EmailLang - } - return 0 -} - -func (x *CMsgGCGetEmailTemplate) GetEmailFormat() int32 { - if x != nil && x.EmailFormat != nil { - return *x.EmailFormat - } - return 0 -} - -type CMsgGCGetEmailTemplateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` - TemplateExists *bool `protobuf:"varint,2,opt,name=template_exists,json=templateExists" json:"template_exists,omitempty"` - Template *string `protobuf:"bytes,3,opt,name=template" json:"template,omitempty"` -} - -// Default values for CMsgGCGetEmailTemplateResponse fields. -const ( - Default_CMsgGCGetEmailTemplateResponse_Eresult = uint32(2) -) - -func (x *CMsgGCGetEmailTemplateResponse) Reset() { - *x = CMsgGCGetEmailTemplateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetEmailTemplateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetEmailTemplateResponse) ProtoMessage() {} - -func (x *CMsgGCGetEmailTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetEmailTemplateResponse.ProtoReflect.Descriptor instead. -func (*CMsgGCGetEmailTemplateResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{34} -} - -func (x *CMsgGCGetEmailTemplateResponse) GetEresult() uint32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgGCGetEmailTemplateResponse_Eresult -} - -func (x *CMsgGCGetEmailTemplateResponse) GetTemplateExists() bool { - if x != nil && x.TemplateExists != nil { - return *x.TemplateExists - } - return false -} - -func (x *CMsgGCGetEmailTemplateResponse) GetTemplate() string { - if x != nil && x.Template != nil { - return *x.Template - } - return "" -} - -type CMsgAMGrantGuestPasses2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - PackageId *uint32 `protobuf:"varint,2,opt,name=package_id,json=packageId" json:"package_id,omitempty"` - PassesToGrant *int32 `protobuf:"varint,3,opt,name=passes_to_grant,json=passesToGrant" json:"passes_to_grant,omitempty"` - DaysToExpiration *int32 `protobuf:"varint,4,opt,name=days_to_expiration,json=daysToExpiration" json:"days_to_expiration,omitempty"` - Action *int32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` -} - -func (x *CMsgAMGrantGuestPasses2) Reset() { - *x = CMsgAMGrantGuestPasses2{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGrantGuestPasses2) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGrantGuestPasses2) ProtoMessage() {} - -func (x *CMsgAMGrantGuestPasses2) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGrantGuestPasses2.ProtoReflect.Descriptor instead. -func (*CMsgAMGrantGuestPasses2) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{35} -} - -func (x *CMsgAMGrantGuestPasses2) GetSteamId() uint64 { - if x != nil && x.SteamId != nil { - return *x.SteamId - } - return 0 -} - -func (x *CMsgAMGrantGuestPasses2) GetPackageId() uint32 { - if x != nil && x.PackageId != nil { - return *x.PackageId - } - return 0 -} - -func (x *CMsgAMGrantGuestPasses2) GetPassesToGrant() int32 { - if x != nil && x.PassesToGrant != nil { - return *x.PassesToGrant - } - return 0 -} - -func (x *CMsgAMGrantGuestPasses2) GetDaysToExpiration() int32 { - if x != nil && x.DaysToExpiration != nil { - return *x.DaysToExpiration - } - return 0 -} - -func (x *CMsgAMGrantGuestPasses2) GetAction() int32 { - if x != nil && x.Action != nil { - return *x.Action - } - return 0 -} - -type CMsgAMGrantGuestPasses2Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` - PassesGranted *int32 `protobuf:"varint,2,opt,name=passes_granted,json=passesGranted,def=0" json:"passes_granted,omitempty"` -} - -// Default values for CMsgAMGrantGuestPasses2Response fields. -const ( - Default_CMsgAMGrantGuestPasses2Response_Eresult = int32(2) - Default_CMsgAMGrantGuestPasses2Response_PassesGranted = int32(0) -) - -func (x *CMsgAMGrantGuestPasses2Response) Reset() { - *x = CMsgAMGrantGuestPasses2Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGrantGuestPasses2Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGrantGuestPasses2Response) ProtoMessage() {} - -func (x *CMsgAMGrantGuestPasses2Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGrantGuestPasses2Response.ProtoReflect.Descriptor instead. -func (*CMsgAMGrantGuestPasses2Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{36} -} - -func (x *CMsgAMGrantGuestPasses2Response) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgAMGrantGuestPasses2Response_Eresult -} - -func (x *CMsgAMGrantGuestPasses2Response) GetPassesGranted() int32 { - if x != nil && x.PassesGranted != nil { - return *x.PassesGranted - } - return Default_CMsgAMGrantGuestPasses2Response_PassesGranted -} - -type CGCSystemMsg_GetAccountDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - Appid *uint32 `protobuf:"varint,2,opt,name=appid" json:"appid,omitempty"` -} - -func (x *CGCSystemMsg_GetAccountDetails) Reset() { - *x = CGCSystemMsg_GetAccountDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCSystemMsg_GetAccountDetails) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCSystemMsg_GetAccountDetails) ProtoMessage() {} - -func (x *CGCSystemMsg_GetAccountDetails) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCSystemMsg_GetAccountDetails.ProtoReflect.Descriptor instead. -func (*CGCSystemMsg_GetAccountDetails) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{37} -} - -func (x *CGCSystemMsg_GetAccountDetails) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails) GetAppid() uint32 { - if x != nil && x.Appid != nil { - return *x.Appid - } - return 0 -} - -type CGCSystemMsg_GetAccountDetails_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EresultDeprecated *uint32 `protobuf:"varint,1,opt,name=eresult_deprecated,json=eresultDeprecated,def=2" json:"eresult_deprecated,omitempty"` - AccountName *string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` - PersonaName *string `protobuf:"bytes,3,opt,name=persona_name,json=personaName" json:"persona_name,omitempty"` - IsProfilePublic *bool `protobuf:"varint,4,opt,name=is_profile_public,json=isProfilePublic" json:"is_profile_public,omitempty"` - IsInventoryPublic *bool `protobuf:"varint,5,opt,name=is_inventory_public,json=isInventoryPublic" json:"is_inventory_public,omitempty"` - IsVacBanned *bool `protobuf:"varint,7,opt,name=is_vac_banned,json=isVacBanned" json:"is_vac_banned,omitempty"` - IsCyberCafe *bool `protobuf:"varint,8,opt,name=is_cyber_cafe,json=isCyberCafe" json:"is_cyber_cafe,omitempty"` - IsSchoolAccount *bool `protobuf:"varint,9,opt,name=is_school_account,json=isSchoolAccount" json:"is_school_account,omitempty"` - IsLimited *bool `protobuf:"varint,10,opt,name=is_limited,json=isLimited" json:"is_limited,omitempty"` - IsSubscribed *bool `protobuf:"varint,11,opt,name=is_subscribed,json=isSubscribed" json:"is_subscribed,omitempty"` - Package *uint32 `protobuf:"varint,12,opt,name=package" json:"package,omitempty"` - IsFreeTrialAccount *bool `protobuf:"varint,13,opt,name=is_free_trial_account,json=isFreeTrialAccount" json:"is_free_trial_account,omitempty"` - FreeTrialExpiration *uint32 `protobuf:"varint,14,opt,name=free_trial_expiration,json=freeTrialExpiration" json:"free_trial_expiration,omitempty"` - IsLowViolence *bool `protobuf:"varint,15,opt,name=is_low_violence,json=isLowViolence" json:"is_low_violence,omitempty"` - IsAccountLockedDown *bool `protobuf:"varint,16,opt,name=is_account_locked_down,json=isAccountLockedDown" json:"is_account_locked_down,omitempty"` - IsCommunityBanned *bool `protobuf:"varint,17,opt,name=is_community_banned,json=isCommunityBanned" json:"is_community_banned,omitempty"` - IsTradeBanned *bool `protobuf:"varint,18,opt,name=is_trade_banned,json=isTradeBanned" json:"is_trade_banned,omitempty"` - TradeBanExpiration *uint32 `protobuf:"varint,19,opt,name=trade_ban_expiration,json=tradeBanExpiration" json:"trade_ban_expiration,omitempty"` - Accountid *uint32 `protobuf:"varint,20,opt,name=accountid" json:"accountid,omitempty"` - SuspensionEndTime *uint32 `protobuf:"varint,21,opt,name=suspension_end_time,json=suspensionEndTime" json:"suspension_end_time,omitempty"` - Currency *string `protobuf:"bytes,22,opt,name=currency" json:"currency,omitempty"` - SteamLevel *uint32 `protobuf:"varint,23,opt,name=steam_level,json=steamLevel" json:"steam_level,omitempty"` - FriendCount *uint32 `protobuf:"varint,24,opt,name=friend_count,json=friendCount" json:"friend_count,omitempty"` - AccountCreationTime *uint32 `protobuf:"varint,25,opt,name=account_creation_time,json=accountCreationTime" json:"account_creation_time,omitempty"` - IsSteamguardEnabled *bool `protobuf:"varint,27,opt,name=is_steamguard_enabled,json=isSteamguardEnabled" json:"is_steamguard_enabled,omitempty"` - IsPhoneVerified *bool `protobuf:"varint,28,opt,name=is_phone_verified,json=isPhoneVerified" json:"is_phone_verified,omitempty"` - IsTwoFactorAuthEnabled *bool `protobuf:"varint,29,opt,name=is_two_factor_auth_enabled,json=isTwoFactorAuthEnabled" json:"is_two_factor_auth_enabled,omitempty"` - TwoFactorEnabledTime *uint32 `protobuf:"varint,30,opt,name=two_factor_enabled_time,json=twoFactorEnabledTime" json:"two_factor_enabled_time,omitempty"` - PhoneVerificationTime *uint32 `protobuf:"varint,31,opt,name=phone_verification_time,json=phoneVerificationTime" json:"phone_verification_time,omitempty"` - PhoneId *uint64 `protobuf:"varint,33,opt,name=phone_id,json=phoneId" json:"phone_id,omitempty"` - IsPhoneIdentifying *bool `protobuf:"varint,34,opt,name=is_phone_identifying,json=isPhoneIdentifying" json:"is_phone_identifying,omitempty"` - RtIdentityLinked *uint32 `protobuf:"varint,35,opt,name=rt_identity_linked,json=rtIdentityLinked" json:"rt_identity_linked,omitempty"` - RtBirthDate *uint32 `protobuf:"varint,36,opt,name=rt_birth_date,json=rtBirthDate" json:"rt_birth_date,omitempty"` - TxnCountryCode *string `protobuf:"bytes,37,opt,name=txn_country_code,json=txnCountryCode" json:"txn_country_code,omitempty"` - HasAcceptedChinaSsa *bool `protobuf:"varint,38,opt,name=has_accepted_china_ssa,json=hasAcceptedChinaSsa" json:"has_accepted_china_ssa,omitempty"` - IsBannedSteamChina *bool `protobuf:"varint,39,opt,name=is_banned_steam_china,json=isBannedSteamChina" json:"is_banned_steam_china,omitempty"` -} - -// Default values for CGCSystemMsg_GetAccountDetails_Response fields. -const ( - Default_CGCSystemMsg_GetAccountDetails_Response_EresultDeprecated = uint32(2) -) - -func (x *CGCSystemMsg_GetAccountDetails_Response) Reset() { - *x = CGCSystemMsg_GetAccountDetails_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCSystemMsg_GetAccountDetails_Response) ProtoMessage() {} - -func (x *CGCSystemMsg_GetAccountDetails_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCSystemMsg_GetAccountDetails_Response.ProtoReflect.Descriptor instead. -func (*CGCSystemMsg_GetAccountDetails_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{38} -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetEresultDeprecated() uint32 { - if x != nil && x.EresultDeprecated != nil { - return *x.EresultDeprecated - } - return Default_CGCSystemMsg_GetAccountDetails_Response_EresultDeprecated -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountName() string { - if x != nil && x.AccountName != nil { - return *x.AccountName - } - return "" -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetPersonaName() string { - if x != nil && x.PersonaName != nil { - return *x.PersonaName - } - return "" -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsProfilePublic() bool { - if x != nil && x.IsProfilePublic != nil { - return *x.IsProfilePublic - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsInventoryPublic() bool { - if x != nil && x.IsInventoryPublic != nil { - return *x.IsInventoryPublic - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsVacBanned() bool { - if x != nil && x.IsVacBanned != nil { - return *x.IsVacBanned - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsCyberCafe() bool { - if x != nil && x.IsCyberCafe != nil { - return *x.IsCyberCafe - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSchoolAccount() bool { - if x != nil && x.IsSchoolAccount != nil { - return *x.IsSchoolAccount - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsLimited() bool { - if x != nil && x.IsLimited != nil { - return *x.IsLimited - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSubscribed() bool { - if x != nil && x.IsSubscribed != nil { - return *x.IsSubscribed - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetPackage() uint32 { - if x != nil && x.Package != nil { - return *x.Package - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsFreeTrialAccount() bool { - if x != nil && x.IsFreeTrialAccount != nil { - return *x.IsFreeTrialAccount - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetFreeTrialExpiration() uint32 { - if x != nil && x.FreeTrialExpiration != nil { - return *x.FreeTrialExpiration - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsLowViolence() bool { - if x != nil && x.IsLowViolence != nil { - return *x.IsLowViolence - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsAccountLockedDown() bool { - if x != nil && x.IsAccountLockedDown != nil { - return *x.IsAccountLockedDown - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsCommunityBanned() bool { - if x != nil && x.IsCommunityBanned != nil { - return *x.IsCommunityBanned - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsTradeBanned() bool { - if x != nil && x.IsTradeBanned != nil { - return *x.IsTradeBanned - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetTradeBanExpiration() uint32 { - if x != nil && x.TradeBanExpiration != nil { - return *x.TradeBanExpiration - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountid() uint32 { - if x != nil && x.Accountid != nil { - return *x.Accountid - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetSuspensionEndTime() uint32 { - if x != nil && x.SuspensionEndTime != nil { - return *x.SuspensionEndTime - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetCurrency() string { - if x != nil && x.Currency != nil { - return *x.Currency - } - return "" -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetSteamLevel() uint32 { - if x != nil && x.SteamLevel != nil { - return *x.SteamLevel - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetFriendCount() uint32 { - if x != nil && x.FriendCount != nil { - return *x.FriendCount - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountCreationTime() uint32 { - if x != nil && x.AccountCreationTime != nil { - return *x.AccountCreationTime - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSteamguardEnabled() bool { - if x != nil && x.IsSteamguardEnabled != nil { - return *x.IsSteamguardEnabled - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsPhoneVerified() bool { - if x != nil && x.IsPhoneVerified != nil { - return *x.IsPhoneVerified - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsTwoFactorAuthEnabled() bool { - if x != nil && x.IsTwoFactorAuthEnabled != nil { - return *x.IsTwoFactorAuthEnabled - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetTwoFactorEnabledTime() uint32 { - if x != nil && x.TwoFactorEnabledTime != nil { - return *x.TwoFactorEnabledTime - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetPhoneVerificationTime() uint32 { - if x != nil && x.PhoneVerificationTime != nil { - return *x.PhoneVerificationTime - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetPhoneId() uint64 { - if x != nil && x.PhoneId != nil { - return *x.PhoneId - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsPhoneIdentifying() bool { - if x != nil && x.IsPhoneIdentifying != nil { - return *x.IsPhoneIdentifying - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetRtIdentityLinked() uint32 { - if x != nil && x.RtIdentityLinked != nil { - return *x.RtIdentityLinked - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetRtBirthDate() uint32 { - if x != nil && x.RtBirthDate != nil { - return *x.RtBirthDate - } - return 0 -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetTxnCountryCode() string { - if x != nil && x.TxnCountryCode != nil { - return *x.TxnCountryCode - } - return "" -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetHasAcceptedChinaSsa() bool { - if x != nil && x.HasAcceptedChinaSsa != nil { - return *x.HasAcceptedChinaSsa - } - return false -} - -func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsBannedSteamChina() bool { - if x != nil && x.IsBannedSteamChina != nil { - return *x.IsBannedSteamChina - } - return false -} - -type CMsgGCGetPersonaNames struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamids []uint64 `protobuf:"fixed64,1,rep,name=steamids" json:"steamids,omitempty"` -} - -func (x *CMsgGCGetPersonaNames) Reset() { - *x = CMsgGCGetPersonaNames{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetPersonaNames) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetPersonaNames) ProtoMessage() {} - -func (x *CMsgGCGetPersonaNames) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetPersonaNames.ProtoReflect.Descriptor instead. -func (*CMsgGCGetPersonaNames) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{39} -} - -func (x *CMsgGCGetPersonaNames) GetSteamids() []uint64 { - if x != nil { - return x.Steamids - } - return nil -} - -type CMsgGCGetPersonaNames_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SucceededLookups []*CMsgGCGetPersonaNames_Response_PersonaName `protobuf:"bytes,1,rep,name=succeeded_lookups,json=succeededLookups" json:"succeeded_lookups,omitempty"` - FailedLookupSteamids []uint64 `protobuf:"fixed64,2,rep,name=failed_lookup_steamids,json=failedLookupSteamids" json:"failed_lookup_steamids,omitempty"` -} - -func (x *CMsgGCGetPersonaNames_Response) Reset() { - *x = CMsgGCGetPersonaNames_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetPersonaNames_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetPersonaNames_Response) ProtoMessage() {} - -func (x *CMsgGCGetPersonaNames_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetPersonaNames_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCGetPersonaNames_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{40} -} - -func (x *CMsgGCGetPersonaNames_Response) GetSucceededLookups() []*CMsgGCGetPersonaNames_Response_PersonaName { - if x != nil { - return x.SucceededLookups - } - return nil -} - -func (x *CMsgGCGetPersonaNames_Response) GetFailedLookupSteamids() []uint64 { - if x != nil { - return x.FailedLookupSteamids - } - return nil -} - -type CMsgGCCheckFriendship struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamidLeft *uint64 `protobuf:"fixed64,1,opt,name=steamid_left,json=steamidLeft" json:"steamid_left,omitempty"` - SteamidRight *uint64 `protobuf:"fixed64,2,opt,name=steamid_right,json=steamidRight" json:"steamid_right,omitempty"` -} - -func (x *CMsgGCCheckFriendship) Reset() { - *x = CMsgGCCheckFriendship{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCCheckFriendship) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCCheckFriendship) ProtoMessage() {} - -func (x *CMsgGCCheckFriendship) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCCheckFriendship.ProtoReflect.Descriptor instead. -func (*CMsgGCCheckFriendship) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{41} -} - -func (x *CMsgGCCheckFriendship) GetSteamidLeft() uint64 { - if x != nil && x.SteamidLeft != nil { - return *x.SteamidLeft - } - return 0 -} - -func (x *CMsgGCCheckFriendship) GetSteamidRight() uint64 { - if x != nil && x.SteamidRight != nil { - return *x.SteamidRight - } - return 0 -} - -type CMsgGCCheckFriendship_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success *bool `protobuf:"varint,1,opt,name=success" json:"success,omitempty"` - FoundFriendship *bool `protobuf:"varint,2,opt,name=found_friendship,json=foundFriendship" json:"found_friendship,omitempty"` -} - -func (x *CMsgGCCheckFriendship_Response) Reset() { - *x = CMsgGCCheckFriendship_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCCheckFriendship_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCCheckFriendship_Response) ProtoMessage() {} - -func (x *CMsgGCCheckFriendship_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCCheckFriendship_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCCheckFriendship_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{42} -} - -func (x *CMsgGCCheckFriendship_Response) GetSuccess() bool { - if x != nil && x.Success != nil { - return *x.Success - } - return false -} - -func (x *CMsgGCCheckFriendship_Response) GetFoundFriendship() bool { - if x != nil && x.FoundFriendship != nil { - return *x.FoundFriendship - } - return false -} - -type CMsgGCMsgMasterSetDirectory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MasterDirIndex *uint32 `protobuf:"varint,1,opt,name=master_dir_index,json=masterDirIndex" json:"master_dir_index,omitempty"` - Dir []*CMsgGCMsgMasterSetDirectory_SubGC `protobuf:"bytes,2,rep,name=dir" json:"dir,omitempty"` -} - -func (x *CMsgGCMsgMasterSetDirectory) Reset() { - *x = CMsgGCMsgMasterSetDirectory{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetDirectory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetDirectory) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetDirectory) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetDirectory.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetDirectory) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{43} -} - -func (x *CMsgGCMsgMasterSetDirectory) GetMasterDirIndex() uint32 { - if x != nil && x.MasterDirIndex != nil { - return *x.MasterDirIndex - } - return 0 -} - -func (x *CMsgGCMsgMasterSetDirectory) GetDir() []*CMsgGCMsgMasterSetDirectory_SubGC { - if x != nil { - return x.Dir - } - return nil -} - -type CMsgGCMsgMasterSetDirectory_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` -} - -// Default values for CMsgGCMsgMasterSetDirectory_Response fields. -const ( - Default_CMsgGCMsgMasterSetDirectory_Response_Eresult = int32(2) -) - -func (x *CMsgGCMsgMasterSetDirectory_Response) Reset() { - *x = CMsgGCMsgMasterSetDirectory_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetDirectory_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetDirectory_Response) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetDirectory_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetDirectory_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetDirectory_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{44} -} - -func (x *CMsgGCMsgMasterSetDirectory_Response) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgGCMsgMasterSetDirectory_Response_Eresult -} - -func (x *CMsgGCMsgMasterSetDirectory_Response) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message - } - return "" -} - -type CMsgGCMsgWebAPIJobRequestForwardResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DirIndex *uint32 `protobuf:"varint,1,opt,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` -} - -func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) Reset() { - *x = CMsgGCMsgWebAPIJobRequestForwardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgWebAPIJobRequestForwardResponse) ProtoMessage() {} - -func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgWebAPIJobRequestForwardResponse.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgWebAPIJobRequestForwardResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{45} -} - -func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) GetDirIndex() uint32 { - if x != nil && x.DirIndex != nil { - return *x.DirIndex - } - return 0 -} - -type CGCSystemMsg_GetPurchaseTrust_Request struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Request) Reset() { - *x = CGCSystemMsg_GetPurchaseTrust_Request{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Request) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCSystemMsg_GetPurchaseTrust_Request) ProtoMessage() {} - -func (x *CGCSystemMsg_GetPurchaseTrust_Request) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCSystemMsg_GetPurchaseTrust_Request.ProtoReflect.Descriptor instead. -func (*CGCSystemMsg_GetPurchaseTrust_Request) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{46} -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Request) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -type CGCSystemMsg_GetPurchaseTrust_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HasPriorPurchaseHistory *bool `protobuf:"varint,1,opt,name=has_prior_purchase_history,json=hasPriorPurchaseHistory" json:"has_prior_purchase_history,omitempty"` - HasNoRecentPasswordResets *bool `protobuf:"varint,2,opt,name=has_no_recent_password_resets,json=hasNoRecentPasswordResets" json:"has_no_recent_password_resets,omitempty"` - IsWalletCashTrusted *bool `protobuf:"varint,3,opt,name=is_wallet_cash_trusted,json=isWalletCashTrusted" json:"is_wallet_cash_trusted,omitempty"` - TimeAllTrusted *uint32 `protobuf:"varint,4,opt,name=time_all_trusted,json=timeAllTrusted" json:"time_all_trusted,omitempty"` -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) Reset() { - *x = CGCSystemMsg_GetPurchaseTrust_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCSystemMsg_GetPurchaseTrust_Response) ProtoMessage() {} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCSystemMsg_GetPurchaseTrust_Response.ProtoReflect.Descriptor instead. -func (*CGCSystemMsg_GetPurchaseTrust_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{47} -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetHasPriorPurchaseHistory() bool { - if x != nil && x.HasPriorPurchaseHistory != nil { - return *x.HasPriorPurchaseHistory - } - return false -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetHasNoRecentPasswordResets() bool { - if x != nil && x.HasNoRecentPasswordResets != nil { - return *x.HasNoRecentPasswordResets - } - return false -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetIsWalletCashTrusted() bool { - if x != nil && x.IsWalletCashTrusted != nil { - return *x.IsWalletCashTrusted - } - return false -} - -func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetTimeAllTrusted() uint32 { - if x != nil && x.TimeAllTrusted != nil { - return *x.TimeAllTrusted - } - return 0 -} - -type CMsgGCHAccountVacStatusChange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - AppId *uint32 `protobuf:"varint,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` - RtimeVacbanStarts *uint32 `protobuf:"varint,3,opt,name=rtime_vacban_starts,json=rtimeVacbanStarts" json:"rtime_vacban_starts,omitempty"` - IsBannedNow *bool `protobuf:"varint,4,opt,name=is_banned_now,json=isBannedNow" json:"is_banned_now,omitempty"` - IsBannedFuture *bool `protobuf:"varint,5,opt,name=is_banned_future,json=isBannedFuture" json:"is_banned_future,omitempty"` -} - -func (x *CMsgGCHAccountVacStatusChange) Reset() { - *x = CMsgGCHAccountVacStatusChange{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCHAccountVacStatusChange) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCHAccountVacStatusChange) ProtoMessage() {} - -func (x *CMsgGCHAccountVacStatusChange) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCHAccountVacStatusChange.ProtoReflect.Descriptor instead. -func (*CMsgGCHAccountVacStatusChange) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{48} -} - -func (x *CMsgGCHAccountVacStatusChange) GetSteamId() uint64 { - if x != nil && x.SteamId != nil { - return *x.SteamId - } - return 0 -} - -func (x *CMsgGCHAccountVacStatusChange) GetAppId() uint32 { - if x != nil && x.AppId != nil { - return *x.AppId - } - return 0 -} - -func (x *CMsgGCHAccountVacStatusChange) GetRtimeVacbanStarts() uint32 { - if x != nil && x.RtimeVacbanStarts != nil { - return *x.RtimeVacbanStarts - } - return 0 -} - -func (x *CMsgGCHAccountVacStatusChange) GetIsBannedNow() bool { - if x != nil && x.IsBannedNow != nil { - return *x.IsBannedNow - } - return false -} - -func (x *CMsgGCHAccountVacStatusChange) GetIsBannedFuture() bool { - if x != nil && x.IsBannedFuture != nil { - return *x.IsBannedFuture - } - return false -} - -type CMsgGCGetPartnerAccountLink struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` -} - -func (x *CMsgGCGetPartnerAccountLink) Reset() { - *x = CMsgGCGetPartnerAccountLink{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetPartnerAccountLink) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetPartnerAccountLink) ProtoMessage() {} - -func (x *CMsgGCGetPartnerAccountLink) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetPartnerAccountLink.ProtoReflect.Descriptor instead. -func (*CMsgGCGetPartnerAccountLink) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{49} -} - -func (x *CMsgGCGetPartnerAccountLink) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -type CMsgGCGetPartnerAccountLink_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pwid *uint32 `protobuf:"varint,1,opt,name=pwid" json:"pwid,omitempty"` - Nexonid *uint32 `protobuf:"varint,2,opt,name=nexonid" json:"nexonid,omitempty"` - Ageclass *int32 `protobuf:"varint,3,opt,name=ageclass" json:"ageclass,omitempty"` - IdVerified *bool `protobuf:"varint,4,opt,name=id_verified,json=idVerified,def=1" json:"id_verified,omitempty"` - IsAdult *bool `protobuf:"varint,5,opt,name=is_adult,json=isAdult" json:"is_adult,omitempty"` -} - -// Default values for CMsgGCGetPartnerAccountLink_Response fields. -const ( - Default_CMsgGCGetPartnerAccountLink_Response_IdVerified = bool(true) -) - -func (x *CMsgGCGetPartnerAccountLink_Response) Reset() { - *x = CMsgGCGetPartnerAccountLink_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetPartnerAccountLink_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetPartnerAccountLink_Response) ProtoMessage() {} - -func (x *CMsgGCGetPartnerAccountLink_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetPartnerAccountLink_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCGetPartnerAccountLink_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{50} -} - -func (x *CMsgGCGetPartnerAccountLink_Response) GetPwid() uint32 { - if x != nil && x.Pwid != nil { - return *x.Pwid - } - return 0 -} - -func (x *CMsgGCGetPartnerAccountLink_Response) GetNexonid() uint32 { - if x != nil && x.Nexonid != nil { - return *x.Nexonid - } - return 0 -} - -func (x *CMsgGCGetPartnerAccountLink_Response) GetAgeclass() int32 { - if x != nil && x.Ageclass != nil { - return *x.Ageclass - } - return 0 -} - -func (x *CMsgGCGetPartnerAccountLink_Response) GetIdVerified() bool { - if x != nil && x.IdVerified != nil { - return *x.IdVerified - } - return Default_CMsgGCGetPartnerAccountLink_Response_IdVerified -} - -func (x *CMsgGCGetPartnerAccountLink_Response) GetIsAdult() bool { - if x != nil && x.IsAdult != nil { - return *x.IsAdult - } - return false -} - -type CMsgGCRoutingInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DirIndex []uint32 `protobuf:"varint,1,rep,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` - Method *CMsgGCRoutingInfo_RoutingMethod `protobuf:"varint,2,opt,name=method,enum=CMsgGCRoutingInfo_RoutingMethod,def=0" json:"method,omitempty"` - Fallback *CMsgGCRoutingInfo_RoutingMethod `protobuf:"varint,3,opt,name=fallback,enum=CMsgGCRoutingInfo_RoutingMethod,def=1" json:"fallback,omitempty"` - ProtobufField *uint32 `protobuf:"varint,4,opt,name=protobuf_field,json=protobufField" json:"protobuf_field,omitempty"` - WebapiParam *string `protobuf:"bytes,5,opt,name=webapi_param,json=webapiParam" json:"webapi_param,omitempty"` -} - -// Default values for CMsgGCRoutingInfo fields. -const ( - Default_CMsgGCRoutingInfo_Method = CMsgGCRoutingInfo_RANDOM - Default_CMsgGCRoutingInfo_Fallback = CMsgGCRoutingInfo_DISCARD -) - -func (x *CMsgGCRoutingInfo) Reset() { - *x = CMsgGCRoutingInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCRoutingInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCRoutingInfo) ProtoMessage() {} - -func (x *CMsgGCRoutingInfo) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCRoutingInfo.ProtoReflect.Descriptor instead. -func (*CMsgGCRoutingInfo) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{51} -} - -func (x *CMsgGCRoutingInfo) GetDirIndex() []uint32 { - if x != nil { - return x.DirIndex - } - return nil -} - -func (x *CMsgGCRoutingInfo) GetMethod() CMsgGCRoutingInfo_RoutingMethod { - if x != nil && x.Method != nil { - return *x.Method - } - return Default_CMsgGCRoutingInfo_Method -} - -func (x *CMsgGCRoutingInfo) GetFallback() CMsgGCRoutingInfo_RoutingMethod { - if x != nil && x.Fallback != nil { - return *x.Fallback - } - return Default_CMsgGCRoutingInfo_Fallback -} - -func (x *CMsgGCRoutingInfo) GetProtobufField() uint32 { - if x != nil && x.ProtobufField != nil { - return *x.ProtobufField - } - return 0 -} - -func (x *CMsgGCRoutingInfo) GetWebapiParam() string { - if x != nil && x.WebapiParam != nil { - return *x.WebapiParam - } - return "" -} - -type CMsgGCMsgMasterSetWebAPIRouting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Entries []*CMsgGCMsgMasterSetWebAPIRouting_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting) Reset() { - *x = CMsgGCMsgMasterSetWebAPIRouting{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetWebAPIRouting) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetWebAPIRouting) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetWebAPIRouting) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{52} -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting) GetEntries() []*CMsgGCMsgMasterSetWebAPIRouting_Entry { - if x != nil { - return x.Entries - } - return nil -} - -type CMsgGCMsgMasterSetClientMsgRouting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Entries []*CMsgGCMsgMasterSetClientMsgRouting_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting) Reset() { - *x = CMsgGCMsgMasterSetClientMsgRouting{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetClientMsgRouting) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetClientMsgRouting) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetClientMsgRouting) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{53} -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting) GetEntries() []*CMsgGCMsgMasterSetClientMsgRouting_Entry { - if x != nil { - return x.Entries - } - return nil -} - -type CMsgGCMsgMasterSetWebAPIRouting_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` -} - -// Default values for CMsgGCMsgMasterSetWebAPIRouting_Response fields. -const ( - Default_CMsgGCMsgMasterSetWebAPIRouting_Response_Eresult = int32(2) -) - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) Reset() { - *x = CMsgGCMsgMasterSetWebAPIRouting_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetWebAPIRouting_Response) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetWebAPIRouting_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{54} -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgGCMsgMasterSetWebAPIRouting_Response_Eresult -} - -type CMsgGCMsgMasterSetClientMsgRouting_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` -} - -// Default values for CMsgGCMsgMasterSetClientMsgRouting_Response fields. -const ( - Default_CMsgGCMsgMasterSetClientMsgRouting_Response_Eresult = int32(2) -) - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) Reset() { - *x = CMsgGCMsgMasterSetClientMsgRouting_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetClientMsgRouting_Response) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting_Response.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetClientMsgRouting_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{55} -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) GetEresult() int32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgGCMsgMasterSetClientMsgRouting_Response_Eresult -} - -type CMsgGCMsgSetOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Options []CMsgGCMsgSetOptions_Option `protobuf:"varint,1,rep,name=options,enum=CMsgGCMsgSetOptions_Option" json:"options,omitempty"` - ClientMsgRanges []*CMsgGCMsgSetOptions_MessageRange `protobuf:"bytes,2,rep,name=client_msg_ranges,json=clientMsgRanges" json:"client_msg_ranges,omitempty"` -} - -func (x *CMsgGCMsgSetOptions) Reset() { - *x = CMsgGCMsgSetOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgSetOptions) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgSetOptions) ProtoMessage() {} - -func (x *CMsgGCMsgSetOptions) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgSetOptions.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgSetOptions) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{56} -} - -func (x *CMsgGCMsgSetOptions) GetOptions() []CMsgGCMsgSetOptions_Option { - if x != nil { - return x.Options - } - return nil -} - -func (x *CMsgGCMsgSetOptions) GetClientMsgRanges() []*CMsgGCMsgSetOptions_MessageRange { - if x != nil { - return x.ClientMsgRanges - } - return nil -} - -type CMsgGCHUpdateSession struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` - AppId *uint32 `protobuf:"varint,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` - Online *bool `protobuf:"varint,3,opt,name=online" json:"online,omitempty"` - ServerSteamId *uint64 `protobuf:"fixed64,4,opt,name=server_steam_id,json=serverSteamId" json:"server_steam_id,omitempty"` - ServerAddr *uint32 `protobuf:"varint,5,opt,name=server_addr,json=serverAddr" json:"server_addr,omitempty"` - ServerPort *uint32 `protobuf:"varint,6,opt,name=server_port,json=serverPort" json:"server_port,omitempty"` - OsType *uint32 `protobuf:"varint,7,opt,name=os_type,json=osType" json:"os_type,omitempty"` - ClientAddr *uint32 `protobuf:"varint,8,opt,name=client_addr,json=clientAddr" json:"client_addr,omitempty"` - ExtraFields []*CMsgGCHUpdateSession_ExtraField `protobuf:"bytes,9,rep,name=extra_fields,json=extraFields" json:"extra_fields,omitempty"` - OwnerId *uint64 `protobuf:"fixed64,10,opt,name=owner_id,json=ownerId" json:"owner_id,omitempty"` - CmSessionSysid *uint32 `protobuf:"varint,11,opt,name=cm_session_sysid,json=cmSessionSysid" json:"cm_session_sysid,omitempty"` - CmSessionIdentifier *uint32 `protobuf:"varint,12,opt,name=cm_session_identifier,json=cmSessionIdentifier" json:"cm_session_identifier,omitempty"` - DepotIds []uint32 `protobuf:"varint,13,rep,name=depot_ids,json=depotIds" json:"depot_ids,omitempty"` -} - -func (x *CMsgGCHUpdateSession) Reset() { - *x = CMsgGCHUpdateSession{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCHUpdateSession) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCHUpdateSession) ProtoMessage() {} - -func (x *CMsgGCHUpdateSession) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCHUpdateSession.ProtoReflect.Descriptor instead. -func (*CMsgGCHUpdateSession) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{57} -} - -func (x *CMsgGCHUpdateSession) GetSteamId() uint64 { - if x != nil && x.SteamId != nil { - return *x.SteamId - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetAppId() uint32 { - if x != nil && x.AppId != nil { - return *x.AppId - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetOnline() bool { - if x != nil && x.Online != nil { - return *x.Online - } - return false -} - -func (x *CMsgGCHUpdateSession) GetServerSteamId() uint64 { - if x != nil && x.ServerSteamId != nil { - return *x.ServerSteamId - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetServerAddr() uint32 { - if x != nil && x.ServerAddr != nil { - return *x.ServerAddr - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetServerPort() uint32 { - if x != nil && x.ServerPort != nil { - return *x.ServerPort - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetOsType() uint32 { - if x != nil && x.OsType != nil { - return *x.OsType - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetClientAddr() uint32 { - if x != nil && x.ClientAddr != nil { - return *x.ClientAddr - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetExtraFields() []*CMsgGCHUpdateSession_ExtraField { - if x != nil { - return x.ExtraFields - } - return nil -} - -func (x *CMsgGCHUpdateSession) GetOwnerId() uint64 { - if x != nil && x.OwnerId != nil { - return *x.OwnerId - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetCmSessionSysid() uint32 { - if x != nil && x.CmSessionSysid != nil { - return *x.CmSessionSysid - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetCmSessionIdentifier() uint32 { - if x != nil && x.CmSessionIdentifier != nil { - return *x.CmSessionIdentifier - } - return 0 -} - -func (x *CMsgGCHUpdateSession) GetDepotIds() []uint32 { - if x != nil { - return x.DepotIds - } - return nil -} - -type CMsgNotificationOfSuspiciousActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - Appid *uint32 `protobuf:"varint,2,opt,name=appid" json:"appid,omitempty"` - MultipleInstances *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances `protobuf:"bytes,3,opt,name=multiple_instances,json=multipleInstances" json:"multiple_instances,omitempty"` -} - -func (x *CMsgNotificationOfSuspiciousActivity) Reset() { - *x = CMsgNotificationOfSuspiciousActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgNotificationOfSuspiciousActivity) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgNotificationOfSuspiciousActivity) ProtoMessage() {} - -func (x *CMsgNotificationOfSuspiciousActivity) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgNotificationOfSuspiciousActivity.ProtoReflect.Descriptor instead. -func (*CMsgNotificationOfSuspiciousActivity) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{58} -} - -func (x *CMsgNotificationOfSuspiciousActivity) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CMsgNotificationOfSuspiciousActivity) GetAppid() uint32 { - if x != nil && x.Appid != nil { - return *x.Appid - } - return 0 -} - -func (x *CMsgNotificationOfSuspiciousActivity) GetMultipleInstances() *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances { - if x != nil { - return x.MultipleInstances - } - return nil -} - -type CMsgDPPartnerMicroTxns struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` - GcName *string `protobuf:"bytes,2,opt,name=gc_name,json=gcName" json:"gc_name,omitempty"` - Partner *CMsgDPPartnerMicroTxns_PartnerInfo `protobuf:"bytes,3,opt,name=partner" json:"partner,omitempty"` - Transactions []*CMsgDPPartnerMicroTxns_PartnerMicroTxn `protobuf:"bytes,4,rep,name=transactions" json:"transactions,omitempty"` -} - -func (x *CMsgDPPartnerMicroTxns) Reset() { - *x = CMsgDPPartnerMicroTxns{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgDPPartnerMicroTxns) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgDPPartnerMicroTxns) ProtoMessage() {} - -func (x *CMsgDPPartnerMicroTxns) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgDPPartnerMicroTxns.ProtoReflect.Descriptor instead. -func (*CMsgDPPartnerMicroTxns) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{59} -} - -func (x *CMsgDPPartnerMicroTxns) GetAppid() uint32 { - if x != nil && x.Appid != nil { - return *x.Appid - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns) GetGcName() string { - if x != nil && x.GcName != nil { - return *x.GcName - } - return "" -} - -func (x *CMsgDPPartnerMicroTxns) GetPartner() *CMsgDPPartnerMicroTxns_PartnerInfo { - if x != nil { - return x.Partner - } - return nil -} - -func (x *CMsgDPPartnerMicroTxns) GetTransactions() []*CMsgDPPartnerMicroTxns_PartnerMicroTxn { - if x != nil { - return x.Transactions - } - return nil -} - -type CMsgDPPartnerMicroTxnsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` - Eerrorcode *CMsgDPPartnerMicroTxnsResponse_EErrorCode `protobuf:"varint,2,opt,name=eerrorcode,enum=CMsgDPPartnerMicroTxnsResponse_EErrorCode,def=0" json:"eerrorcode,omitempty"` -} - -// Default values for CMsgDPPartnerMicroTxnsResponse fields. -const ( - Default_CMsgDPPartnerMicroTxnsResponse_Eresult = uint32(2) - Default_CMsgDPPartnerMicroTxnsResponse_Eerrorcode = CMsgDPPartnerMicroTxnsResponse_k_MsgValid -) - -func (x *CMsgDPPartnerMicroTxnsResponse) Reset() { - *x = CMsgDPPartnerMicroTxnsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgDPPartnerMicroTxnsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgDPPartnerMicroTxnsResponse) ProtoMessage() {} - -func (x *CMsgDPPartnerMicroTxnsResponse) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgDPPartnerMicroTxnsResponse.ProtoReflect.Descriptor instead. -func (*CMsgDPPartnerMicroTxnsResponse) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{60} -} - -func (x *CMsgDPPartnerMicroTxnsResponse) GetEresult() uint32 { - if x != nil && x.Eresult != nil { - return *x.Eresult - } - return Default_CMsgDPPartnerMicroTxnsResponse_Eresult -} - -func (x *CMsgDPPartnerMicroTxnsResponse) GetEerrorcode() CMsgDPPartnerMicroTxnsResponse_EErrorCode { - if x != nil && x.Eerrorcode != nil { - return *x.Eerrorcode - } - return Default_CMsgDPPartnerMicroTxnsResponse_Eerrorcode -} - -type CChinaAgreementSessions_StartAgreementSessionInGame_Request struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` - Steamid *uint64 `protobuf:"fixed64,2,opt,name=steamid" json:"steamid,omitempty"` - ClientIpaddress *string `protobuf:"bytes,3,opt,name=client_ipaddress,json=clientIpaddress" json:"client_ipaddress,omitempty"` -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) Reset() { - *x = CChinaAgreementSessions_StartAgreementSessionInGame_Request{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CChinaAgreementSessions_StartAgreementSessionInGame_Request) ProtoMessage() {} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CChinaAgreementSessions_StartAgreementSessionInGame_Request.ProtoReflect.Descriptor instead. -func (*CChinaAgreementSessions_StartAgreementSessionInGame_Request) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{61} -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetAppid() uint32 { - if x != nil && x.Appid != nil { - return *x.Appid - } - return 0 -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetClientIpaddress() string { - if x != nil && x.ClientIpaddress != nil { - return *x.ClientIpaddress - } - return "" -} - -type CChinaAgreementSessions_StartAgreementSessionInGame_Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AgreementUrl *string `protobuf:"bytes,1,opt,name=agreement_url,json=agreementUrl" json:"agreement_url,omitempty"` -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) Reset() { - *x = CChinaAgreementSessions_StartAgreementSessionInGame_Response{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CChinaAgreementSessions_StartAgreementSessionInGame_Response) ProtoMessage() {} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CChinaAgreementSessions_StartAgreementSessionInGame_Response.ProtoReflect.Descriptor instead. -func (*CChinaAgreementSessions_StartAgreementSessionInGame_Response) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{62} -} - -func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) GetAgreementUrl() string { - if x != nil && x.AgreementUrl != nil { - return *x.AgreementUrl - } - return "" -} - -type CMsgHttpRequest_RequestHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CMsgHttpRequest_RequestHeader) Reset() { - *x = CMsgHttpRequest_RequestHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgHttpRequest_RequestHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgHttpRequest_RequestHeader) ProtoMessage() {} - -func (x *CMsgHttpRequest_RequestHeader) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgHttpRequest_RequestHeader.ProtoReflect.Descriptor instead. -func (*CMsgHttpRequest_RequestHeader) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{2, 0} -} - -func (x *CMsgHttpRequest_RequestHeader) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CMsgHttpRequest_RequestHeader) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -type CMsgHttpRequest_QueryParam struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CMsgHttpRequest_QueryParam) Reset() { - *x = CMsgHttpRequest_QueryParam{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgHttpRequest_QueryParam) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgHttpRequest_QueryParam) ProtoMessage() {} - -func (x *CMsgHttpRequest_QueryParam) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgHttpRequest_QueryParam.ProtoReflect.Descriptor instead. -func (*CMsgHttpRequest_QueryParam) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{2, 1} -} - -func (x *CMsgHttpRequest_QueryParam) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CMsgHttpRequest_QueryParam) GetValue() []byte { - if x != nil { - return x.Value - } - return nil -} - -type CMsgHttpResponse_ResponseHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CMsgHttpResponse_ResponseHeader) Reset() { - *x = CMsgHttpResponse_ResponseHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgHttpResponse_ResponseHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgHttpResponse_ResponseHeader) ProtoMessage() {} - -func (x *CMsgHttpResponse_ResponseHeader) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgHttpResponse_ResponseHeader.ProtoReflect.Descriptor instead. -func (*CMsgHttpResponse_ResponseHeader) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{4, 0} -} - -func (x *CMsgHttpResponse_ResponseHeader) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CMsgHttpResponse_ResponseHeader) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -type CMsgAMGetUserGameStatsResponse_Stats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatId *uint32 `protobuf:"varint,1,opt,name=stat_id,json=statId" json:"stat_id,omitempty"` - StatValue *uint32 `protobuf:"varint,2,opt,name=stat_value,json=statValue" json:"stat_value,omitempty"` -} - -func (x *CMsgAMGetUserGameStatsResponse_Stats) Reset() { - *x = CMsgAMGetUserGameStatsResponse_Stats{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetUserGameStatsResponse_Stats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetUserGameStatsResponse_Stats) ProtoMessage() {} - -func (x *CMsgAMGetUserGameStatsResponse_Stats) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetUserGameStatsResponse_Stats.ProtoReflect.Descriptor instead. -func (*CMsgAMGetUserGameStatsResponse_Stats) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{12, 0} -} - -func (x *CMsgAMGetUserGameStatsResponse_Stats) GetStatId() uint32 { - if x != nil && x.StatId != nil { - return *x.StatId - } - return 0 -} - -func (x *CMsgAMGetUserGameStatsResponse_Stats) GetStatValue() uint32 { - if x != nil && x.StatValue != nil { - return *x.StatValue - } - return 0 -} - -type CMsgAMGetUserGameStatsResponse_Achievement_Blocks struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AchievementId *uint32 `protobuf:"varint,1,opt,name=achievement_id,json=achievementId" json:"achievement_id,omitempty"` - AchievementBitId *uint32 `protobuf:"varint,2,opt,name=achievement_bit_id,json=achievementBitId" json:"achievement_bit_id,omitempty"` - UnlockTime *uint32 `protobuf:"fixed32,3,opt,name=unlock_time,json=unlockTime" json:"unlock_time,omitempty"` -} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) Reset() { - *x = CMsgAMGetUserGameStatsResponse_Achievement_Blocks{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks) ProtoMessage() {} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMGetUserGameStatsResponse_Achievement_Blocks.ProtoReflect.Descriptor instead. -func (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{12, 1} -} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetAchievementId() uint32 { - if x != nil && x.AchievementId != nil { - return *x.AchievementId - } - return 0 -} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetAchievementBitId() uint32 { - if x != nil && x.AchievementBitId != nil { - return *x.AchievementBitId - } - return 0 -} - -func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetUnlockTime() uint32 { - if x != nil && x.UnlockTime != nil { - return *x.UnlockTime - } - return 0 -} - -type CGCMsgMemCachedGetResponse_ValueTag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Found *bool `protobuf:"varint,1,opt,name=found" json:"found,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CGCMsgMemCachedGetResponse_ValueTag) Reset() { - *x = CGCMsgMemCachedGetResponse_ValueTag{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedGetResponse_ValueTag) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedGetResponse_ValueTag) ProtoMessage() {} - -func (x *CGCMsgMemCachedGetResponse_ValueTag) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedGetResponse_ValueTag.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedGetResponse_ValueTag) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{16, 0} -} - -func (x *CGCMsgMemCachedGetResponse_ValueTag) GetFound() bool { - if x != nil && x.Found != nil { - return *x.Found - } - return false -} - -func (x *CGCMsgMemCachedGetResponse_ValueTag) GetValue() []byte { - if x != nil { - return x.Value - } - return nil -} - -type CGCMsgMemCachedSet_KeyPair struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CGCMsgMemCachedSet_KeyPair) Reset() { - *x = CGCMsgMemCachedSet_KeyPair{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGCMsgMemCachedSet_KeyPair) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGCMsgMemCachedSet_KeyPair) ProtoMessage() {} - -func (x *CGCMsgMemCachedSet_KeyPair) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGCMsgMemCachedSet_KeyPair.ProtoReflect.Descriptor instead. -func (*CGCMsgMemCachedSet_KeyPair) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{17, 0} -} - -func (x *CGCMsgMemCachedSet_KeyPair) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CGCMsgMemCachedSet_KeyPair) GetValue() []byte { - if x != nil { - return x.Value - } - return nil -} - -type CMsgAMSendEmail_ReplacementToken struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TokenName *string `protobuf:"bytes,1,opt,name=token_name,json=tokenName" json:"token_name,omitempty"` - TokenValue *string `protobuf:"bytes,2,opt,name=token_value,json=tokenValue" json:"token_value,omitempty"` -} - -func (x *CMsgAMSendEmail_ReplacementToken) Reset() { - *x = CMsgAMSendEmail_ReplacementToken{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMSendEmail_ReplacementToken) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMSendEmail_ReplacementToken) ProtoMessage() {} - -func (x *CMsgAMSendEmail_ReplacementToken) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMSendEmail_ReplacementToken.ProtoReflect.Descriptor instead. -func (*CMsgAMSendEmail_ReplacementToken) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{31, 0} -} - -func (x *CMsgAMSendEmail_ReplacementToken) GetTokenName() string { - if x != nil && x.TokenName != nil { - return *x.TokenName - } - return "" -} - -func (x *CMsgAMSendEmail_ReplacementToken) GetTokenValue() string { - if x != nil && x.TokenValue != nil { - return *x.TokenValue - } - return "" -} - -type CMsgAMSendEmail_PersonaNameReplacementToken struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - TokenName *string `protobuf:"bytes,2,opt,name=token_name,json=tokenName" json:"token_name,omitempty"` -} - -func (x *CMsgAMSendEmail_PersonaNameReplacementToken) Reset() { - *x = CMsgAMSendEmail_PersonaNameReplacementToken{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgAMSendEmail_PersonaNameReplacementToken) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgAMSendEmail_PersonaNameReplacementToken) ProtoMessage() {} - -func (x *CMsgAMSendEmail_PersonaNameReplacementToken) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgAMSendEmail_PersonaNameReplacementToken.ProtoReflect.Descriptor instead. -func (*CMsgAMSendEmail_PersonaNameReplacementToken) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{31, 1} -} - -func (x *CMsgAMSendEmail_PersonaNameReplacementToken) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CMsgAMSendEmail_PersonaNameReplacementToken) GetTokenName() string { - if x != nil && x.TokenName != nil { - return *x.TokenName - } - return "" -} - -type CMsgGCGetPersonaNames_Response_PersonaName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` - PersonaName *string `protobuf:"bytes,2,opt,name=persona_name,json=personaName" json:"persona_name,omitempty"` -} - -func (x *CMsgGCGetPersonaNames_Response_PersonaName) Reset() { - *x = CMsgGCGetPersonaNames_Response_PersonaName{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCGetPersonaNames_Response_PersonaName) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCGetPersonaNames_Response_PersonaName) ProtoMessage() {} - -func (x *CMsgGCGetPersonaNames_Response_PersonaName) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCGetPersonaNames_Response_PersonaName.ProtoReflect.Descriptor instead. -func (*CMsgGCGetPersonaNames_Response_PersonaName) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{40, 0} -} - -func (x *CMsgGCGetPersonaNames_Response_PersonaName) GetSteamid() uint64 { - if x != nil && x.Steamid != nil { - return *x.Steamid - } - return 0 -} - -func (x *CMsgGCGetPersonaNames_Response_PersonaName) GetPersonaName() string { - if x != nil && x.PersonaName != nil { - return *x.PersonaName - } - return "" -} - -type CMsgGCMsgMasterSetDirectory_SubGC struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DirIndex *uint32 `protobuf:"varint,1,opt,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Box *string `protobuf:"bytes,3,opt,name=box" json:"box,omitempty"` - CommandLine *string `protobuf:"bytes,4,opt,name=command_line,json=commandLine" json:"command_line,omitempty"` - GcBinary *string `protobuf:"bytes,5,opt,name=gc_binary,json=gcBinary" json:"gc_binary,omitempty"` -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) Reset() { - *x = CMsgGCMsgMasterSetDirectory_SubGC{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetDirectory_SubGC) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetDirectory_SubGC.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetDirectory_SubGC) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{43, 0} -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetDirIndex() uint32 { - if x != nil && x.DirIndex != nil { - return *x.DirIndex - } - return 0 -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetBox() string { - if x != nil && x.Box != nil { - return *x.Box - } - return "" -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetCommandLine() string { - if x != nil && x.CommandLine != nil { - return *x.CommandLine - } - return "" -} - -func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetGcBinary() string { - if x != nil && x.GcBinary != nil { - return *x.GcBinary - } - return "" -} - -type CMsgGCMsgMasterSetWebAPIRouting_Entry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InterfaceName *string `protobuf:"bytes,1,opt,name=interface_name,json=interfaceName" json:"interface_name,omitempty"` - MethodName *string `protobuf:"bytes,2,opt,name=method_name,json=methodName" json:"method_name,omitempty"` - Routing *CMsgGCRoutingInfo `protobuf:"bytes,3,opt,name=routing" json:"routing,omitempty"` -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) Reset() { - *x = CMsgGCMsgMasterSetWebAPIRouting_Entry{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetWebAPIRouting_Entry) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting_Entry.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetWebAPIRouting_Entry) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{52, 0} -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetInterfaceName() string { - if x != nil && x.InterfaceName != nil { - return *x.InterfaceName - } - return "" -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetMethodName() string { - if x != nil && x.MethodName != nil { - return *x.MethodName - } - return "" -} - -func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetRouting() *CMsgGCRoutingInfo { - if x != nil { - return x.Routing - } - return nil -} - -type CMsgGCMsgMasterSetClientMsgRouting_Entry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MsgType *uint32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` - Routing *CMsgGCRoutingInfo `protobuf:"bytes,2,opt,name=routing" json:"routing,omitempty"` -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) Reset() { - *x = CMsgGCMsgMasterSetClientMsgRouting_Entry{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgMasterSetClientMsgRouting_Entry) ProtoMessage() {} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting_Entry.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgMasterSetClientMsgRouting_Entry) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{53, 0} -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) GetMsgType() uint32 { - if x != nil && x.MsgType != nil { - return *x.MsgType - } - return 0 -} - -func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) GetRouting() *CMsgGCRoutingInfo { - if x != nil { - return x.Routing - } - return nil -} - -type CMsgGCMsgSetOptions_MessageRange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Low *uint32 `protobuf:"varint,1,req,name=low" json:"low,omitempty"` - High *uint32 `protobuf:"varint,2,req,name=high" json:"high,omitempty"` -} - -func (x *CMsgGCMsgSetOptions_MessageRange) Reset() { - *x = CMsgGCMsgSetOptions_MessageRange{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCMsgSetOptions_MessageRange) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCMsgSetOptions_MessageRange) ProtoMessage() {} - -func (x *CMsgGCMsgSetOptions_MessageRange) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCMsgSetOptions_MessageRange.ProtoReflect.Descriptor instead. -func (*CMsgGCMsgSetOptions_MessageRange) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{56, 0} -} - -func (x *CMsgGCMsgSetOptions_MessageRange) GetLow() uint32 { - if x != nil && x.Low != nil { - return *x.Low - } - return 0 -} - -func (x *CMsgGCMsgSetOptions_MessageRange) GetHigh() uint32 { - if x != nil && x.High != nil { - return *x.High - } - return 0 -} - -type CMsgGCHUpdateSession_ExtraField struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` -} - -func (x *CMsgGCHUpdateSession_ExtraField) Reset() { - *x = CMsgGCHUpdateSession_ExtraField{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgGCHUpdateSession_ExtraField) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgGCHUpdateSession_ExtraField) ProtoMessage() {} - -func (x *CMsgGCHUpdateSession_ExtraField) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgGCHUpdateSession_ExtraField.ProtoReflect.Descriptor instead. -func (*CMsgGCHUpdateSession_ExtraField) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{57, 0} -} - -func (x *CMsgGCHUpdateSession_ExtraField) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *CMsgGCHUpdateSession_ExtraField) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -type CMsgNotificationOfSuspiciousActivity_MultipleGameInstances struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AppInstanceCount *uint32 `protobuf:"varint,1,opt,name=app_instance_count,json=appInstanceCount" json:"app_instance_count,omitempty"` - OtherSteamids []uint64 `protobuf:"fixed64,2,rep,name=other_steamids,json=otherSteamids" json:"other_steamids,omitempty"` -} - -func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) Reset() { - *x = CMsgNotificationOfSuspiciousActivity_MultipleGameInstances{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) ProtoMessage() {} - -func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgNotificationOfSuspiciousActivity_MultipleGameInstances.ProtoReflect.Descriptor instead. -func (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{58, 0} -} - -func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) GetAppInstanceCount() uint32 { - if x != nil && x.AppInstanceCount != nil { - return *x.AppInstanceCount - } - return 0 -} - -func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) GetOtherSteamids() []uint64 { - if x != nil { - return x.OtherSteamids - } - return nil -} - -type CMsgDPPartnerMicroTxns_PartnerMicroTxn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InitTime *uint32 `protobuf:"varint,1,opt,name=init_time,json=initTime" json:"init_time,omitempty"` - LastUpdateTime *uint32 `protobuf:"varint,2,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"` - TxnId *uint64 `protobuf:"varint,3,opt,name=txn_id,json=txnId" json:"txn_id,omitempty"` - AccountId *uint32 `protobuf:"varint,4,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - LineItem *uint32 `protobuf:"varint,5,opt,name=line_item,json=lineItem" json:"line_item,omitempty"` - ItemId *uint64 `protobuf:"varint,6,opt,name=item_id,json=itemId" json:"item_id,omitempty"` - DefIndex *uint32 `protobuf:"varint,7,opt,name=def_index,json=defIndex" json:"def_index,omitempty"` - Price *uint64 `protobuf:"varint,8,opt,name=price" json:"price,omitempty"` - Tax *uint64 `protobuf:"varint,9,opt,name=tax" json:"tax,omitempty"` - PriceUsd *uint64 `protobuf:"varint,10,opt,name=price_usd,json=priceUsd" json:"price_usd,omitempty"` - TaxUsd *uint64 `protobuf:"varint,11,opt,name=tax_usd,json=taxUsd" json:"tax_usd,omitempty"` - PurchaseType *uint32 `protobuf:"varint,12,opt,name=purchase_type,json=purchaseType" json:"purchase_type,omitempty"` - SteamTxnType *uint32 `protobuf:"varint,13,opt,name=steam_txn_type,json=steamTxnType" json:"steam_txn_type,omitempty"` - CountryCode *string `protobuf:"bytes,14,opt,name=country_code,json=countryCode" json:"country_code,omitempty"` - RegionCode *string `protobuf:"bytes,15,opt,name=region_code,json=regionCode" json:"region_code,omitempty"` - Quantity *int32 `protobuf:"varint,16,opt,name=quantity" json:"quantity,omitempty"` - RefTransId *uint64 `protobuf:"varint,17,opt,name=ref_trans_id,json=refTransId" json:"ref_trans_id,omitempty"` -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) Reset() { - *x = CMsgDPPartnerMicroTxns_PartnerMicroTxn{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgDPPartnerMicroTxns_PartnerMicroTxn) ProtoMessage() {} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgDPPartnerMicroTxns_PartnerMicroTxn.ProtoReflect.Descriptor instead. -func (*CMsgDPPartnerMicroTxns_PartnerMicroTxn) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{59, 0} -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetInitTime() uint32 { - if x != nil && x.InitTime != nil { - return *x.InitTime - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetLastUpdateTime() uint32 { - if x != nil && x.LastUpdateTime != nil { - return *x.LastUpdateTime - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTxnId() uint64 { - if x != nil && x.TxnId != nil { - return *x.TxnId - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetAccountId() uint32 { - if x != nil && x.AccountId != nil { - return *x.AccountId - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetLineItem() uint32 { - if x != nil && x.LineItem != nil { - return *x.LineItem - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetItemId() uint64 { - if x != nil && x.ItemId != nil { - return *x.ItemId - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetDefIndex() uint32 { - if x != nil && x.DefIndex != nil { - return *x.DefIndex - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPrice() uint64 { - if x != nil && x.Price != nil { - return *x.Price - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTax() uint64 { - if x != nil && x.Tax != nil { - return *x.Tax - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPriceUsd() uint64 { - if x != nil && x.PriceUsd != nil { - return *x.PriceUsd - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTaxUsd() uint64 { - if x != nil && x.TaxUsd != nil { - return *x.TaxUsd - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPurchaseType() uint32 { - if x != nil && x.PurchaseType != nil { - return *x.PurchaseType - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetSteamTxnType() uint32 { - if x != nil && x.SteamTxnType != nil { - return *x.SteamTxnType - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetCountryCode() string { - if x != nil && x.CountryCode != nil { - return *x.CountryCode - } - return "" -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetRegionCode() string { - if x != nil && x.RegionCode != nil { - return *x.RegionCode - } - return "" -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetQuantity() int32 { - if x != nil && x.Quantity != nil { - return *x.Quantity - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetRefTransId() uint64 { - if x != nil && x.RefTransId != nil { - return *x.RefTransId - } - return 0 -} - -type CMsgDPPartnerMicroTxns_PartnerInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PartnerId *uint32 `protobuf:"varint,1,opt,name=partner_id,json=partnerId" json:"partner_id,omitempty"` - PartnerName *string `protobuf:"bytes,2,opt,name=partner_name,json=partnerName" json:"partner_name,omitempty"` - CurrencyCode *string `protobuf:"bytes,3,opt,name=currency_code,json=currencyCode" json:"currency_code,omitempty"` - CurrencyName *string `protobuf:"bytes,4,opt,name=currency_name,json=currencyName" json:"currency_name,omitempty"` -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) Reset() { - *x = CMsgDPPartnerMicroTxns_PartnerInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_steammessages_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMsgDPPartnerMicroTxns_PartnerInfo) ProtoMessage() {} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) ProtoReflect() protoreflect.Message { - mi := &file_steammessages_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CMsgDPPartnerMicroTxns_PartnerInfo.ProtoReflect.Descriptor instead. -func (*CMsgDPPartnerMicroTxns_PartnerInfo) Descriptor() ([]byte, []int) { - return file_steammessages_proto_rawDescGZIP(), []int{59, 1} -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetPartnerId() uint32 { - if x != nil && x.PartnerId != nil { - return *x.PartnerId - } - return 0 -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetPartnerName() string { - if x != nil && x.PartnerName != nil { - return *x.PartnerName - } - return "" -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetCurrencyCode() string { - if x != nil && x.CurrencyCode != nil { - return *x.CurrencyCode - } - return "" -} - -func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetCurrencyName() string { - if x != nil && x.CurrencyName != nil { - return *x.CurrencyName - } - return "" -} - var file_steammessages_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.FieldOptions)(nil), @@ -5980,1039 +67,37 @@ var file_steammessages_proto_rawDesc = []byte{ 0x0a, 0x13, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x04, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, - 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x14, 0x31, - 0x38, 0x34, 0x34, 0x36, 0x37, 0x34, 0x34, 0x30, 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, - 0x36, 0x31, 0x35, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x38, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x14, 0x31, 0x38, 0x34, 0x34, 0x36, 0x37, 0x34, - 0x34, 0x30, 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, 0x36, 0x31, 0x35, 0x52, 0x0b, 0x6a, - 0x6f, 0x62, 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x70, 0x12, 0x4e, 0x0a, 0x0a, 0x67, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x73, - 0x72, 0x63, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x47, 0x43, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x3a, 0x1c, 0x47, 0x43, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x55, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x08, 0x67, 0x63, 0x4d, 0x73, - 0x67, 0x53, 0x72, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x67, 0x63, 0x44, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x3a, 0x0a, 0x80, 0xa6, 0x1d, 0x80, 0x02, 0x88, 0xa6, 0x1d, 0x80, 0x08, - 0x22, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4b, - 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x3a, 0x03, 0x32, 0x35, 0x35, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x20, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x2f, 0x0a, 0x12, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, - 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x22, 0xcc, 0x03, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x07, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, - 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x67, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x62, - 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x39, 0x0a, - 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x36, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x98, 0x02, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, - 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x55, 0x4e, 0x55, 0x53, 0x45, 0x44, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4b, 0x65, - 0x79, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x49, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x10, - 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x1a, 0x3a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5a, 0x0a, - 0x12, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x37, 0x0a, 0x1a, 0x43, 0x4d, 0x73, - 0x67, 0x41, 0x4d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x49, 0x64, 0x22, 0xd2, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6c, 0x65, - 0x72, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, - 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x2d, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x41, - 0x4d, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x71, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x19, 0x43, 0x4d, 0x73, - 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x62, 0x0a, - 0x16, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x06, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, - 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x12, 0x61, 0x0a, 0x12, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x52, 0x11, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x3f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x17, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x8a, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x68, 0x69, 0x65, - 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x74, - 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x61, - 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, - 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x41, 0x0a, 0x1c, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x28, 0x0a, 0x12, - 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, - 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x1a, 0x43, 0x47, 0x43, 0x4d, 0x73, - 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, - 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x61, 0x67, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x1a, 0x36, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x61, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7a, 0x0a, 0x12, 0x43, - 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x65, - 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x53, 0x65, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x6b, 0x65, - 0x79, 0x73, 0x1a, 0x33, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x15, 0x43, 0x47, 0x43, 0x4d, 0x73, - 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, - 0x6b, 0x65, 0x79, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, - 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0xd6, 0x03, 0x0a, - 0x1c, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, - 0x10, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x5f, - 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x47, 0x65, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6d, - 0x64, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, - 0x6d, 0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x68, - 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x65, 0x74, 0x48, 0x69, - 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, - 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x61, 0x78, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x75, 0x72, 0x72, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0e, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, - 0x51, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0xc9, - 0x03, 0x0a, 0x16, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x51, 0x4c, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x70, 0x72, - 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x1a, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x20, - 0x6e, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x6e, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x70, 0x61, - 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x40, 0x0a, 0x1d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x43, - 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x65, 0x65, 0x4c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x69, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x69, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x41, - 0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x65, 0x65, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, - 0x74, 0x49, 0x50, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x69, - 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x03, 0x69, 0x70, 0x73, 0x22, 0x9f, 0x01, - 0x0a, 0x0f, 0x43, 0x49, 0x50, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x22, - 0x45, 0x0a, 0x1b, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x49, 0x50, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, - 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x43, 0x49, 0x50, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x12, 0x1a, 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x63, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6b, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x76, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x47, - 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x22, 0xf5, 0x03, 0x0a, 0x1c, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x63, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6b, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x76, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x79, - 0x69, 0x65, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x6c, 0x6f, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, - 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, - 0x67, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, - 0x6f, 0x67, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xd6, 0x03, 0x0a, 0x0f, 0x43, - 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x5c, 0x0a, 0x13, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x11, 0x70, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x63, 0x12, 0x39, 0x0a, 0x06, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x43, - 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x52, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x56, 0x0a, 0x1b, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, - 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, - 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, - 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x16, - 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, - 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6c, 0x61, 0x6e, - 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x4c, 0x61, - 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, - 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x43, - 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x50, - 0x61, 0x73, 0x73, 0x65, 0x73, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x54, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x61, 0x79, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x64, 0x61, 0x79, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x68, - 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x47, 0x75, 0x65, - 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x65, 0x73, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, - 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x1e, 0x43, 0x47, 0x43, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x3a, 0x0a, 0x80, 0xa6, 0x1d, 0x80, - 0x01, 0x88, 0xa6, 0x1d, 0x80, 0x04, 0x22, 0xc7, 0x0c, 0x0a, 0x27, 0x43, 0x47, 0x43, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, - 0x32, 0x52, 0x11, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, - 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x63, - 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, - 0x73, 0x56, 0x61, 0x63, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, - 0x5f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x66, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x79, 0x62, 0x65, 0x72, 0x43, 0x61, 0x66, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x69, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x69, 0x73, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x66, - 0x72, 0x65, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x46, 0x72, 0x65, 0x65, 0x54, - 0x72, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x66, - 0x72, 0x65, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, 0x72, 0x65, 0x65, - 0x54, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x6f, 0x77, 0x56, - 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x2e, 0x0a, 0x13, - 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, - 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, - 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x65, 0x42, 0x61, - 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, - 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x42, 0x61, 0x6e, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x11, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x53, 0x74, 0x65, 0x61, 0x6d, - 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x69, 0x73, 0x5f, 0x74, - 0x77, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, - 0x54, 0x77, 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x77, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x74, 0x77, 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, - 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x30, - 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, - 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x74, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x12, 0x22, - 0x0a, 0x0d, 0x72, 0x74, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x78, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x78, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, - 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x69, - 0x6e, 0x61, 0x5f, 0x73, 0x73, 0x61, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, - 0x73, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x53, 0x73, - 0x61, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x68, 0x69, 0x6e, 0x61, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x43, - 0x68, 0x69, 0x6e, 0x61, 0x3a, 0x0a, 0x80, 0xa6, 0x1d, 0x80, 0x01, 0x88, 0xa6, 0x1d, 0x80, 0x04, - 0x22, 0x33, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, - 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x08, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x10, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x06, 0x52, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x1a, 0x4a, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x12, 0x21, 0x0a, - 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x06, 0x52, 0x0b, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x4c, 0x65, 0x66, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x5f, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x22, 0x65, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x75, - 0x6e, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x22, 0x8a, 0x02, 0x0a, - 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, - 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x69, - 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x34, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x53, 0x75, 0x62, 0x47, 0x43, 0x52, 0x03, 0x64, 0x69, 0x72, 0x1a, 0x8a, 0x01, 0x0a, - 0x05, 0x53, 0x75, 0x62, 0x47, 0x43, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x67, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x67, 0x63, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x22, 0x5d, 0x0a, 0x24, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x22, 0x41, 0x0a, 0x25, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, - 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, - 0x61, 0x6d, 0x69, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x26, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, - 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3b, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x70, 0x75, 0x72, - 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x50, 0x75, 0x72, - 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x1d, - 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x61, 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x73, 0x12, 0x33, - 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x68, - 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, - 0x69, 0x73, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x73, 0x68, 0x54, 0x72, 0x75, 0x73, - 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, - 0x69, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x22, 0xcf, 0x01, - 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x56, 0x61, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, - 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x63, 0x62, 0x61, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x72, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x63, 0x62, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6e, - 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x4e, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x22, - 0x37, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x24, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x77, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x70, 0x77, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x6f, 0x6e, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x6f, 0x6e, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x69, - 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x75, 0x6c, 0x74, 0x22, 0xf5, 0x02, - 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x40, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x3a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x45, 0x0a, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3a, 0x07, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x52, - 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x22, 0x70, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x49, 0x44, 0x10, - 0x02, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x42, 0x55, 0x46, 0x5f, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, - 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x55, 0x49, 0x4e, - 0x54, 0x36, 0x34, 0x10, 0x04, 0x22, 0xe2, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, - 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, - 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x07, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43, 0x4d, 0x73, - 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, - 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x7d, 0x0a, 0x05, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x07, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xbb, 0x01, 0x0a, 0x22, 0x43, - 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x12, 0x43, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, - 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x50, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x72, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x4d, - 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x47, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, - 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, - 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x4a, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, - 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xc1, 0x02, - 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x11, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x34, 0x0a, 0x0c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x6f, 0x77, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x69, 0x67, - 0x68, 0x22, 0x6e, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, - 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x43, 0x48, 0x49, - 0x45, 0x56, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, - 0x54, 0x49, 0x46, 0x59, 0x5f, 0x56, 0x41, 0x43, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x03, 0x22, 0x97, 0x04, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0d, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6d, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x73, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x73, - 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x63, 0x6d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x74, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x74, - 0x49, 0x64, 0x73, 0x1a, 0x36, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x24, - 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x69, 0x64, 0x12, 0x6a, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x11, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x1a, 0x6c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, - 0x0d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0xfe, - 0x06, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x67, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x67, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x43, 0x4d, 0x73, 0x67, - 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, - 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, - 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, - 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x8c, 0x04, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x69, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x15, 0x0a, 0x06, 0x74, 0x78, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x74, 0x78, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, - 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, - 0x65, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x64, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x74, 0x61, 0x78, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x74, 0x61, 0x78, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x74, 0x61, 0x78, 0x55, 0x73, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, - 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, - 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x78, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, - 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x49, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, - 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x93, 0x03, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x56, 0x0a, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x3a, - 0x0a, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x0a, 0x65, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0a, 0x45, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, 0x70, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, - 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x53, 0x51, 0x4c, 0x46, - 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, - 0x67, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x69, 0x73, 0x63, - 0x72, 0x65, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x4d, - 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6b, - 0x5f, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x52, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x10, 0x08, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x10, 0x09, 0x22, 0x98, 0x01, 0x0a, 0x3b, 0x43, 0x43, 0x68, 0x69, 0x6e, 0x61, - 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, - 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x63, 0x0a, 0x3c, 0x43, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x2a, 0xb6, 0x01, 0x0a, 0x10, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x43, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x55, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, - 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, - 0x5f, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x10, 0x01, 0x12, 0x20, 0x0a, - 0x1c, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, - 0x63, 0x5f, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x10, 0x02, 0x12, - 0x1b, 0x0a, 0x17, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, - 0x53, 0x72, 0x63, 0x5f, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x43, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, - 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, - 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x10, 0x04, 0x3a, 0x43, - 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0xd4, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x3a, 0x53, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, - 0x6f, 0x66, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0xd4, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x3a, 0x02, 0x33, 0x32, 0x52, 0x10, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x54, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0xe1, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x03, 0x33, 0x38, 0x34, 0x52, 0x10, 0x6d, 0x73, - 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x05, - 0x48, 0x01, 0x80, 0x01, 0x00, -} - -var ( - file_steammessages_proto_rawDescOnce sync.Once - file_steammessages_proto_rawDescData = file_steammessages_proto_rawDesc -) - -func file_steammessages_proto_rawDescGZIP() []byte { - file_steammessages_proto_rawDescOnce.Do(func() { - file_steammessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_steammessages_proto_rawDescData) - }) - return file_steammessages_proto_rawDescData + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x43, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x53, 0x0a, 0x12, + 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x33, 0x32, 0x52, + 0x10, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x3a, 0x54, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x68, 0x61, 0x72, + 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe1, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x3a, 0x03, 0x33, 0x38, 0x34, 0x52, 0x10, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x48, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x05, 0x48, 0x01, 0x80, 0x01, 0x00, } -var file_steammessages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_steammessages_proto_msgTypes = make([]protoimpl.MessageInfo, 81) var file_steammessages_proto_goTypes = []interface{}{ - (GCProtoBufMsgSrc)(0), // 0: GCProtoBufMsgSrc - (CMsgGCRoutingInfo_RoutingMethod)(0), // 1: CMsgGCRoutingInfo.RoutingMethod - (CMsgGCMsgSetOptions_Option)(0), // 2: CMsgGCMsgSetOptions.Option - (CMsgDPPartnerMicroTxnsResponse_EErrorCode)(0), // 3: CMsgDPPartnerMicroTxnsResponse.EErrorCode - (*CMsgProtoBufHeader)(nil), // 4: CMsgProtoBufHeader - (*CMsgWebAPIKey)(nil), // 5: CMsgWebAPIKey - (*CMsgHttpRequest)(nil), // 6: CMsgHttpRequest - (*CMsgWebAPIRequest)(nil), // 7: CMsgWebAPIRequest - (*CMsgHttpResponse)(nil), // 8: CMsgHttpResponse - (*CMsgAMFindAccounts)(nil), // 9: CMsgAMFindAccounts - (*CMsgAMFindAccountsResponse)(nil), // 10: CMsgAMFindAccountsResponse - (*CMsgNotifyWatchdog)(nil), // 11: CMsgNotifyWatchdog - (*CMsgAMGetLicenses)(nil), // 12: CMsgAMGetLicenses - (*CMsgPackageLicense)(nil), // 13: CMsgPackageLicense - (*CMsgAMGetLicensesResponse)(nil), // 14: CMsgAMGetLicensesResponse - (*CMsgAMGetUserGameStats)(nil), // 15: CMsgAMGetUserGameStats - (*CMsgAMGetUserGameStatsResponse)(nil), // 16: CMsgAMGetUserGameStatsResponse - (*CMsgGCGetCommandList)(nil), // 17: CMsgGCGetCommandList - (*CMsgGCGetCommandListResponse)(nil), // 18: CMsgGCGetCommandListResponse - (*CGCMsgMemCachedGet)(nil), // 19: CGCMsgMemCachedGet - (*CGCMsgMemCachedGetResponse)(nil), // 20: CGCMsgMemCachedGetResponse - (*CGCMsgMemCachedSet)(nil), // 21: CGCMsgMemCachedSet - (*CGCMsgMemCachedDelete)(nil), // 22: CGCMsgMemCachedDelete - (*CGCMsgMemCachedStats)(nil), // 23: CGCMsgMemCachedStats - (*CGCMsgMemCachedStatsResponse)(nil), // 24: CGCMsgMemCachedStatsResponse - (*CGCMsgSQLStats)(nil), // 25: CGCMsgSQLStats - (*CGCMsgSQLStatsResponse)(nil), // 26: CGCMsgSQLStatsResponse - (*CMsgAMAddFreeLicense)(nil), // 27: CMsgAMAddFreeLicense - (*CMsgAMAddFreeLicenseResponse)(nil), // 28: CMsgAMAddFreeLicenseResponse - (*CGCMsgGetIPLocation)(nil), // 29: CGCMsgGetIPLocation - (*CIPLocationInfo)(nil), // 30: CIPLocationInfo - (*CGCMsgGetIPLocationResponse)(nil), // 31: CGCMsgGetIPLocationResponse - (*CGCMsgSystemStatsSchema)(nil), // 32: CGCMsgSystemStatsSchema - (*CGCMsgGetSystemStats)(nil), // 33: CGCMsgGetSystemStats - (*CGCMsgGetSystemStatsResponse)(nil), // 34: CGCMsgGetSystemStatsResponse - (*CMsgAMSendEmail)(nil), // 35: CMsgAMSendEmail - (*CMsgAMSendEmailResponse)(nil), // 36: CMsgAMSendEmailResponse - (*CMsgGCGetEmailTemplate)(nil), // 37: CMsgGCGetEmailTemplate - (*CMsgGCGetEmailTemplateResponse)(nil), // 38: CMsgGCGetEmailTemplateResponse - (*CMsgAMGrantGuestPasses2)(nil), // 39: CMsgAMGrantGuestPasses2 - (*CMsgAMGrantGuestPasses2Response)(nil), // 40: CMsgAMGrantGuestPasses2Response - (*CGCSystemMsg_GetAccountDetails)(nil), // 41: CGCSystemMsg_GetAccountDetails - (*CGCSystemMsg_GetAccountDetails_Response)(nil), // 42: CGCSystemMsg_GetAccountDetails_Response - (*CMsgGCGetPersonaNames)(nil), // 43: CMsgGCGetPersonaNames - (*CMsgGCGetPersonaNames_Response)(nil), // 44: CMsgGCGetPersonaNames_Response - (*CMsgGCCheckFriendship)(nil), // 45: CMsgGCCheckFriendship - (*CMsgGCCheckFriendship_Response)(nil), // 46: CMsgGCCheckFriendship_Response - (*CMsgGCMsgMasterSetDirectory)(nil), // 47: CMsgGCMsgMasterSetDirectory - (*CMsgGCMsgMasterSetDirectory_Response)(nil), // 48: CMsgGCMsgMasterSetDirectory_Response - (*CMsgGCMsgWebAPIJobRequestForwardResponse)(nil), // 49: CMsgGCMsgWebAPIJobRequestForwardResponse - (*CGCSystemMsg_GetPurchaseTrust_Request)(nil), // 50: CGCSystemMsg_GetPurchaseTrust_Request - (*CGCSystemMsg_GetPurchaseTrust_Response)(nil), // 51: CGCSystemMsg_GetPurchaseTrust_Response - (*CMsgGCHAccountVacStatusChange)(nil), // 52: CMsgGCHAccountVacStatusChange - (*CMsgGCGetPartnerAccountLink)(nil), // 53: CMsgGCGetPartnerAccountLink - (*CMsgGCGetPartnerAccountLink_Response)(nil), // 54: CMsgGCGetPartnerAccountLink_Response - (*CMsgGCRoutingInfo)(nil), // 55: CMsgGCRoutingInfo - (*CMsgGCMsgMasterSetWebAPIRouting)(nil), // 56: CMsgGCMsgMasterSetWebAPIRouting - (*CMsgGCMsgMasterSetClientMsgRouting)(nil), // 57: CMsgGCMsgMasterSetClientMsgRouting - (*CMsgGCMsgMasterSetWebAPIRouting_Response)(nil), // 58: CMsgGCMsgMasterSetWebAPIRouting_Response - (*CMsgGCMsgMasterSetClientMsgRouting_Response)(nil), // 59: CMsgGCMsgMasterSetClientMsgRouting_Response - (*CMsgGCMsgSetOptions)(nil), // 60: CMsgGCMsgSetOptions - (*CMsgGCHUpdateSession)(nil), // 61: CMsgGCHUpdateSession - (*CMsgNotificationOfSuspiciousActivity)(nil), // 62: CMsgNotificationOfSuspiciousActivity - (*CMsgDPPartnerMicroTxns)(nil), // 63: CMsgDPPartnerMicroTxns - (*CMsgDPPartnerMicroTxnsResponse)(nil), // 64: CMsgDPPartnerMicroTxnsResponse - (*CChinaAgreementSessions_StartAgreementSessionInGame_Request)(nil), // 65: CChinaAgreementSessions_StartAgreementSessionInGame_Request - (*CChinaAgreementSessions_StartAgreementSessionInGame_Response)(nil), // 66: CChinaAgreementSessions_StartAgreementSessionInGame_Response - (*CMsgHttpRequest_RequestHeader)(nil), // 67: CMsgHttpRequest.RequestHeader - (*CMsgHttpRequest_QueryParam)(nil), // 68: CMsgHttpRequest.QueryParam - (*CMsgHttpResponse_ResponseHeader)(nil), // 69: CMsgHttpResponse.ResponseHeader - (*CMsgAMGetUserGameStatsResponse_Stats)(nil), // 70: CMsgAMGetUserGameStatsResponse.Stats - (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks)(nil), // 71: CMsgAMGetUserGameStatsResponse.Achievement_Blocks - (*CGCMsgMemCachedGetResponse_ValueTag)(nil), // 72: CGCMsgMemCachedGetResponse.ValueTag - (*CGCMsgMemCachedSet_KeyPair)(nil), // 73: CGCMsgMemCachedSet.KeyPair - (*CMsgAMSendEmail_ReplacementToken)(nil), // 74: CMsgAMSendEmail.ReplacementToken - (*CMsgAMSendEmail_PersonaNameReplacementToken)(nil), // 75: CMsgAMSendEmail.PersonaNameReplacementToken - (*CMsgGCGetPersonaNames_Response_PersonaName)(nil), // 76: CMsgGCGetPersonaNames_Response.PersonaName - (*CMsgGCMsgMasterSetDirectory_SubGC)(nil), // 77: CMsgGCMsgMasterSetDirectory.SubGC - (*CMsgGCMsgMasterSetWebAPIRouting_Entry)(nil), // 78: CMsgGCMsgMasterSetWebAPIRouting.Entry - (*CMsgGCMsgMasterSetClientMsgRouting_Entry)(nil), // 79: CMsgGCMsgMasterSetClientMsgRouting.Entry - (*CMsgGCMsgSetOptions_MessageRange)(nil), // 80: CMsgGCMsgSetOptions.MessageRange - (*CMsgGCHUpdateSession_ExtraField)(nil), // 81: CMsgGCHUpdateSession.ExtraField - (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances)(nil), // 82: CMsgNotificationOfSuspiciousActivity.MultipleGameInstances - (*CMsgDPPartnerMicroTxns_PartnerMicroTxn)(nil), // 83: CMsgDPPartnerMicroTxns.PartnerMicroTxn - (*CMsgDPPartnerMicroTxns_PartnerInfo)(nil), // 84: CMsgDPPartnerMicroTxns.PartnerInfo - (*descriptorpb.FieldOptions)(nil), // 85: google.protobuf.FieldOptions - (*descriptorpb.MessageOptions)(nil), // 86: google.protobuf.MessageOptions + (*descriptorpb.FieldOptions)(nil), // 0: google.protobuf.FieldOptions + (*descriptorpb.MessageOptions)(nil), // 1: google.protobuf.MessageOptions } var file_steammessages_proto_depIdxs = []int32{ - 0, // 0: CMsgProtoBufHeader.gc_msg_src:type_name -> GCProtoBufMsgSrc - 67, // 1: CMsgHttpRequest.headers:type_name -> CMsgHttpRequest.RequestHeader - 68, // 2: CMsgHttpRequest.get_params:type_name -> CMsgHttpRequest.QueryParam - 68, // 3: CMsgHttpRequest.post_params:type_name -> CMsgHttpRequest.QueryParam - 5, // 4: CMsgWebAPIRequest.api_key:type_name -> CMsgWebAPIKey - 6, // 5: CMsgWebAPIRequest.request:type_name -> CMsgHttpRequest - 69, // 6: CMsgHttpResponse.headers:type_name -> CMsgHttpResponse.ResponseHeader - 13, // 7: CMsgAMGetLicensesResponse.license:type_name -> CMsgPackageLicense - 70, // 8: CMsgAMGetUserGameStatsResponse.stats:type_name -> CMsgAMGetUserGameStatsResponse.Stats - 71, // 9: CMsgAMGetUserGameStatsResponse.achievement_blocks:type_name -> CMsgAMGetUserGameStatsResponse.Achievement_Blocks - 72, // 10: CGCMsgMemCachedGetResponse.values:type_name -> CGCMsgMemCachedGetResponse.ValueTag - 73, // 11: CGCMsgMemCachedSet.keys:type_name -> CGCMsgMemCachedSet.KeyPair - 30, // 12: CGCMsgGetIPLocationResponse.infos:type_name -> CIPLocationInfo - 75, // 13: CMsgAMSendEmail.persona_name_tokens:type_name -> CMsgAMSendEmail.PersonaNameReplacementToken - 74, // 14: CMsgAMSendEmail.tokens:type_name -> CMsgAMSendEmail.ReplacementToken - 76, // 15: CMsgGCGetPersonaNames_Response.succeeded_lookups:type_name -> CMsgGCGetPersonaNames_Response.PersonaName - 77, // 16: CMsgGCMsgMasterSetDirectory.dir:type_name -> CMsgGCMsgMasterSetDirectory.SubGC - 1, // 17: CMsgGCRoutingInfo.method:type_name -> CMsgGCRoutingInfo.RoutingMethod - 1, // 18: CMsgGCRoutingInfo.fallback:type_name -> CMsgGCRoutingInfo.RoutingMethod - 78, // 19: CMsgGCMsgMasterSetWebAPIRouting.entries:type_name -> CMsgGCMsgMasterSetWebAPIRouting.Entry - 79, // 20: CMsgGCMsgMasterSetClientMsgRouting.entries:type_name -> CMsgGCMsgMasterSetClientMsgRouting.Entry - 2, // 21: CMsgGCMsgSetOptions.options:type_name -> CMsgGCMsgSetOptions.Option - 80, // 22: CMsgGCMsgSetOptions.client_msg_ranges:type_name -> CMsgGCMsgSetOptions.MessageRange - 81, // 23: CMsgGCHUpdateSession.extra_fields:type_name -> CMsgGCHUpdateSession.ExtraField - 82, // 24: CMsgNotificationOfSuspiciousActivity.multiple_instances:type_name -> CMsgNotificationOfSuspiciousActivity.MultipleGameInstances - 84, // 25: CMsgDPPartnerMicroTxns.partner:type_name -> CMsgDPPartnerMicroTxns.PartnerInfo - 83, // 26: CMsgDPPartnerMicroTxns.transactions:type_name -> CMsgDPPartnerMicroTxns.PartnerMicroTxn - 3, // 27: CMsgDPPartnerMicroTxnsResponse.eerrorcode:type_name -> CMsgDPPartnerMicroTxnsResponse.EErrorCode - 55, // 28: CMsgGCMsgMasterSetWebAPIRouting.Entry.routing:type_name -> CMsgGCRoutingInfo - 55, // 29: CMsgGCMsgMasterSetClientMsgRouting.Entry.routing:type_name -> CMsgGCRoutingInfo - 85, // 30: key_field:extendee -> google.protobuf.FieldOptions - 86, // 31: msgpool_soft_limit:extendee -> google.protobuf.MessageOptions - 86, // 32: msgpool_hard_limit:extendee -> google.protobuf.MessageOptions - 33, // [33:33] is the sub-list for method output_type - 33, // [33:33] is the sub-list for method input_type - 33, // [33:33] is the sub-list for extension type_name - 30, // [30:33] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name + 0, // 0: key_field:extendee -> google.protobuf.FieldOptions + 1, // 1: msgpool_soft_limit:extendee -> google.protobuf.MessageOptions + 1, // 2: msgpool_hard_limit:extendee -> google.protobuf.MessageOptions + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 0, // [0:3] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } func init() { file_steammessages_proto_init() } @@ -7020,994 +105,18 @@ func file_steammessages_proto_init() { if File_steammessages_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_steammessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgProtoBufHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgWebAPIKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgHttpRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgWebAPIRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgHttpResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMFindAccounts); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMFindAccountsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgNotifyWatchdog); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetLicenses); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgPackageLicense); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetLicensesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetUserGameStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetUserGameStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetCommandList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetCommandListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedGet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedGetResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedDelete); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgSQLStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgSQLStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMAddFreeLicense); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMAddFreeLicenseResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgGetIPLocation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CIPLocationInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgGetIPLocationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgSystemStatsSchema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgGetSystemStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgGetSystemStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMSendEmail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMSendEmailResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetEmailTemplate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetEmailTemplateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGrantGuestPasses2); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGrantGuestPasses2Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCSystemMsg_GetAccountDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCSystemMsg_GetAccountDetails_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPersonaNames); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPersonaNames_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCCheckFriendship); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCCheckFriendship_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetDirectory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetDirectory_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgWebAPIJobRequestForwardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCSystemMsg_GetPurchaseTrust_Request); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCSystemMsg_GetPurchaseTrust_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCHAccountVacStatusChange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPartnerAccountLink); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPartnerAccountLink_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCRoutingInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgSetOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCHUpdateSession); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgNotificationOfSuspiciousActivity); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPPartnerMicroTxns); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPPartnerMicroTxnsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CChinaAgreementSessions_StartAgreementSessionInGame_Request); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CChinaAgreementSessions_StartAgreementSessionInGame_Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgHttpRequest_RequestHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgHttpRequest_QueryParam); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgHttpResponse_ResponseHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetUserGameStatsResponse_Stats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMGetUserGameStatsResponse_Achievement_Blocks); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedGetResponse_ValueTag); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGCMsgMemCachedSet_KeyPair); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMSendEmail_ReplacementToken); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgAMSendEmail_PersonaNameReplacementToken); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCGetPersonaNames_Response_PersonaName); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetDirectory_SubGC); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting_Entry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting_Entry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCMsgSetOptions_MessageRange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgGCHUpdateSession_ExtraField); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPPartnerMicroTxns_PartnerMicroTxn); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_steammessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMsgDPPartnerMicroTxns_PartnerInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_steammessages_proto_rawDesc, - NumEnums: 4, - NumMessages: 81, + NumEnums: 0, + NumMessages: 0, NumExtensions: 3, NumServices: 0, }, GoTypes: file_steammessages_proto_goTypes, DependencyIndexes: file_steammessages_proto_depIdxs, - EnumInfos: file_steammessages_proto_enumTypes, - MessageInfos: file_steammessages_proto_msgTypes, ExtensionInfos: file_steammessages_proto_extTypes, }.Build() File_steammessages_proto = out.File diff --git a/pkg/demoinfocs/msgs2/cs_gameevents.pb.go b/pkg/demoinfocs/msgs2/cs_gameevents.pb.go new file mode 100644 index 00000000..b41874a8 --- /dev/null +++ b/pkg/demoinfocs/msgs2/cs_gameevents.pb.go @@ -0,0 +1,496 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/cs_gameevents.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ECsgoGameEvents int32 + +const ( + ECsgoGameEvents_GE_PlayerAnimEventId ECsgoGameEvents = 450 + ECsgoGameEvents_GE_RadioIconEventId ECsgoGameEvents = 451 + ECsgoGameEvents_GE_FireBulletsId ECsgoGameEvents = 452 +) + +// Enum value maps for ECsgoGameEvents. +var ( + ECsgoGameEvents_name = map[int32]string{ + 450: "GE_PlayerAnimEventId", + 451: "GE_RadioIconEventId", + 452: "GE_FireBulletsId", + } + ECsgoGameEvents_value = map[string]int32{ + "GE_PlayerAnimEventId": 450, + "GE_RadioIconEventId": 451, + "GE_FireBulletsId": 452, + } +) + +func (x ECsgoGameEvents) Enum() *ECsgoGameEvents { + p := new(ECsgoGameEvents) + *p = x + return p +} + +func (x ECsgoGameEvents) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ECsgoGameEvents) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cs_gameevents_proto_enumTypes[0].Descriptor() +} + +func (ECsgoGameEvents) Type() protoreflect.EnumType { + return &file_s2_cs_gameevents_proto_enumTypes[0] +} + +func (x ECsgoGameEvents) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ECsgoGameEvents) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ECsgoGameEvents(num) + return nil +} + +// Deprecated: Use ECsgoGameEvents.Descriptor instead. +func (ECsgoGameEvents) EnumDescriptor() ([]byte, []int) { + return file_s2_cs_gameevents_proto_rawDescGZIP(), []int{0} +} + +type CMsgTEPlayerAnimEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *uint32 `protobuf:"fixed32,1,opt,name=player,def=16777215" json:"player,omitempty"` + Event *uint32 `protobuf:"varint,2,opt,name=event" json:"event,omitempty"` + Data *int32 `protobuf:"varint,3,opt,name=data" json:"data,omitempty"` +} + +// Default values for CMsgTEPlayerAnimEvent fields. +const ( + Default_CMsgTEPlayerAnimEvent_Player = uint32(16777215) +) + +func (x *CMsgTEPlayerAnimEvent) Reset() { + *x = CMsgTEPlayerAnimEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cs_gameevents_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEPlayerAnimEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEPlayerAnimEvent) ProtoMessage() {} + +func (x *CMsgTEPlayerAnimEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_cs_gameevents_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEPlayerAnimEvent.ProtoReflect.Descriptor instead. +func (*CMsgTEPlayerAnimEvent) Descriptor() ([]byte, []int) { + return file_s2_cs_gameevents_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgTEPlayerAnimEvent) GetPlayer() uint32 { + if x != nil && x.Player != nil { + return *x.Player + } + return Default_CMsgTEPlayerAnimEvent_Player +} + +func (x *CMsgTEPlayerAnimEvent) GetEvent() uint32 { + if x != nil && x.Event != nil { + return *x.Event + } + return 0 +} + +func (x *CMsgTEPlayerAnimEvent) GetData() int32 { + if x != nil && x.Data != nil { + return *x.Data + } + return 0 +} + +type CMsgTERadioIcon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *uint32 `protobuf:"fixed32,1,opt,name=player,def=16777215" json:"player,omitempty"` +} + +// Default values for CMsgTERadioIcon fields. +const ( + Default_CMsgTERadioIcon_Player = uint32(16777215) +) + +func (x *CMsgTERadioIcon) Reset() { + *x = CMsgTERadioIcon{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cs_gameevents_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTERadioIcon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTERadioIcon) ProtoMessage() {} + +func (x *CMsgTERadioIcon) ProtoReflect() protoreflect.Message { + mi := &file_s2_cs_gameevents_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTERadioIcon.ProtoReflect.Descriptor instead. +func (*CMsgTERadioIcon) Descriptor() ([]byte, []int) { + return file_s2_cs_gameevents_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgTERadioIcon) GetPlayer() uint32 { + if x != nil && x.Player != nil { + return *x.Player + } + return Default_CMsgTERadioIcon_Player +} + +type CMsgTEFireBullets struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,2,opt,name=angles" json:"angles,omitempty"` + WeaponId *uint32 `protobuf:"varint,3,opt,name=weapon_id,json=weaponId,def=16777215" json:"weapon_id,omitempty"` + Mode *uint32 `protobuf:"varint,4,opt,name=mode" json:"mode,omitempty"` + Seed *uint32 `protobuf:"varint,5,opt,name=seed" json:"seed,omitempty"` + Player *uint32 `protobuf:"fixed32,6,opt,name=player,def=16777215" json:"player,omitempty"` + Inaccuracy *float32 `protobuf:"fixed32,7,opt,name=inaccuracy" json:"inaccuracy,omitempty"` + RecoilIndex *float32 `protobuf:"fixed32,8,opt,name=recoil_index,json=recoilIndex" json:"recoil_index,omitempty"` + Spread *float32 `protobuf:"fixed32,9,opt,name=spread" json:"spread,omitempty"` + SoundType *int32 `protobuf:"varint,10,opt,name=sound_type,json=soundType" json:"sound_type,omitempty"` + ItemDefIndex *uint32 `protobuf:"varint,11,opt,name=item_def_index,json=itemDefIndex" json:"item_def_index,omitempty"` + SoundDspEffect *uint32 `protobuf:"fixed32,12,opt,name=sound_dsp_effect,json=soundDspEffect" json:"sound_dsp_effect,omitempty"` +} + +// Default values for CMsgTEFireBullets fields. +const ( + Default_CMsgTEFireBullets_WeaponId = uint32(16777215) + Default_CMsgTEFireBullets_Player = uint32(16777215) +) + +func (x *CMsgTEFireBullets) Reset() { + *x = CMsgTEFireBullets{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cs_gameevents_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEFireBullets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEFireBullets) ProtoMessage() {} + +func (x *CMsgTEFireBullets) ProtoReflect() protoreflect.Message { + mi := &file_s2_cs_gameevents_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEFireBullets.ProtoReflect.Descriptor instead. +func (*CMsgTEFireBullets) Descriptor() ([]byte, []int) { + return file_s2_cs_gameevents_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgTEFireBullets) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEFireBullets) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgTEFireBullets) GetWeaponId() uint32 { + if x != nil && x.WeaponId != nil { + return *x.WeaponId + } + return Default_CMsgTEFireBullets_WeaponId +} + +func (x *CMsgTEFireBullets) GetMode() uint32 { + if x != nil && x.Mode != nil { + return *x.Mode + } + return 0 +} + +func (x *CMsgTEFireBullets) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *CMsgTEFireBullets) GetPlayer() uint32 { + if x != nil && x.Player != nil { + return *x.Player + } + return Default_CMsgTEFireBullets_Player +} + +func (x *CMsgTEFireBullets) GetInaccuracy() float32 { + if x != nil && x.Inaccuracy != nil { + return *x.Inaccuracy + } + return 0 +} + +func (x *CMsgTEFireBullets) GetRecoilIndex() float32 { + if x != nil && x.RecoilIndex != nil { + return *x.RecoilIndex + } + return 0 +} + +func (x *CMsgTEFireBullets) GetSpread() float32 { + if x != nil && x.Spread != nil { + return *x.Spread + } + return 0 +} + +func (x *CMsgTEFireBullets) GetSoundType() int32 { + if x != nil && x.SoundType != nil { + return *x.SoundType + } + return 0 +} + +func (x *CMsgTEFireBullets) GetItemDefIndex() uint32 { + if x != nil && x.ItemDefIndex != nil { + return *x.ItemDefIndex + } + return 0 +} + +func (x *CMsgTEFireBullets) GetSoundDspEffect() uint32 { + if x != nil && x.SoundDspEffect != nil { + return *x.SoundDspEffect + } + return 0 +} + +var File_s2_cs_gameevents_proto protoreflect.FileDescriptor + +var file_s2_cs_gameevents_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x73, 0x32, 0x2f, 0x63, 0x73, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x1a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, + 0x61, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, + 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6e, + 0x69, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, + 0x35, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x33, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x52, 0x61, 0x64, + 0x69, 0x6f, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, + 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0xec, 0x03, 0x0a, 0x11, 0x43, 0x4d, 0x73, + 0x67, 0x54, 0x45, 0x46, 0x69, 0x72, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x4d, + 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, 0x0a, + 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x09, + 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, + 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x08, 0x77, 0x65, 0x61, 0x70, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x06, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x08, 0x31, 0x36, 0x37, + 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x69, 0x6e, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x69, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x69, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x5f, + 0x64, 0x65, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, + 0x10, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x64, 0x73, 0x70, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x73, + 0x70, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x2a, 0x5d, 0x0a, 0x0f, 0x45, 0x43, 0x73, 0x67, 0x6f, + 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x45, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6e, 0x69, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x10, 0xc2, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x47, 0x45, 0x5f, 0x52, 0x61, 0x64, 0x69, + 0x6f, 0x49, 0x63, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x10, 0xc3, 0x03, 0x12, + 0x15, 0x0a, 0x10, 0x47, 0x45, 0x5f, 0x46, 0x69, 0x72, 0x65, 0x42, 0x75, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x49, 0x64, 0x10, 0xc4, 0x03, +} + +var ( + file_s2_cs_gameevents_proto_rawDescOnce sync.Once + file_s2_cs_gameevents_proto_rawDescData = file_s2_cs_gameevents_proto_rawDesc +) + +func file_s2_cs_gameevents_proto_rawDescGZIP() []byte { + file_s2_cs_gameevents_proto_rawDescOnce.Do(func() { + file_s2_cs_gameevents_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_cs_gameevents_proto_rawDescData) + }) + return file_s2_cs_gameevents_proto_rawDescData +} + +var file_s2_cs_gameevents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_s2_cs_gameevents_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_s2_cs_gameevents_proto_goTypes = []interface{}{ + (ECsgoGameEvents)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.ECsgoGameEvents + (*CMsgTEPlayerAnimEvent)(nil), // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPlayerAnimEvent + (*CMsgTERadioIcon)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgTERadioIcon + (*CMsgTEFireBullets)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEFireBullets + (*CMsgVector)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + (*CMsgQAngle)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle +} +var file_s2_cs_gameevents_proto_depIdxs = []int32{ + 4, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEFireBullets.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 5, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEFireBullets.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_s2_cs_gameevents_proto_init() } +func file_s2_cs_gameevents_proto_init() { + if File_s2_cs_gameevents_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_cs_gameevents_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEPlayerAnimEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cs_gameevents_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTERadioIcon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cs_gameevents_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEFireBullets); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_cs_gameevents_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_cs_gameevents_proto_goTypes, + DependencyIndexes: file_s2_cs_gameevents_proto_depIdxs, + EnumInfos: file_s2_cs_gameevents_proto_enumTypes, + MessageInfos: file_s2_cs_gameevents_proto_msgTypes, + }.Build() + File_s2_cs_gameevents_proto = out.File + file_s2_cs_gameevents_proto_rawDesc = nil + file_s2_cs_gameevents_proto_goTypes = nil + file_s2_cs_gameevents_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/cstrike15_gcmessages.pb.go b/pkg/demoinfocs/msgs2/cstrike15_gcmessages.pb.go new file mode 100644 index 00000000..3b5a257a --- /dev/null +++ b/pkg/demoinfocs/msgs2/cstrike15_gcmessages.pb.go @@ -0,0 +1,17644 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/cstrike15_gcmessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ECsgoGCMsg int32 + +const ( + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Base ECsgoGCMsg = 9100 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingStart ECsgoGCMsg = 9101 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingStop ECsgoGCMsg = 9102 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingClient2ServerPing ECsgoGCMsg = 9103 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate ECsgoGCMsg = 9104 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse ECsgoGCMsg = 9106 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve ECsgoGCMsg = 9107 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello ECsgoGCMsg = 9109 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello ECsgoGCMsg = 9110 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon ECsgoGCMsg = 9112 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate ECsgoGCMsg = 9117 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ServerNotificationForUserPenalty ECsgoGCMsg = 9118 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientReportPlayer ECsgoGCMsg = 9119 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientReportServer ECsgoGCMsg = 9120 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientCommendPlayer ECsgoGCMsg = 9121 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientReportResponse ECsgoGCMsg = 9122 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery ECsgoGCMsg = 9123 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse ECsgoGCMsg = 9124 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_WatchInfoUsers ECsgoGCMsg = 9126 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile ECsgoGCMsg = 9127 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_PlayersProfile ECsgoGCMsg = 9128 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate ECsgoGCMsg = 9131 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment ECsgoGCMsg = 9132 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus ECsgoGCMsg = 9133 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientTextMsg ECsgoGCMsg = 9134 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Client2GCTextMsg ECsgoGCMsg = 9135 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops ECsgoGCMsg = 9136 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification ECsgoGCMsg = 9137 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2 ECsgoGCMsg = 9138 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchList ECsgoGCMsg = 9139 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames ECsgoGCMsg = 9140 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestRecentUserGames ECsgoGCMsg = 9141 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ServerReservationUpdate ECsgoGCMsg = 9142 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientVarValueNotificationInfo ECsgoGCMsg = 9144 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestTournamentGames ECsgoGCMsg = 9146 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestFullGameInfo ECsgoGCMsg = 9147 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GiftsLeaderboardRequest ECsgoGCMsg = 9148 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GiftsLeaderboardResponse ECsgoGCMsg = 9149 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ServerVarValueNotificationInfo ECsgoGCMsg = 9150 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientSubmitSurveyVote ECsgoGCMsg = 9152 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Server2GCClientValidate ECsgoGCMsg = 9153 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser ECsgoGCMsg = 9154 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest ECsgoGCMsg = 9156 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse ECsgoGCMsg = 9157 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_AccountPrivacySettings ECsgoGCMsg = 9158 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_SetMyActivityInfo ECsgoGCMsg = 9159 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions ECsgoGCMsg = 9160 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions ECsgoGCMsg = 9161 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_DraftSummary ECsgoGCMsg = 9162 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData ECsgoGCMsg = 9163 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestJoinServerData ECsgoGCMsg = 9164 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestNewMission ECsgoGCMsg = 9165 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientTournamentInfo ECsgoGCMsg = 9167 + ECsgoGCMsg_k_EMsgGC_GlobalGame_Subscribe ECsgoGCMsg = 9168 + ECsgoGCMsg_k_EMsgGC_GlobalGame_Unsubscribe ECsgoGCMsg = 9169 + ECsgoGCMsg_k_EMsgGC_GlobalGame_Play ECsgoGCMsg = 9170 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_AcknowledgePenalty ECsgoGCMsg = 9171 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin ECsgoGCMsg = 9172 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientGlobalStats ECsgoGCMsg = 9173 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Client2GCStreamUnlock ECsgoGCMsg = 9174 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_FantasyRequestClientData ECsgoGCMsg = 9175 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_FantasyUpdateClientData ECsgoGCMsg = 9176 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket ECsgoGCMsg = 9177 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientToGCRequestTicket ECsgoGCMsg = 9178 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientToGCRequestElevate ECsgoGCMsg = 9179 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GlobalChat ECsgoGCMsg = 9180 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GlobalChat_Subscribe ECsgoGCMsg = 9181 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GlobalChat_Unsubscribe ECsgoGCMsg = 9182 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientAuthKeyCode ECsgoGCMsg = 9183 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GotvSyncPacket ECsgoGCMsg = 9184 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientPlayerDecalSign ECsgoGCMsg = 9185 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientLogonFatalError ECsgoGCMsg = 9187 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientPollState ECsgoGCMsg = 9188 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Party_Register ECsgoGCMsg = 9189 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Party_Unregister ECsgoGCMsg = 9190 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Party_Search ECsgoGCMsg = 9191 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Party_Invite ECsgoGCMsg = 9192 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_Account_RequestCoPlays ECsgoGCMsg = 9193 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientGCRankUpdate ECsgoGCMsg = 9194 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestOffers ECsgoGCMsg = 9195 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientAccountBalance ECsgoGCMsg = 9196 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientPartyJoinRelay ECsgoGCMsg = 9197 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientPartyWarning ECsgoGCMsg = 9198 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_SetEventFavorite ECsgoGCMsg = 9200 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GetEventFavorites_Request ECsgoGCMsg = 9201 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientPerfReport ECsgoGCMsg = 9202 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GetEventFavorites_Response ECsgoGCMsg = 9203 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRequestSouvenir ECsgoGCMsg = 9204 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientReportValidation ECsgoGCMsg = 9205 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode ECsgoGCMsg = 9206 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientRequestValidation ECsgoGCMsg = 9207 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_ClientRedeemMissionReward ECsgoGCMsg = 9209 + ECsgoGCMsg_k_EMsgGCCStrike15_ClientDeepStats ECsgoGCMsg = 9210 + ECsgoGCMsg_k_EMsgGCCStrike15_StartAgreementSessionInGame ECsgoGCMsg = 9211 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientInitSystem ECsgoGCMsg = 9212 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_GC2ClientInitSystem_Response ECsgoGCMsg = 9213 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_PrivateQueues ECsgoGCMsg = 9214 + ECsgoGCMsg_k_EMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt ECsgoGCMsg = 9215 +) + +// Enum value maps for ECsgoGCMsg. +var ( + ECsgoGCMsg_name = map[int32]string{ + 9100: "k_EMsgGCCStrike15_v2_Base", + 9101: "k_EMsgGCCStrike15_v2_MatchmakingStart", + 9102: "k_EMsgGCCStrike15_v2_MatchmakingStop", + 9103: "k_EMsgGCCStrike15_v2_MatchmakingClient2ServerPing", + 9104: "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate", + 9106: "k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse", + 9107: "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve", + 9109: "k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello", + 9110: "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello", + 9112: "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon", + 9117: "k_EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate", + 9118: "k_EMsgGCCStrike15_v2_ServerNotificationForUserPenalty", + 9119: "k_EMsgGCCStrike15_v2_ClientReportPlayer", + 9120: "k_EMsgGCCStrike15_v2_ClientReportServer", + 9121: "k_EMsgGCCStrike15_v2_ClientCommendPlayer", + 9122: "k_EMsgGCCStrike15_v2_ClientReportResponse", + 9123: "k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery", + 9124: "k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse", + 9126: "k_EMsgGCCStrike15_v2_WatchInfoUsers", + 9127: "k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile", + 9128: "k_EMsgGCCStrike15_v2_PlayersProfile", + 9131: "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate", + 9132: "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment", + 9133: "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus", + 9134: "k_EMsgGCCStrike15_v2_GC2ClientTextMsg", + 9135: "k_EMsgGCCStrike15_v2_Client2GCTextMsg", + 9136: "k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops", + 9137: "k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification", + 9138: "k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2", + 9139: "k_EMsgGCCStrike15_v2_MatchList", + 9140: "k_EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames", + 9141: "k_EMsgGCCStrike15_v2_MatchListRequestRecentUserGames", + 9142: "k_EMsgGCCStrike15_v2_GC2ServerReservationUpdate", + 9144: "k_EMsgGCCStrike15_v2_ClientVarValueNotificationInfo", + 9146: "k_EMsgGCCStrike15_v2_MatchListRequestTournamentGames", + 9147: "k_EMsgGCCStrike15_v2_MatchListRequestFullGameInfo", + 9148: "k_EMsgGCCStrike15_v2_GiftsLeaderboardRequest", + 9149: "k_EMsgGCCStrike15_v2_GiftsLeaderboardResponse", + 9150: "k_EMsgGCCStrike15_v2_ServerVarValueNotificationInfo", + 9152: "k_EMsgGCCStrike15_v2_ClientSubmitSurveyVote", + 9153: "k_EMsgGCCStrike15_v2_Server2GCClientValidate", + 9154: "k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser", + 9156: "k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest", + 9157: "k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse", + 9158: "k_EMsgGCCStrike15_v2_AccountPrivacySettings", + 9159: "k_EMsgGCCStrike15_v2_SetMyActivityInfo", + 9160: "k_EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions", + 9161: "k_EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions", + 9162: "k_EMsgGCCStrike15_v2_DraftSummary", + 9163: "k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData", + 9164: "k_EMsgGCCStrike15_v2_ClientRequestJoinServerData", + 9165: "k_EMsgGCCStrike15_v2_ClientRequestNewMission", + 9167: "k_EMsgGCCStrike15_v2_GC2ClientTournamentInfo", + 9168: "k_EMsgGC_GlobalGame_Subscribe", + 9169: "k_EMsgGC_GlobalGame_Unsubscribe", + 9170: "k_EMsgGC_GlobalGame_Play", + 9171: "k_EMsgGCCStrike15_v2_AcknowledgePenalty", + 9172: "k_EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin", + 9173: "k_EMsgGCCStrike15_v2_GC2ClientGlobalStats", + 9174: "k_EMsgGCCStrike15_v2_Client2GCStreamUnlock", + 9175: "k_EMsgGCCStrike15_v2_FantasyRequestClientData", + 9176: "k_EMsgGCCStrike15_v2_FantasyUpdateClientData", + 9177: "k_EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket", + 9178: "k_EMsgGCCStrike15_v2_ClientToGCRequestTicket", + 9179: "k_EMsgGCCStrike15_v2_ClientToGCRequestElevate", + 9180: "k_EMsgGCCStrike15_v2_GlobalChat", + 9181: "k_EMsgGCCStrike15_v2_GlobalChat_Subscribe", + 9182: "k_EMsgGCCStrike15_v2_GlobalChat_Unsubscribe", + 9183: "k_EMsgGCCStrike15_v2_ClientAuthKeyCode", + 9184: "k_EMsgGCCStrike15_v2_GotvSyncPacket", + 9185: "k_EMsgGCCStrike15_v2_ClientPlayerDecalSign", + 9187: "k_EMsgGCCStrike15_v2_ClientLogonFatalError", + 9188: "k_EMsgGCCStrike15_v2_ClientPollState", + 9189: "k_EMsgGCCStrike15_v2_Party_Register", + 9190: "k_EMsgGCCStrike15_v2_Party_Unregister", + 9191: "k_EMsgGCCStrike15_v2_Party_Search", + 9192: "k_EMsgGCCStrike15_v2_Party_Invite", + 9193: "k_EMsgGCCStrike15_v2_Account_RequestCoPlays", + 9194: "k_EMsgGCCStrike15_v2_ClientGCRankUpdate", + 9195: "k_EMsgGCCStrike15_v2_ClientRequestOffers", + 9196: "k_EMsgGCCStrike15_v2_ClientAccountBalance", + 9197: "k_EMsgGCCStrike15_v2_ClientPartyJoinRelay", + 9198: "k_EMsgGCCStrike15_v2_ClientPartyWarning", + 9200: "k_EMsgGCCStrike15_v2_SetEventFavorite", + 9201: "k_EMsgGCCStrike15_v2_GetEventFavorites_Request", + 9202: "k_EMsgGCCStrike15_v2_ClientPerfReport", + 9203: "k_EMsgGCCStrike15_v2_GetEventFavorites_Response", + 9204: "k_EMsgGCCStrike15_v2_ClientRequestSouvenir", + 9205: "k_EMsgGCCStrike15_v2_ClientReportValidation", + 9206: "k_EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode", + 9207: "k_EMsgGCCStrike15_v2_GC2ClientRequestValidation", + 9209: "k_EMsgGCCStrike15_v2_ClientRedeemMissionReward", + 9210: "k_EMsgGCCStrike15_ClientDeepStats", + 9211: "k_EMsgGCCStrike15_StartAgreementSessionInGame", + 9212: "k_EMsgGCCStrike15_v2_GC2ClientInitSystem", + 9213: "k_EMsgGCCStrike15_v2_GC2ClientInitSystem_Response", + 9214: "k_EMsgGCCStrike15_v2_PrivateQueues", + 9215: "k_EMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt", + } + ECsgoGCMsg_value = map[string]int32{ + "k_EMsgGCCStrike15_v2_Base": 9100, + "k_EMsgGCCStrike15_v2_MatchmakingStart": 9101, + "k_EMsgGCCStrike15_v2_MatchmakingStop": 9102, + "k_EMsgGCCStrike15_v2_MatchmakingClient2ServerPing": 9103, + "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate": 9104, + "k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse": 9106, + "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve": 9107, + "k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello": 9109, + "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello": 9110, + "k_EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon": 9112, + "k_EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate": 9117, + "k_EMsgGCCStrike15_v2_ServerNotificationForUserPenalty": 9118, + "k_EMsgGCCStrike15_v2_ClientReportPlayer": 9119, + "k_EMsgGCCStrike15_v2_ClientReportServer": 9120, + "k_EMsgGCCStrike15_v2_ClientCommendPlayer": 9121, + "k_EMsgGCCStrike15_v2_ClientReportResponse": 9122, + "k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery": 9123, + "k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse": 9124, + "k_EMsgGCCStrike15_v2_WatchInfoUsers": 9126, + "k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile": 9127, + "k_EMsgGCCStrike15_v2_PlayersProfile": 9128, + "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate": 9131, + "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment": 9132, + "k_EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus": 9133, + "k_EMsgGCCStrike15_v2_GC2ClientTextMsg": 9134, + "k_EMsgGCCStrike15_v2_Client2GCTextMsg": 9135, + "k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops": 9136, + "k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification": 9137, + "k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2": 9138, + "k_EMsgGCCStrike15_v2_MatchList": 9139, + "k_EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames": 9140, + "k_EMsgGCCStrike15_v2_MatchListRequestRecentUserGames": 9141, + "k_EMsgGCCStrike15_v2_GC2ServerReservationUpdate": 9142, + "k_EMsgGCCStrike15_v2_ClientVarValueNotificationInfo": 9144, + "k_EMsgGCCStrike15_v2_MatchListRequestTournamentGames": 9146, + "k_EMsgGCCStrike15_v2_MatchListRequestFullGameInfo": 9147, + "k_EMsgGCCStrike15_v2_GiftsLeaderboardRequest": 9148, + "k_EMsgGCCStrike15_v2_GiftsLeaderboardResponse": 9149, + "k_EMsgGCCStrike15_v2_ServerVarValueNotificationInfo": 9150, + "k_EMsgGCCStrike15_v2_ClientSubmitSurveyVote": 9152, + "k_EMsgGCCStrike15_v2_Server2GCClientValidate": 9153, + "k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser": 9154, + "k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest": 9156, + "k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse": 9157, + "k_EMsgGCCStrike15_v2_AccountPrivacySettings": 9158, + "k_EMsgGCCStrike15_v2_SetMyActivityInfo": 9159, + "k_EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions": 9160, + "k_EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions": 9161, + "k_EMsgGCCStrike15_v2_DraftSummary": 9162, + "k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData": 9163, + "k_EMsgGCCStrike15_v2_ClientRequestJoinServerData": 9164, + "k_EMsgGCCStrike15_v2_ClientRequestNewMission": 9165, + "k_EMsgGCCStrike15_v2_GC2ClientTournamentInfo": 9167, + "k_EMsgGC_GlobalGame_Subscribe": 9168, + "k_EMsgGC_GlobalGame_Unsubscribe": 9169, + "k_EMsgGC_GlobalGame_Play": 9170, + "k_EMsgGCCStrike15_v2_AcknowledgePenalty": 9171, + "k_EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin": 9172, + "k_EMsgGCCStrike15_v2_GC2ClientGlobalStats": 9173, + "k_EMsgGCCStrike15_v2_Client2GCStreamUnlock": 9174, + "k_EMsgGCCStrike15_v2_FantasyRequestClientData": 9175, + "k_EMsgGCCStrike15_v2_FantasyUpdateClientData": 9176, + "k_EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket": 9177, + "k_EMsgGCCStrike15_v2_ClientToGCRequestTicket": 9178, + "k_EMsgGCCStrike15_v2_ClientToGCRequestElevate": 9179, + "k_EMsgGCCStrike15_v2_GlobalChat": 9180, + "k_EMsgGCCStrike15_v2_GlobalChat_Subscribe": 9181, + "k_EMsgGCCStrike15_v2_GlobalChat_Unsubscribe": 9182, + "k_EMsgGCCStrike15_v2_ClientAuthKeyCode": 9183, + "k_EMsgGCCStrike15_v2_GotvSyncPacket": 9184, + "k_EMsgGCCStrike15_v2_ClientPlayerDecalSign": 9185, + "k_EMsgGCCStrike15_v2_ClientLogonFatalError": 9187, + "k_EMsgGCCStrike15_v2_ClientPollState": 9188, + "k_EMsgGCCStrike15_v2_Party_Register": 9189, + "k_EMsgGCCStrike15_v2_Party_Unregister": 9190, + "k_EMsgGCCStrike15_v2_Party_Search": 9191, + "k_EMsgGCCStrike15_v2_Party_Invite": 9192, + "k_EMsgGCCStrike15_v2_Account_RequestCoPlays": 9193, + "k_EMsgGCCStrike15_v2_ClientGCRankUpdate": 9194, + "k_EMsgGCCStrike15_v2_ClientRequestOffers": 9195, + "k_EMsgGCCStrike15_v2_ClientAccountBalance": 9196, + "k_EMsgGCCStrike15_v2_ClientPartyJoinRelay": 9197, + "k_EMsgGCCStrike15_v2_ClientPartyWarning": 9198, + "k_EMsgGCCStrike15_v2_SetEventFavorite": 9200, + "k_EMsgGCCStrike15_v2_GetEventFavorites_Request": 9201, + "k_EMsgGCCStrike15_v2_ClientPerfReport": 9202, + "k_EMsgGCCStrike15_v2_GetEventFavorites_Response": 9203, + "k_EMsgGCCStrike15_v2_ClientRequestSouvenir": 9204, + "k_EMsgGCCStrike15_v2_ClientReportValidation": 9205, + "k_EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode": 9206, + "k_EMsgGCCStrike15_v2_GC2ClientRequestValidation": 9207, + "k_EMsgGCCStrike15_v2_ClientRedeemMissionReward": 9209, + "k_EMsgGCCStrike15_ClientDeepStats": 9210, + "k_EMsgGCCStrike15_StartAgreementSessionInGame": 9211, + "k_EMsgGCCStrike15_v2_GC2ClientInitSystem": 9212, + "k_EMsgGCCStrike15_v2_GC2ClientInitSystem_Response": 9213, + "k_EMsgGCCStrike15_v2_PrivateQueues": 9214, + "k_EMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt": 9215, + } +) + +func (x ECsgoGCMsg) Enum() *ECsgoGCMsg { + p := new(ECsgoGCMsg) + *p = x + return p +} + +func (x ECsgoGCMsg) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ECsgoGCMsg) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_gcmessages_proto_enumTypes[0].Descriptor() +} + +func (ECsgoGCMsg) Type() protoreflect.EnumType { + return &file_s2_cstrike15_gcmessages_proto_enumTypes[0] +} + +func (x ECsgoGCMsg) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ECsgoGCMsg) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ECsgoGCMsg(num) + return nil +} + +// Deprecated: Use ECsgoGCMsg.Descriptor instead. +func (ECsgoGCMsg) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{0} +} + +type ECsgoSteamUserStat int32 + +const ( + ECsgoSteamUserStat_k_ECsgoSteamUserStat_XpEarnedGames ECsgoSteamUserStat = 1 + ECsgoSteamUserStat_k_ECsgoSteamUserStat_MatchWinsCompetitive ECsgoSteamUserStat = 2 + ECsgoSteamUserStat_k_ECsgoSteamUserStat_SurvivedDangerZone ECsgoSteamUserStat = 3 +) + +// Enum value maps for ECsgoSteamUserStat. +var ( + ECsgoSteamUserStat_name = map[int32]string{ + 1: "k_ECsgoSteamUserStat_XpEarnedGames", + 2: "k_ECsgoSteamUserStat_MatchWinsCompetitive", + 3: "k_ECsgoSteamUserStat_SurvivedDangerZone", + } + ECsgoSteamUserStat_value = map[string]int32{ + "k_ECsgoSteamUserStat_XpEarnedGames": 1, + "k_ECsgoSteamUserStat_MatchWinsCompetitive": 2, + "k_ECsgoSteamUserStat_SurvivedDangerZone": 3, + } +) + +func (x ECsgoSteamUserStat) Enum() *ECsgoSteamUserStat { + p := new(ECsgoSteamUserStat) + *p = x + return p +} + +func (x ECsgoSteamUserStat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ECsgoSteamUserStat) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_gcmessages_proto_enumTypes[1].Descriptor() +} + +func (ECsgoSteamUserStat) Type() protoreflect.EnumType { + return &file_s2_cstrike15_gcmessages_proto_enumTypes[1] +} + +func (x ECsgoSteamUserStat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ECsgoSteamUserStat) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ECsgoSteamUserStat(num) + return nil +} + +// Deprecated: Use ECsgoSteamUserStat.Descriptor instead. +func (ECsgoSteamUserStat) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{1} +} + +type EClientReportingVersion int32 + +const ( + EClientReportingVersion_k_EClientReportingVersion_OldVersion EClientReportingVersion = 0 + EClientReportingVersion_k_EClientReportingVersion_BetaVersion EClientReportingVersion = 1 + EClientReportingVersion_k_EClientReportingVersion_SupportsTrustedMode EClientReportingVersion = 2 +) + +// Enum value maps for EClientReportingVersion. +var ( + EClientReportingVersion_name = map[int32]string{ + 0: "k_EClientReportingVersion_OldVersion", + 1: "k_EClientReportingVersion_BetaVersion", + 2: "k_EClientReportingVersion_SupportsTrustedMode", + } + EClientReportingVersion_value = map[string]int32{ + "k_EClientReportingVersion_OldVersion": 0, + "k_EClientReportingVersion_BetaVersion": 1, + "k_EClientReportingVersion_SupportsTrustedMode": 2, + } +) + +func (x EClientReportingVersion) Enum() *EClientReportingVersion { + p := new(EClientReportingVersion) + *p = x + return p +} + +func (x EClientReportingVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EClientReportingVersion) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_gcmessages_proto_enumTypes[2].Descriptor() +} + +func (EClientReportingVersion) Type() protoreflect.EnumType { + return &file_s2_cstrike15_gcmessages_proto_enumTypes[2] +} + +func (x EClientReportingVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EClientReportingVersion) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EClientReportingVersion(num) + return nil +} + +// Deprecated: Use EClientReportingVersion.Descriptor instead. +func (EClientReportingVersion) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{2} +} + +type EInitSystemResult int32 + +const ( + EInitSystemResult_k_EInitSystemResult_Invalid EInitSystemResult = 0 + EInitSystemResult_k_EInitSystemResult_Success EInitSystemResult = 1 + EInitSystemResult_k_EInitSystemResult_None EInitSystemResult = 2 + EInitSystemResult_k_EInitSystemResult_NotFound EInitSystemResult = 3 + EInitSystemResult_k_EInitSystemResult_Existing EInitSystemResult = 4 + EInitSystemResult_k_EInitSystemResult_FailedOpen EInitSystemResult = 5 + EInitSystemResult_k_EInitSystemResult_Mismatch EInitSystemResult = 6 + EInitSystemResult_k_EInitSystemResult_FailedInit EInitSystemResult = 7 + EInitSystemResult_k_EInitSystemResult_Max EInitSystemResult = 8 +) + +// Enum value maps for EInitSystemResult. +var ( + EInitSystemResult_name = map[int32]string{ + 0: "k_EInitSystemResult_Invalid", + 1: "k_EInitSystemResult_Success", + 2: "k_EInitSystemResult_None", + 3: "k_EInitSystemResult_NotFound", + 4: "k_EInitSystemResult_Existing", + 5: "k_EInitSystemResult_FailedOpen", + 6: "k_EInitSystemResult_Mismatch", + 7: "k_EInitSystemResult_FailedInit", + 8: "k_EInitSystemResult_Max", + } + EInitSystemResult_value = map[string]int32{ + "k_EInitSystemResult_Invalid": 0, + "k_EInitSystemResult_Success": 1, + "k_EInitSystemResult_None": 2, + "k_EInitSystemResult_NotFound": 3, + "k_EInitSystemResult_Existing": 4, + "k_EInitSystemResult_FailedOpen": 5, + "k_EInitSystemResult_Mismatch": 6, + "k_EInitSystemResult_FailedInit": 7, + "k_EInitSystemResult_Max": 8, + } +) + +func (x EInitSystemResult) Enum() *EInitSystemResult { + p := new(EInitSystemResult) + *p = x + return p +} + +func (x EInitSystemResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EInitSystemResult) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_gcmessages_proto_enumTypes[3].Descriptor() +} + +func (EInitSystemResult) Type() protoreflect.EnumType { + return &file_s2_cstrike15_gcmessages_proto_enumTypes[3] +} + +func (x EInitSystemResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EInitSystemResult) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EInitSystemResult(num) + return nil +} + +// Deprecated: Use EInitSystemResult.Descriptor instead. +func (EInitSystemResult) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{3} +} + +type GameServerPing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ping *int32 `protobuf:"varint,2,opt,name=ping" json:"ping,omitempty"` + Ip *uint32 `protobuf:"varint,3,opt,name=ip" json:"ip,omitempty"` + Instances *uint32 `protobuf:"varint,5,opt,name=instances" json:"instances,omitempty"` +} + +func (x *GameServerPing) Reset() { + *x = GameServerPing{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameServerPing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameServerPing) ProtoMessage() {} + +func (x *GameServerPing) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameServerPing.ProtoReflect.Descriptor instead. +func (*GameServerPing) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{0} +} + +func (x *GameServerPing) GetPing() int32 { + if x != nil && x.Ping != nil { + return *x.Ping + } + return 0 +} + +func (x *GameServerPing) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +func (x *GameServerPing) GetInstances() uint32 { + if x != nil && x.Instances != nil { + return *x.Instances + } + return 0 +} + +type DataCenterPing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DataCenterId *uint32 `protobuf:"fixed32,1,opt,name=data_center_id,json=dataCenterId" json:"data_center_id,omitempty"` + Ping *int32 `protobuf:"zigzag32,2,opt,name=ping" json:"ping,omitempty"` +} + +func (x *DataCenterPing) Reset() { + *x = DataCenterPing{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataCenterPing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataCenterPing) ProtoMessage() {} + +func (x *DataCenterPing) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataCenterPing.ProtoReflect.Descriptor instead. +func (*DataCenterPing) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{1} +} + +func (x *DataCenterPing) GetDataCenterId() uint32 { + if x != nil && x.DataCenterId != nil { + return *x.DataCenterId + } + return 0 +} + +func (x *DataCenterPing) GetPing() int32 { + if x != nil && x.Ping != nil { + return *x.Ping + } + return 0 +} + +type DetailedSearchStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GameType *uint32 `protobuf:"varint,1,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + SearchTimeAvg *uint32 `protobuf:"varint,2,opt,name=search_time_avg,json=searchTimeAvg" json:"search_time_avg,omitempty"` + PlayersSearching *uint32 `protobuf:"varint,4,opt,name=players_searching,json=playersSearching" json:"players_searching,omitempty"` +} + +func (x *DetailedSearchStatistic) Reset() { + *x = DetailedSearchStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DetailedSearchStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetailedSearchStatistic) ProtoMessage() {} + +func (x *DetailedSearchStatistic) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetailedSearchStatistic.ProtoReflect.Descriptor instead. +func (*DetailedSearchStatistic) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{2} +} + +func (x *DetailedSearchStatistic) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *DetailedSearchStatistic) GetSearchTimeAvg() uint32 { + if x != nil && x.SearchTimeAvg != nil { + return *x.SearchTimeAvg + } + return 0 +} + +func (x *DetailedSearchStatistic) GetPlayersSearching() uint32 { + if x != nil && x.PlayersSearching != nil { + return *x.PlayersSearching + } + return 0 +} + +type TournamentPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + PlayerNick *string `protobuf:"bytes,2,opt,name=player_nick,json=playerNick" json:"player_nick,omitempty"` + PlayerName *string `protobuf:"bytes,3,opt,name=player_name,json=playerName" json:"player_name,omitempty"` + PlayerDob *uint32 `protobuf:"varint,4,opt,name=player_dob,json=playerDob" json:"player_dob,omitempty"` + PlayerFlag *string `protobuf:"bytes,5,opt,name=player_flag,json=playerFlag" json:"player_flag,omitempty"` + PlayerLocation *string `protobuf:"bytes,6,opt,name=player_location,json=playerLocation" json:"player_location,omitempty"` + PlayerDesc *string `protobuf:"bytes,7,opt,name=player_desc,json=playerDesc" json:"player_desc,omitempty"` +} + +func (x *TournamentPlayer) Reset() { + *x = TournamentPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TournamentPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TournamentPlayer) ProtoMessage() {} + +func (x *TournamentPlayer) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TournamentPlayer.ProtoReflect.Descriptor instead. +func (*TournamentPlayer) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{3} +} + +func (x *TournamentPlayer) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *TournamentPlayer) GetPlayerNick() string { + if x != nil && x.PlayerNick != nil { + return *x.PlayerNick + } + return "" +} + +func (x *TournamentPlayer) GetPlayerName() string { + if x != nil && x.PlayerName != nil { + return *x.PlayerName + } + return "" +} + +func (x *TournamentPlayer) GetPlayerDob() uint32 { + if x != nil && x.PlayerDob != nil { + return *x.PlayerDob + } + return 0 +} + +func (x *TournamentPlayer) GetPlayerFlag() string { + if x != nil && x.PlayerFlag != nil { + return *x.PlayerFlag + } + return "" +} + +func (x *TournamentPlayer) GetPlayerLocation() string { + if x != nil && x.PlayerLocation != nil { + return *x.PlayerLocation + } + return "" +} + +func (x *TournamentPlayer) GetPlayerDesc() string { + if x != nil && x.PlayerDesc != nil { + return *x.PlayerDesc + } + return "" +} + +type TournamentTeam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TeamId *int32 `protobuf:"varint,1,opt,name=team_id,json=teamId" json:"team_id,omitempty"` + TeamTag *string `protobuf:"bytes,2,opt,name=team_tag,json=teamTag" json:"team_tag,omitempty"` + TeamFlag *string `protobuf:"bytes,3,opt,name=team_flag,json=teamFlag" json:"team_flag,omitempty"` + TeamName *string `protobuf:"bytes,4,opt,name=team_name,json=teamName" json:"team_name,omitempty"` + Players []*TournamentPlayer `protobuf:"bytes,5,rep,name=players" json:"players,omitempty"` +} + +func (x *TournamentTeam) Reset() { + *x = TournamentTeam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TournamentTeam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TournamentTeam) ProtoMessage() {} + +func (x *TournamentTeam) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TournamentTeam.ProtoReflect.Descriptor instead. +func (*TournamentTeam) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{4} +} + +func (x *TournamentTeam) GetTeamId() int32 { + if x != nil && x.TeamId != nil { + return *x.TeamId + } + return 0 +} + +func (x *TournamentTeam) GetTeamTag() string { + if x != nil && x.TeamTag != nil { + return *x.TeamTag + } + return "" +} + +func (x *TournamentTeam) GetTeamFlag() string { + if x != nil && x.TeamFlag != nil { + return *x.TeamFlag + } + return "" +} + +func (x *TournamentTeam) GetTeamName() string { + if x != nil && x.TeamName != nil { + return *x.TeamName + } + return "" +} + +func (x *TournamentTeam) GetPlayers() []*TournamentPlayer { + if x != nil { + return x.Players + } + return nil +} + +type TournamentEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *int32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + EventTag *string `protobuf:"bytes,2,opt,name=event_tag,json=eventTag" json:"event_tag,omitempty"` + EventName *string `protobuf:"bytes,3,opt,name=event_name,json=eventName" json:"event_name,omitempty"` + EventTimeStart *uint32 `protobuf:"varint,4,opt,name=event_time_start,json=eventTimeStart" json:"event_time_start,omitempty"` + EventTimeEnd *uint32 `protobuf:"varint,5,opt,name=event_time_end,json=eventTimeEnd" json:"event_time_end,omitempty"` + EventPublic *int32 `protobuf:"varint,6,opt,name=event_public,json=eventPublic" json:"event_public,omitempty"` + EventStageId *int32 `protobuf:"varint,7,opt,name=event_stage_id,json=eventStageId" json:"event_stage_id,omitempty"` + EventStageName *string `protobuf:"bytes,8,opt,name=event_stage_name,json=eventStageName" json:"event_stage_name,omitempty"` + ActiveSectionId *uint32 `protobuf:"varint,9,opt,name=active_section_id,json=activeSectionId" json:"active_section_id,omitempty"` +} + +func (x *TournamentEvent) Reset() { + *x = TournamentEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TournamentEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TournamentEvent) ProtoMessage() {} + +func (x *TournamentEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TournamentEvent.ProtoReflect.Descriptor instead. +func (*TournamentEvent) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{5} +} + +func (x *TournamentEvent) GetEventId() int32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *TournamentEvent) GetEventTag() string { + if x != nil && x.EventTag != nil { + return *x.EventTag + } + return "" +} + +func (x *TournamentEvent) GetEventName() string { + if x != nil && x.EventName != nil { + return *x.EventName + } + return "" +} + +func (x *TournamentEvent) GetEventTimeStart() uint32 { + if x != nil && x.EventTimeStart != nil { + return *x.EventTimeStart + } + return 0 +} + +func (x *TournamentEvent) GetEventTimeEnd() uint32 { + if x != nil && x.EventTimeEnd != nil { + return *x.EventTimeEnd + } + return 0 +} + +func (x *TournamentEvent) GetEventPublic() int32 { + if x != nil && x.EventPublic != nil { + return *x.EventPublic + } + return 0 +} + +func (x *TournamentEvent) GetEventStageId() int32 { + if x != nil && x.EventStageId != nil { + return *x.EventStageId + } + return 0 +} + +func (x *TournamentEvent) GetEventStageName() string { + if x != nil && x.EventStageName != nil { + return *x.EventStageName + } + return "" +} + +func (x *TournamentEvent) GetActiveSectionId() uint32 { + if x != nil && x.ActiveSectionId != nil { + return *x.ActiveSectionId + } + return 0 +} + +type GlobalStatistics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayersOnline *uint32 `protobuf:"varint,1,opt,name=players_online,json=playersOnline" json:"players_online,omitempty"` + ServersOnline *uint32 `protobuf:"varint,2,opt,name=servers_online,json=serversOnline" json:"servers_online,omitempty"` + PlayersSearching *uint32 `protobuf:"varint,3,opt,name=players_searching,json=playersSearching" json:"players_searching,omitempty"` + ServersAvailable *uint32 `protobuf:"varint,4,opt,name=servers_available,json=serversAvailable" json:"servers_available,omitempty"` + OngoingMatches *uint32 `protobuf:"varint,5,opt,name=ongoing_matches,json=ongoingMatches" json:"ongoing_matches,omitempty"` + SearchTimeAvg *uint32 `protobuf:"varint,6,opt,name=search_time_avg,json=searchTimeAvg" json:"search_time_avg,omitempty"` + SearchStatistics []*DetailedSearchStatistic `protobuf:"bytes,7,rep,name=search_statistics,json=searchStatistics" json:"search_statistics,omitempty"` + MainPostUrl *string `protobuf:"bytes,8,opt,name=main_post_url,json=mainPostUrl" json:"main_post_url,omitempty"` + RequiredAppidVersion *uint32 `protobuf:"varint,9,opt,name=required_appid_version,json=requiredAppidVersion" json:"required_appid_version,omitempty"` + PricesheetVersion *uint32 `protobuf:"varint,10,opt,name=pricesheet_version,json=pricesheetVersion" json:"pricesheet_version,omitempty"` + TwitchStreamsVersion *uint32 `protobuf:"varint,11,opt,name=twitch_streams_version,json=twitchStreamsVersion" json:"twitch_streams_version,omitempty"` + ActiveTournamentEventid *uint32 `protobuf:"varint,12,opt,name=active_tournament_eventid,json=activeTournamentEventid" json:"active_tournament_eventid,omitempty"` + ActiveSurveyId *uint32 `protobuf:"varint,13,opt,name=active_survey_id,json=activeSurveyId" json:"active_survey_id,omitempty"` + Rtime32Cur *uint32 `protobuf:"varint,14,opt,name=rtime32_cur,json=rtime32Cur" json:"rtime32_cur,omitempty"` + Rtime32EventStart *uint32 `protobuf:"varint,15,opt,name=rtime32_event_start,json=rtime32EventStart" json:"rtime32_event_start,omitempty"` + RequiredAppidVersion2 *uint32 `protobuf:"varint,16,opt,name=required_appid_version2,json=requiredAppidVersion2" json:"required_appid_version2,omitempty"` +} + +func (x *GlobalStatistics) Reset() { + *x = GlobalStatistics{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GlobalStatistics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GlobalStatistics) ProtoMessage() {} + +func (x *GlobalStatistics) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GlobalStatistics.ProtoReflect.Descriptor instead. +func (*GlobalStatistics) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{6} +} + +func (x *GlobalStatistics) GetPlayersOnline() uint32 { + if x != nil && x.PlayersOnline != nil { + return *x.PlayersOnline + } + return 0 +} + +func (x *GlobalStatistics) GetServersOnline() uint32 { + if x != nil && x.ServersOnline != nil { + return *x.ServersOnline + } + return 0 +} + +func (x *GlobalStatistics) GetPlayersSearching() uint32 { + if x != nil && x.PlayersSearching != nil { + return *x.PlayersSearching + } + return 0 +} + +func (x *GlobalStatistics) GetServersAvailable() uint32 { + if x != nil && x.ServersAvailable != nil { + return *x.ServersAvailable + } + return 0 +} + +func (x *GlobalStatistics) GetOngoingMatches() uint32 { + if x != nil && x.OngoingMatches != nil { + return *x.OngoingMatches + } + return 0 +} + +func (x *GlobalStatistics) GetSearchTimeAvg() uint32 { + if x != nil && x.SearchTimeAvg != nil { + return *x.SearchTimeAvg + } + return 0 +} + +func (x *GlobalStatistics) GetSearchStatistics() []*DetailedSearchStatistic { + if x != nil { + return x.SearchStatistics + } + return nil +} + +func (x *GlobalStatistics) GetMainPostUrl() string { + if x != nil && x.MainPostUrl != nil { + return *x.MainPostUrl + } + return "" +} + +func (x *GlobalStatistics) GetRequiredAppidVersion() uint32 { + if x != nil && x.RequiredAppidVersion != nil { + return *x.RequiredAppidVersion + } + return 0 +} + +func (x *GlobalStatistics) GetPricesheetVersion() uint32 { + if x != nil && x.PricesheetVersion != nil { + return *x.PricesheetVersion + } + return 0 +} + +func (x *GlobalStatistics) GetTwitchStreamsVersion() uint32 { + if x != nil && x.TwitchStreamsVersion != nil { + return *x.TwitchStreamsVersion + } + return 0 +} + +func (x *GlobalStatistics) GetActiveTournamentEventid() uint32 { + if x != nil && x.ActiveTournamentEventid != nil { + return *x.ActiveTournamentEventid + } + return 0 +} + +func (x *GlobalStatistics) GetActiveSurveyId() uint32 { + if x != nil && x.ActiveSurveyId != nil { + return *x.ActiveSurveyId + } + return 0 +} + +func (x *GlobalStatistics) GetRtime32Cur() uint32 { + if x != nil && x.Rtime32Cur != nil { + return *x.Rtime32Cur + } + return 0 +} + +func (x *GlobalStatistics) GetRtime32EventStart() uint32 { + if x != nil && x.Rtime32EventStart != nil { + return *x.Rtime32EventStart + } + return 0 +} + +func (x *GlobalStatistics) GetRequiredAppidVersion2() uint32 { + if x != nil && x.RequiredAppidVersion2 != nil { + return *x.RequiredAppidVersion2 + } + return 0 +} + +type OperationalStatisticDescription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Idkey *uint32 `protobuf:"varint,2,opt,name=idkey" json:"idkey,omitempty"` +} + +func (x *OperationalStatisticDescription) Reset() { + *x = OperationalStatisticDescription{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationalStatisticDescription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationalStatisticDescription) ProtoMessage() {} + +func (x *OperationalStatisticDescription) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationalStatisticDescription.ProtoReflect.Descriptor instead. +func (*OperationalStatisticDescription) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{7} +} + +func (x *OperationalStatisticDescription) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *OperationalStatisticDescription) GetIdkey() uint32 { + if x != nil && x.Idkey != nil { + return *x.Idkey + } + return 0 +} + +type OperationalStatisticElement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Idkey *uint32 `protobuf:"varint,1,opt,name=idkey" json:"idkey,omitempty"` + Values []int32 `protobuf:"varint,2,rep,name=values" json:"values,omitempty"` +} + +func (x *OperationalStatisticElement) Reset() { + *x = OperationalStatisticElement{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationalStatisticElement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationalStatisticElement) ProtoMessage() {} + +func (x *OperationalStatisticElement) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationalStatisticElement.ProtoReflect.Descriptor instead. +func (*OperationalStatisticElement) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{8} +} + +func (x *OperationalStatisticElement) GetIdkey() uint32 { + if x != nil && x.Idkey != nil { + return *x.Idkey + } + return 0 +} + +func (x *OperationalStatisticElement) GetValues() []int32 { + if x != nil { + return x.Values + } + return nil +} + +type OperationalStatisticsPacket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Packetid *int32 `protobuf:"varint,1,opt,name=packetid" json:"packetid,omitempty"` + Mstimestamp *int32 `protobuf:"varint,2,opt,name=mstimestamp" json:"mstimestamp,omitempty"` + Values []*OperationalStatisticElement `protobuf:"bytes,3,rep,name=values" json:"values,omitempty"` +} + +func (x *OperationalStatisticsPacket) Reset() { + *x = OperationalStatisticsPacket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationalStatisticsPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationalStatisticsPacket) ProtoMessage() {} + +func (x *OperationalStatisticsPacket) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationalStatisticsPacket.ProtoReflect.Descriptor instead. +func (*OperationalStatisticsPacket) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{9} +} + +func (x *OperationalStatisticsPacket) GetPacketid() int32 { + if x != nil && x.Packetid != nil { + return *x.Packetid + } + return 0 +} + +func (x *OperationalStatisticsPacket) GetMstimestamp() int32 { + if x != nil && x.Mstimestamp != nil { + return *x.Mstimestamp + } + return 0 +} + +func (x *OperationalStatisticsPacket) GetValues() []*OperationalStatisticElement { + if x != nil { + return x.Values + } + return nil +} + +type PlayerRankingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + RankId *uint32 `protobuf:"varint,2,opt,name=rank_id,json=rankId" json:"rank_id,omitempty"` + Wins *uint32 `protobuf:"varint,3,opt,name=wins" json:"wins,omitempty"` + RankChange *float32 `protobuf:"fixed32,4,opt,name=rank_change,json=rankChange" json:"rank_change,omitempty"` + RankTypeId *uint32 `protobuf:"varint,6,opt,name=rank_type_id,json=rankTypeId" json:"rank_type_id,omitempty"` + TvControl *uint32 `protobuf:"varint,7,opt,name=tv_control,json=tvControl" json:"tv_control,omitempty"` +} + +func (x *PlayerRankingInfo) Reset() { + *x = PlayerRankingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerRankingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerRankingInfo) ProtoMessage() {} + +func (x *PlayerRankingInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerRankingInfo.ProtoReflect.Descriptor instead. +func (*PlayerRankingInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{10} +} + +func (x *PlayerRankingInfo) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *PlayerRankingInfo) GetRankId() uint32 { + if x != nil && x.RankId != nil { + return *x.RankId + } + return 0 +} + +func (x *PlayerRankingInfo) GetWins() uint32 { + if x != nil && x.Wins != nil { + return *x.Wins + } + return 0 +} + +func (x *PlayerRankingInfo) GetRankChange() float32 { + if x != nil && x.RankChange != nil { + return *x.RankChange + } + return 0 +} + +func (x *PlayerRankingInfo) GetRankTypeId() uint32 { + if x != nil && x.RankTypeId != nil { + return *x.RankTypeId + } + return 0 +} + +func (x *PlayerRankingInfo) GetTvControl() uint32 { + if x != nil && x.TvControl != nil { + return *x.TvControl + } + return 0 +} + +type PlayerCommendationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CmdFriendly *uint32 `protobuf:"varint,1,opt,name=cmd_friendly,json=cmdFriendly" json:"cmd_friendly,omitempty"` + CmdTeaching *uint32 `protobuf:"varint,2,opt,name=cmd_teaching,json=cmdTeaching" json:"cmd_teaching,omitempty"` + CmdLeader *uint32 `protobuf:"varint,4,opt,name=cmd_leader,json=cmdLeader" json:"cmd_leader,omitempty"` +} + +func (x *PlayerCommendationInfo) Reset() { + *x = PlayerCommendationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerCommendationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerCommendationInfo) ProtoMessage() {} + +func (x *PlayerCommendationInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerCommendationInfo.ProtoReflect.Descriptor instead. +func (*PlayerCommendationInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{11} +} + +func (x *PlayerCommendationInfo) GetCmdFriendly() uint32 { + if x != nil && x.CmdFriendly != nil { + return *x.CmdFriendly + } + return 0 +} + +func (x *PlayerCommendationInfo) GetCmdTeaching() uint32 { + if x != nil && x.CmdTeaching != nil { + return *x.CmdTeaching + } + return 0 +} + +func (x *PlayerCommendationInfo) GetCmdLeader() uint32 { + if x != nil && x.CmdLeader != nil { + return *x.CmdLeader + } + return 0 +} + +type PlayerMedalsInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayItemsDefidx []uint32 `protobuf:"varint,7,rep,name=display_items_defidx,json=displayItemsDefidx" json:"display_items_defidx,omitempty"` + FeaturedDisplayItemDefidx *uint32 `protobuf:"varint,8,opt,name=featured_display_item_defidx,json=featuredDisplayItemDefidx" json:"featured_display_item_defidx,omitempty"` +} + +func (x *PlayerMedalsInfo) Reset() { + *x = PlayerMedalsInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerMedalsInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerMedalsInfo) ProtoMessage() {} + +func (x *PlayerMedalsInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerMedalsInfo.ProtoReflect.Descriptor instead. +func (*PlayerMedalsInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{12} +} + +func (x *PlayerMedalsInfo) GetDisplayItemsDefidx() []uint32 { + if x != nil { + return x.DisplayItemsDefidx + } + return nil +} + +func (x *PlayerMedalsInfo) GetFeaturedDisplayItemDefidx() uint32 { + if x != nil && x.FeaturedDisplayItemDefidx != nil { + return *x.FeaturedDisplayItemDefidx + } + return 0 +} + +type AccountActivity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Activity *uint32 `protobuf:"varint,1,opt,name=activity" json:"activity,omitempty"` + Mode *uint32 `protobuf:"varint,2,opt,name=mode" json:"mode,omitempty"` + Map *uint32 `protobuf:"varint,3,opt,name=map" json:"map,omitempty"` + Matchid *uint64 `protobuf:"varint,4,opt,name=matchid" json:"matchid,omitempty"` +} + +func (x *AccountActivity) Reset() { + *x = AccountActivity{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountActivity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountActivity) ProtoMessage() {} + +func (x *AccountActivity) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccountActivity.ProtoReflect.Descriptor instead. +func (*AccountActivity) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{13} +} + +func (x *AccountActivity) GetActivity() uint32 { + if x != nil && x.Activity != nil { + return *x.Activity + } + return 0 +} + +func (x *AccountActivity) GetMode() uint32 { + if x != nil && x.Mode != nil { + return *x.Mode + } + return 0 +} + +func (x *AccountActivity) GetMap() uint32 { + if x != nil && x.Map != nil { + return *x.Map + } + return 0 +} + +func (x *AccountActivity) GetMatchid() uint64 { + if x != nil && x.Matchid != nil { + return *x.Matchid + } + return 0 +} + +type TournamentMatchSetup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *int32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + TeamIdCt *int32 `protobuf:"varint,2,opt,name=team_id_ct,json=teamIdCt" json:"team_id_ct,omitempty"` + TeamIdT *int32 `protobuf:"varint,3,opt,name=team_id_t,json=teamIdT" json:"team_id_t,omitempty"` + EventStageId *int32 `protobuf:"varint,4,opt,name=event_stage_id,json=eventStageId" json:"event_stage_id,omitempty"` +} + +func (x *TournamentMatchSetup) Reset() { + *x = TournamentMatchSetup{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TournamentMatchSetup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TournamentMatchSetup) ProtoMessage() {} + +func (x *TournamentMatchSetup) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TournamentMatchSetup.ProtoReflect.Descriptor instead. +func (*TournamentMatchSetup) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{14} +} + +func (x *TournamentMatchSetup) GetEventId() int32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *TournamentMatchSetup) GetTeamIdCt() int32 { + if x != nil && x.TeamIdCt != nil { + return *x.TeamIdCt + } + return 0 +} + +func (x *TournamentMatchSetup) GetTeamIdT() int32 { + if x != nil && x.TeamIdT != nil { + return *x.TeamIdT + } + return 0 +} + +func (x *TournamentMatchSetup) GetEventStageId() int32 { + if x != nil && x.EventStageId != nil { + return *x.EventStageId + } + return 0 +} + +type ServerHltvInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TvUdpPort *uint32 `protobuf:"varint,1,opt,name=tv_udp_port,json=tvUdpPort" json:"tv_udp_port,omitempty"` + TvWatchKey *uint64 `protobuf:"varint,2,opt,name=tv_watch_key,json=tvWatchKey" json:"tv_watch_key,omitempty"` + TvSlots *uint32 `protobuf:"varint,3,opt,name=tv_slots,json=tvSlots" json:"tv_slots,omitempty"` + TvClients *uint32 `protobuf:"varint,4,opt,name=tv_clients,json=tvClients" json:"tv_clients,omitempty"` + TvProxies *uint32 `protobuf:"varint,5,opt,name=tv_proxies,json=tvProxies" json:"tv_proxies,omitempty"` + TvTime *uint32 `protobuf:"varint,6,opt,name=tv_time,json=tvTime" json:"tv_time,omitempty"` + GameType *uint32 `protobuf:"varint,8,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + GameMapgroup *string `protobuf:"bytes,9,opt,name=game_mapgroup,json=gameMapgroup" json:"game_mapgroup,omitempty"` + GameMap *string `protobuf:"bytes,10,opt,name=game_map,json=gameMap" json:"game_map,omitempty"` + TvMasterSteamid *uint64 `protobuf:"varint,11,opt,name=tv_master_steamid,json=tvMasterSteamid" json:"tv_master_steamid,omitempty"` + TvLocalSlots *uint32 `protobuf:"varint,12,opt,name=tv_local_slots,json=tvLocalSlots" json:"tv_local_slots,omitempty"` + TvLocalClients *uint32 `protobuf:"varint,13,opt,name=tv_local_clients,json=tvLocalClients" json:"tv_local_clients,omitempty"` + TvLocalProxies *uint32 `protobuf:"varint,14,opt,name=tv_local_proxies,json=tvLocalProxies" json:"tv_local_proxies,omitempty"` + TvRelaySlots *uint32 `protobuf:"varint,15,opt,name=tv_relay_slots,json=tvRelaySlots" json:"tv_relay_slots,omitempty"` + TvRelayClients *uint32 `protobuf:"varint,16,opt,name=tv_relay_clients,json=tvRelayClients" json:"tv_relay_clients,omitempty"` + TvRelayProxies *uint32 `protobuf:"varint,17,opt,name=tv_relay_proxies,json=tvRelayProxies" json:"tv_relay_proxies,omitempty"` + TvRelayAddress *uint32 `protobuf:"varint,18,opt,name=tv_relay_address,json=tvRelayAddress" json:"tv_relay_address,omitempty"` + TvRelayPort *uint32 `protobuf:"varint,19,opt,name=tv_relay_port,json=tvRelayPort" json:"tv_relay_port,omitempty"` + TvRelaySteamid *uint64 `protobuf:"varint,20,opt,name=tv_relay_steamid,json=tvRelaySteamid" json:"tv_relay_steamid,omitempty"` + Flags *uint32 `protobuf:"varint,21,opt,name=flags" json:"flags,omitempty"` +} + +func (x *ServerHltvInfo) Reset() { + *x = ServerHltvInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerHltvInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerHltvInfo) ProtoMessage() {} + +func (x *ServerHltvInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerHltvInfo.ProtoReflect.Descriptor instead. +func (*ServerHltvInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{15} +} + +func (x *ServerHltvInfo) GetTvUdpPort() uint32 { + if x != nil && x.TvUdpPort != nil { + return *x.TvUdpPort + } + return 0 +} + +func (x *ServerHltvInfo) GetTvWatchKey() uint64 { + if x != nil && x.TvWatchKey != nil { + return *x.TvWatchKey + } + return 0 +} + +func (x *ServerHltvInfo) GetTvSlots() uint32 { + if x != nil && x.TvSlots != nil { + return *x.TvSlots + } + return 0 +} + +func (x *ServerHltvInfo) GetTvClients() uint32 { + if x != nil && x.TvClients != nil { + return *x.TvClients + } + return 0 +} + +func (x *ServerHltvInfo) GetTvProxies() uint32 { + if x != nil && x.TvProxies != nil { + return *x.TvProxies + } + return 0 +} + +func (x *ServerHltvInfo) GetTvTime() uint32 { + if x != nil && x.TvTime != nil { + return *x.TvTime + } + return 0 +} + +func (x *ServerHltvInfo) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *ServerHltvInfo) GetGameMapgroup() string { + if x != nil && x.GameMapgroup != nil { + return *x.GameMapgroup + } + return "" +} + +func (x *ServerHltvInfo) GetGameMap() string { + if x != nil && x.GameMap != nil { + return *x.GameMap + } + return "" +} + +func (x *ServerHltvInfo) GetTvMasterSteamid() uint64 { + if x != nil && x.TvMasterSteamid != nil { + return *x.TvMasterSteamid + } + return 0 +} + +func (x *ServerHltvInfo) GetTvLocalSlots() uint32 { + if x != nil && x.TvLocalSlots != nil { + return *x.TvLocalSlots + } + return 0 +} + +func (x *ServerHltvInfo) GetTvLocalClients() uint32 { + if x != nil && x.TvLocalClients != nil { + return *x.TvLocalClients + } + return 0 +} + +func (x *ServerHltvInfo) GetTvLocalProxies() uint32 { + if x != nil && x.TvLocalProxies != nil { + return *x.TvLocalProxies + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelaySlots() uint32 { + if x != nil && x.TvRelaySlots != nil { + return *x.TvRelaySlots + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelayClients() uint32 { + if x != nil && x.TvRelayClients != nil { + return *x.TvRelayClients + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelayProxies() uint32 { + if x != nil && x.TvRelayProxies != nil { + return *x.TvRelayProxies + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelayAddress() uint32 { + if x != nil && x.TvRelayAddress != nil { + return *x.TvRelayAddress + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelayPort() uint32 { + if x != nil && x.TvRelayPort != nil { + return *x.TvRelayPort + } + return 0 +} + +func (x *ServerHltvInfo) GetTvRelaySteamid() uint64 { + if x != nil && x.TvRelaySteamid != nil { + return *x.TvRelaySteamid + } + return 0 +} + +func (x *ServerHltvInfo) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type IpAddressMask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + A *uint32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` + B *uint32 `protobuf:"varint,2,opt,name=b" json:"b,omitempty"` + C *uint32 `protobuf:"varint,3,opt,name=c" json:"c,omitempty"` + D *uint32 `protobuf:"varint,4,opt,name=d" json:"d,omitempty"` + Bits *uint32 `protobuf:"varint,5,opt,name=bits" json:"bits,omitempty"` + Token *uint32 `protobuf:"varint,6,opt,name=token" json:"token,omitempty"` +} + +func (x *IpAddressMask) Reset() { + *x = IpAddressMask{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IpAddressMask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IpAddressMask) ProtoMessage() {} + +func (x *IpAddressMask) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IpAddressMask.ProtoReflect.Descriptor instead. +func (*IpAddressMask) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{16} +} + +func (x *IpAddressMask) GetA() uint32 { + if x != nil && x.A != nil { + return *x.A + } + return 0 +} + +func (x *IpAddressMask) GetB() uint32 { + if x != nil && x.B != nil { + return *x.B + } + return 0 +} + +func (x *IpAddressMask) GetC() uint32 { + if x != nil && x.C != nil { + return *x.C + } + return 0 +} + +func (x *IpAddressMask) GetD() uint32 { + if x != nil && x.D != nil { + return *x.D + } + return 0 +} + +func (x *IpAddressMask) GetBits() uint32 { + if x != nil && x.Bits != nil { + return *x.Bits + } + return 0 +} + +func (x *IpAddressMask) GetToken() uint32 { + if x != nil && x.Token != nil { + return *x.Token + } + return 0 +} + +type CMsgCsgoSteamUserStatChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ecsgosteamuserstat *int32 `protobuf:"varint,1,opt,name=ecsgosteamuserstat" json:"ecsgosteamuserstat,omitempty"` + Delta *int32 `protobuf:"varint,2,opt,name=delta" json:"delta,omitempty"` + Absolute *bool `protobuf:"varint,3,opt,name=absolute" json:"absolute,omitempty"` +} + +func (x *CMsgCsgoSteamUserStatChange) Reset() { + *x = CMsgCsgoSteamUserStatChange{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgCsgoSteamUserStatChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgCsgoSteamUserStatChange) ProtoMessage() {} + +func (x *CMsgCsgoSteamUserStatChange) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgCsgoSteamUserStatChange.ProtoReflect.Descriptor instead. +func (*CMsgCsgoSteamUserStatChange) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CMsgCsgoSteamUserStatChange) GetEcsgosteamuserstat() int32 { + if x != nil && x.Ecsgosteamuserstat != nil { + return *x.Ecsgosteamuserstat + } + return 0 +} + +func (x *CMsgCsgoSteamUserStatChange) GetDelta() int32 { + if x != nil && x.Delta != nil { + return *x.Delta + } + return 0 +} + +func (x *CMsgCsgoSteamUserStatChange) GetAbsolute() bool { + if x != nil && x.Absolute != nil { + return *x.Absolute + } + return false +} + +type XpProgressData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + XpPoints *uint32 `protobuf:"varint,1,opt,name=xp_points,json=xpPoints" json:"xp_points,omitempty"` + XpCategory *int32 `protobuf:"varint,2,opt,name=xp_category,json=xpCategory" json:"xp_category,omitempty"` +} + +func (x *XpProgressData) Reset() { + *x = XpProgressData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *XpProgressData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*XpProgressData) ProtoMessage() {} + +func (x *XpProgressData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use XpProgressData.ProtoReflect.Descriptor instead. +func (*XpProgressData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{18} +} + +func (x *XpProgressData) GetXpPoints() uint32 { + if x != nil && x.XpPoints != nil { + return *x.XpPoints + } + return 0 +} + +func (x *XpProgressData) GetXpCategory() int32 { + if x != nil && x.XpCategory != nil { + return *x.XpCategory + } + return 0 +} + +type MatchEndItemUpdates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId *uint64 `protobuf:"varint,1,opt,name=item_id,json=itemId" json:"item_id,omitempty"` + ItemAttrDefidx *uint32 `protobuf:"varint,2,opt,name=item_attr_defidx,json=itemAttrDefidx" json:"item_attr_defidx,omitempty"` + ItemAttrDeltaValue *uint32 `protobuf:"varint,3,opt,name=item_attr_delta_value,json=itemAttrDeltaValue" json:"item_attr_delta_value,omitempty"` +} + +func (x *MatchEndItemUpdates) Reset() { + *x = MatchEndItemUpdates{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MatchEndItemUpdates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MatchEndItemUpdates) ProtoMessage() {} + +func (x *MatchEndItemUpdates) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MatchEndItemUpdates.ProtoReflect.Descriptor instead. +func (*MatchEndItemUpdates) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{19} +} + +func (x *MatchEndItemUpdates) GetItemId() uint64 { + if x != nil && x.ItemId != nil { + return *x.ItemId + } + return 0 +} + +func (x *MatchEndItemUpdates) GetItemAttrDefidx() uint32 { + if x != nil && x.ItemAttrDefidx != nil { + return *x.ItemAttrDefidx + } + return 0 +} + +func (x *MatchEndItemUpdates) GetItemAttrDeltaValue() uint32 { + if x != nil && x.ItemAttrDeltaValue != nil { + return *x.ItemAttrDeltaValue + } + return 0 +} + +type ScoreLeaderboardData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuestId *uint64 `protobuf:"varint,1,opt,name=quest_id,json=questId" json:"quest_id,omitempty"` + Score *uint32 `protobuf:"varint,2,opt,name=score" json:"score,omitempty"` + Accountentries []*ScoreLeaderboardData_AccountEntries `protobuf:"bytes,3,rep,name=accountentries" json:"accountentries,omitempty"` + Matchentries []*ScoreLeaderboardData_Entry `protobuf:"bytes,5,rep,name=matchentries" json:"matchentries,omitempty"` +} + +func (x *ScoreLeaderboardData) Reset() { + *x = ScoreLeaderboardData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScoreLeaderboardData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScoreLeaderboardData) ProtoMessage() {} + +func (x *ScoreLeaderboardData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScoreLeaderboardData.ProtoReflect.Descriptor instead. +func (*ScoreLeaderboardData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{20} +} + +func (x *ScoreLeaderboardData) GetQuestId() uint64 { + if x != nil && x.QuestId != nil { + return *x.QuestId + } + return 0 +} + +func (x *ScoreLeaderboardData) GetScore() uint32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +func (x *ScoreLeaderboardData) GetAccountentries() []*ScoreLeaderboardData_AccountEntries { + if x != nil { + return x.Accountentries + } + return nil +} + +func (x *ScoreLeaderboardData) GetMatchentries() []*ScoreLeaderboardData_Entry { + if x != nil { + return x.Matchentries + } + return nil +} + +type PlayerQuestData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuesterAccountId *uint32 `protobuf:"varint,1,opt,name=quester_account_id,json=questerAccountId" json:"quester_account_id,omitempty"` + QuestItemData []*PlayerQuestData_QuestItemData `protobuf:"bytes,2,rep,name=quest_item_data,json=questItemData" json:"quest_item_data,omitempty"` + XpProgressData []*XpProgressData `protobuf:"bytes,3,rep,name=xp_progress_data,json=xpProgressData" json:"xp_progress_data,omitempty"` + TimePlayed *uint32 `protobuf:"varint,4,opt,name=time_played,json=timePlayed" json:"time_played,omitempty"` + MmGameMode *uint32 `protobuf:"varint,5,opt,name=mm_game_mode,json=mmGameMode" json:"mm_game_mode,omitempty"` + ItemUpdates []*MatchEndItemUpdates `protobuf:"bytes,6,rep,name=item_updates,json=itemUpdates" json:"item_updates,omitempty"` + OperationPointsEligible *bool `protobuf:"varint,7,opt,name=operation_points_eligible,json=operationPointsEligible" json:"operation_points_eligible,omitempty"` + Userstatchanges []*CMsgCsgoSteamUserStatChange `protobuf:"bytes,8,rep,name=userstatchanges" json:"userstatchanges,omitempty"` +} + +func (x *PlayerQuestData) Reset() { + *x = PlayerQuestData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerQuestData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerQuestData) ProtoMessage() {} + +func (x *PlayerQuestData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerQuestData.ProtoReflect.Descriptor instead. +func (*PlayerQuestData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{21} +} + +func (x *PlayerQuestData) GetQuesterAccountId() uint32 { + if x != nil && x.QuesterAccountId != nil { + return *x.QuesterAccountId + } + return 0 +} + +func (x *PlayerQuestData) GetQuestItemData() []*PlayerQuestData_QuestItemData { + if x != nil { + return x.QuestItemData + } + return nil +} + +func (x *PlayerQuestData) GetXpProgressData() []*XpProgressData { + if x != nil { + return x.XpProgressData + } + return nil +} + +func (x *PlayerQuestData) GetTimePlayed() uint32 { + if x != nil && x.TimePlayed != nil { + return *x.TimePlayed + } + return 0 +} + +func (x *PlayerQuestData) GetMmGameMode() uint32 { + if x != nil && x.MmGameMode != nil { + return *x.MmGameMode + } + return 0 +} + +func (x *PlayerQuestData) GetItemUpdates() []*MatchEndItemUpdates { + if x != nil { + return x.ItemUpdates + } + return nil +} + +func (x *PlayerQuestData) GetOperationPointsEligible() bool { + if x != nil && x.OperationPointsEligible != nil { + return *x.OperationPointsEligible + } + return false +} + +func (x *PlayerQuestData) GetUserstatchanges() []*CMsgCsgoSteamUserStatChange { + if x != nil { + return x.Userstatchanges + } + return nil +} + +type DeepPlayerStatsEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + MmGameMode *uint32 `protobuf:"varint,3,opt,name=mm_game_mode,json=mmGameMode" json:"mm_game_mode,omitempty"` + Mapid *uint32 `protobuf:"varint,4,opt,name=mapid" json:"mapid,omitempty"` + BStartingCt *bool `protobuf:"varint,5,opt,name=b_starting_ct,json=bStartingCt" json:"b_starting_ct,omitempty"` + MatchOutcome *uint32 `protobuf:"varint,6,opt,name=match_outcome,json=matchOutcome" json:"match_outcome,omitempty"` + RoundsWon *uint32 `protobuf:"varint,7,opt,name=rounds_won,json=roundsWon" json:"rounds_won,omitempty"` + RoundsLost *uint32 `protobuf:"varint,8,opt,name=rounds_lost,json=roundsLost" json:"rounds_lost,omitempty"` + StatScore *uint32 `protobuf:"varint,9,opt,name=stat_score,json=statScore" json:"stat_score,omitempty"` + StatDeaths *uint32 `protobuf:"varint,12,opt,name=stat_deaths,json=statDeaths" json:"stat_deaths,omitempty"` + StatMvps *uint32 `protobuf:"varint,13,opt,name=stat_mvps,json=statMvps" json:"stat_mvps,omitempty"` + EnemyKills *uint32 `protobuf:"varint,14,opt,name=enemy_kills,json=enemyKills" json:"enemy_kills,omitempty"` + EnemyHeadshots *uint32 `protobuf:"varint,15,opt,name=enemy_headshots,json=enemyHeadshots" json:"enemy_headshots,omitempty"` + Enemy_2Ks *uint32 `protobuf:"varint,16,opt,name=enemy_2ks,json=enemy2ks" json:"enemy_2ks,omitempty"` + Enemy_3Ks *uint32 `protobuf:"varint,17,opt,name=enemy_3ks,json=enemy3ks" json:"enemy_3ks,omitempty"` + Enemy_4Ks *uint32 `protobuf:"varint,18,opt,name=enemy_4ks,json=enemy4ks" json:"enemy_4ks,omitempty"` + TotalDamage *uint32 `protobuf:"varint,19,opt,name=total_damage,json=totalDamage" json:"total_damage,omitempty"` + EngagementsEntryCount *uint32 `protobuf:"varint,23,opt,name=engagements_entry_count,json=engagementsEntryCount" json:"engagements_entry_count,omitempty"` + EngagementsEntryWins *uint32 `protobuf:"varint,24,opt,name=engagements_entry_wins,json=engagementsEntryWins" json:"engagements_entry_wins,omitempty"` + Engagements_1V1Count *uint32 `protobuf:"varint,25,opt,name=engagements_1v1_count,json=engagements1v1Count" json:"engagements_1v1_count,omitempty"` + Engagements_1V1Wins *uint32 `protobuf:"varint,26,opt,name=engagements_1v1_wins,json=engagements1v1Wins" json:"engagements_1v1_wins,omitempty"` + Engagements_1V2Count *uint32 `protobuf:"varint,27,opt,name=engagements_1v2_count,json=engagements1v2Count" json:"engagements_1v2_count,omitempty"` + Engagements_1V2Wins *uint32 `protobuf:"varint,28,opt,name=engagements_1v2_wins,json=engagements1v2Wins" json:"engagements_1v2_wins,omitempty"` + UtilityCount *uint32 `protobuf:"varint,29,opt,name=utility_count,json=utilityCount" json:"utility_count,omitempty"` + UtilitySuccess *uint32 `protobuf:"varint,30,opt,name=utility_success,json=utilitySuccess" json:"utility_success,omitempty"` + FlashCount *uint32 `protobuf:"varint,32,opt,name=flash_count,json=flashCount" json:"flash_count,omitempty"` + FlashSuccess *uint32 `protobuf:"varint,33,opt,name=flash_success,json=flashSuccess" json:"flash_success,omitempty"` + Mates []uint32 `protobuf:"varint,34,rep,name=mates" json:"mates,omitempty"` +} + +func (x *DeepPlayerStatsEntry) Reset() { + *x = DeepPlayerStatsEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeepPlayerStatsEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeepPlayerStatsEntry) ProtoMessage() {} + +func (x *DeepPlayerStatsEntry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeepPlayerStatsEntry.ProtoReflect.Descriptor instead. +func (*DeepPlayerStatsEntry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{22} +} + +func (x *DeepPlayerStatsEntry) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetMmGameMode() uint32 { + if x != nil && x.MmGameMode != nil { + return *x.MmGameMode + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetMapid() uint32 { + if x != nil && x.Mapid != nil { + return *x.Mapid + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetBStartingCt() bool { + if x != nil && x.BStartingCt != nil { + return *x.BStartingCt + } + return false +} + +func (x *DeepPlayerStatsEntry) GetMatchOutcome() uint32 { + if x != nil && x.MatchOutcome != nil { + return *x.MatchOutcome + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetRoundsWon() uint32 { + if x != nil && x.RoundsWon != nil { + return *x.RoundsWon + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetRoundsLost() uint32 { + if x != nil && x.RoundsLost != nil { + return *x.RoundsLost + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetStatScore() uint32 { + if x != nil && x.StatScore != nil { + return *x.StatScore + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetStatDeaths() uint32 { + if x != nil && x.StatDeaths != nil { + return *x.StatDeaths + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetStatMvps() uint32 { + if x != nil && x.StatMvps != nil { + return *x.StatMvps + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEnemyKills() uint32 { + if x != nil && x.EnemyKills != nil { + return *x.EnemyKills + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEnemyHeadshots() uint32 { + if x != nil && x.EnemyHeadshots != nil { + return *x.EnemyHeadshots + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEnemy_2Ks() uint32 { + if x != nil && x.Enemy_2Ks != nil { + return *x.Enemy_2Ks + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEnemy_3Ks() uint32 { + if x != nil && x.Enemy_3Ks != nil { + return *x.Enemy_3Ks + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEnemy_4Ks() uint32 { + if x != nil && x.Enemy_4Ks != nil { + return *x.Enemy_4Ks + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetTotalDamage() uint32 { + if x != nil && x.TotalDamage != nil { + return *x.TotalDamage + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagementsEntryCount() uint32 { + if x != nil && x.EngagementsEntryCount != nil { + return *x.EngagementsEntryCount + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagementsEntryWins() uint32 { + if x != nil && x.EngagementsEntryWins != nil { + return *x.EngagementsEntryWins + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagements_1V1Count() uint32 { + if x != nil && x.Engagements_1V1Count != nil { + return *x.Engagements_1V1Count + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagements_1V1Wins() uint32 { + if x != nil && x.Engagements_1V1Wins != nil { + return *x.Engagements_1V1Wins + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagements_1V2Count() uint32 { + if x != nil && x.Engagements_1V2Count != nil { + return *x.Engagements_1V2Count + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetEngagements_1V2Wins() uint32 { + if x != nil && x.Engagements_1V2Wins != nil { + return *x.Engagements_1V2Wins + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetUtilityCount() uint32 { + if x != nil && x.UtilityCount != nil { + return *x.UtilityCount + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetUtilitySuccess() uint32 { + if x != nil && x.UtilitySuccess != nil { + return *x.UtilitySuccess + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetFlashCount() uint32 { + if x != nil && x.FlashCount != nil { + return *x.FlashCount + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetFlashSuccess() uint32 { + if x != nil && x.FlashSuccess != nil { + return *x.FlashSuccess + } + return 0 +} + +func (x *DeepPlayerStatsEntry) GetMates() []uint32 { + if x != nil { + return x.Mates + } + return nil +} + +type DeepPlayerMatchEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + MatchId *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + EventId *uint32 `protobuf:"varint,3,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + EventType *uint32 `protobuf:"varint,4,opt,name=event_type,json=eventType" json:"event_type,omitempty"` + BPlayingCt *bool `protobuf:"varint,5,opt,name=b_playing_ct,json=bPlayingCt" json:"b_playing_ct,omitempty"` + UserPosX *int32 `protobuf:"varint,6,opt,name=user_pos_x,json=userPosX" json:"user_pos_x,omitempty"` + UserPosY *int32 `protobuf:"varint,7,opt,name=user_pos_y,json=userPosY" json:"user_pos_y,omitempty"` + UserPosZ *int32 `protobuf:"varint,12,opt,name=user_pos_z,json=userPosZ" json:"user_pos_z,omitempty"` + UserDefidx *uint32 `protobuf:"varint,8,opt,name=user_defidx,json=userDefidx" json:"user_defidx,omitempty"` + OtherPosX *int32 `protobuf:"varint,9,opt,name=other_pos_x,json=otherPosX" json:"other_pos_x,omitempty"` + OtherPosY *int32 `protobuf:"varint,10,opt,name=other_pos_y,json=otherPosY" json:"other_pos_y,omitempty"` + OtherPosZ *int32 `protobuf:"varint,13,opt,name=other_pos_z,json=otherPosZ" json:"other_pos_z,omitempty"` + OtherDefidx *uint32 `protobuf:"varint,11,opt,name=other_defidx,json=otherDefidx" json:"other_defidx,omitempty"` + EventData *int32 `protobuf:"varint,14,opt,name=event_data,json=eventData" json:"event_data,omitempty"` +} + +func (x *DeepPlayerMatchEvent) Reset() { + *x = DeepPlayerMatchEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeepPlayerMatchEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeepPlayerMatchEvent) ProtoMessage() {} + +func (x *DeepPlayerMatchEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeepPlayerMatchEvent.ProtoReflect.Descriptor instead. +func (*DeepPlayerMatchEvent) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{23} +} + +func (x *DeepPlayerMatchEvent) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetEventId() uint32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetEventType() uint32 { + if x != nil && x.EventType != nil { + return *x.EventType + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetBPlayingCt() bool { + if x != nil && x.BPlayingCt != nil { + return *x.BPlayingCt + } + return false +} + +func (x *DeepPlayerMatchEvent) GetUserPosX() int32 { + if x != nil && x.UserPosX != nil { + return *x.UserPosX + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetUserPosY() int32 { + if x != nil && x.UserPosY != nil { + return *x.UserPosY + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetUserPosZ() int32 { + if x != nil && x.UserPosZ != nil { + return *x.UserPosZ + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetUserDefidx() uint32 { + if x != nil && x.UserDefidx != nil { + return *x.UserDefidx + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetOtherPosX() int32 { + if x != nil && x.OtherPosX != nil { + return *x.OtherPosX + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetOtherPosY() int32 { + if x != nil && x.OtherPosY != nil { + return *x.OtherPosY + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetOtherPosZ() int32 { + if x != nil && x.OtherPosZ != nil { + return *x.OtherPosZ + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetOtherDefidx() uint32 { + if x != nil && x.OtherDefidx != nil { + return *x.OtherDefidx + } + return 0 +} + +func (x *DeepPlayerMatchEvent) GetEventData() int32 { + if x != nil && x.EventData != nil { + return *x.EventData + } + return 0 +} + +type CMsgGC_ServerQuestUpdateData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerQuestData []*PlayerQuestData `protobuf:"bytes,1,rep,name=player_quest_data,json=playerQuestData" json:"player_quest_data,omitempty"` + BinaryData []byte `protobuf:"bytes,2,opt,name=binary_data,json=binaryData" json:"binary_data,omitempty"` + MmGameMode *uint32 `protobuf:"varint,3,opt,name=mm_game_mode,json=mmGameMode" json:"mm_game_mode,omitempty"` + Missionlbsdata *ScoreLeaderboardData `protobuf:"bytes,4,opt,name=missionlbsdata" json:"missionlbsdata,omitempty"` +} + +func (x *CMsgGC_ServerQuestUpdateData) Reset() { + *x = CMsgGC_ServerQuestUpdateData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGC_ServerQuestUpdateData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGC_ServerQuestUpdateData) ProtoMessage() {} + +func (x *CMsgGC_ServerQuestUpdateData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGC_ServerQuestUpdateData.ProtoReflect.Descriptor instead. +func (*CMsgGC_ServerQuestUpdateData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CMsgGC_ServerQuestUpdateData) GetPlayerQuestData() []*PlayerQuestData { + if x != nil { + return x.PlayerQuestData + } + return nil +} + +func (x *CMsgGC_ServerQuestUpdateData) GetBinaryData() []byte { + if x != nil { + return x.BinaryData + } + return nil +} + +func (x *CMsgGC_ServerQuestUpdateData) GetMmGameMode() uint32 { + if x != nil && x.MmGameMode != nil { + return *x.MmGameMode + } + return 0 +} + +func (x *CMsgGC_ServerQuestUpdateData) GetMissionlbsdata() *ScoreLeaderboardData { + if x != nil { + return x.Missionlbsdata + } + return nil +} + +type CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token *uint32 `protobuf:"varint,1,opt,name=token" json:"token,omitempty"` + Stamp *uint32 `protobuf:"varint,2,opt,name=stamp" json:"stamp,omitempty"` + Exchange *uint64 `protobuf:"varint,3,opt,name=exchange" json:"exchange,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) GetToken() uint32 { + if x != nil && x.Token != nil { + return *x.Token + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) GetStamp() uint32 { + if x != nil && x.Stamp != nil { + return *x.Stamp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm) GetExchange() uint64 { + if x != nil && x.Exchange != nil { + return *x.Exchange + } + return 0 +} + +type CMsgGCCStrike15V2_GC2ServerReservationUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ViewersExternalTotal *uint32 `protobuf:"varint,1,opt,name=viewers_external_total,json=viewersExternalTotal" json:"viewers_external_total,omitempty"` + ViewersExternalSteam *uint32 `protobuf:"varint,2,opt,name=viewers_external_steam,json=viewersExternalSteam" json:"viewers_external_steam,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ServerReservationUpdate) Reset() { + *x = CMsgGCCStrike15V2_GC2ServerReservationUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ServerReservationUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ServerReservationUpdate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ServerReservationUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ServerReservationUpdate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ServerReservationUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CMsgGCCStrike15V2_GC2ServerReservationUpdate) GetViewersExternalTotal() uint32 { + if x != nil && x.ViewersExternalTotal != nil { + return *x.ViewersExternalTotal + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ServerReservationUpdate) GetViewersExternalSteam() uint32 { + if x != nil && x.ViewersExternalSteam != nil { + return *x.ViewersExternalSteam + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountIds []uint32 `protobuf:"varint,1,rep,name=account_ids,json=accountIds" json:"account_ids,omitempty"` + GameType *uint32 `protobuf:"varint,2,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + TicketData *string `protobuf:"bytes,3,opt,name=ticket_data,json=ticketData" json:"ticket_data,omitempty"` + ClientVersion *uint32 `protobuf:"varint,4,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"` + TournamentMatch *TournamentMatchSetup `protobuf:"bytes,5,opt,name=tournament_match,json=tournamentMatch" json:"tournament_match,omitempty"` + PrimeOnly *bool `protobuf:"varint,6,opt,name=prime_only,json=primeOnly" json:"prime_only,omitempty"` + TvControl *uint32 `protobuf:"varint,7,opt,name=tv_control,json=tvControl" json:"tv_control,omitempty"` + LobbyId *uint64 `protobuf:"varint,8,opt,name=lobby_id,json=lobbyId" json:"lobby_id,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingStart{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingStart) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingStart.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingStart) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetAccountIds() []uint32 { + if x != nil { + return x.AccountIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetTicketData() string { + if x != nil && x.TicketData != nil { + return *x.TicketData + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetClientVersion() uint32 { + if x != nil && x.ClientVersion != nil { + return *x.ClientVersion + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetTournamentMatch() *TournamentMatchSetup { + if x != nil { + return x.TournamentMatch + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetPrimeOnly() bool { + if x != nil && x.PrimeOnly != nil { + return *x.PrimeOnly + } + return false +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetTvControl() uint32 { + if x != nil && x.TvControl != nil { + return *x.TvControl + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingStart) GetLobbyId() uint64 { + if x != nil && x.LobbyId != nil { + return *x.LobbyId + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Abandon *int32 `protobuf:"varint,1,opt,name=abandon" json:"abandon,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingStop) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingStop{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingStop) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingStop) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingStop.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingStop) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{28} +} + +func (x *CMsgGCCStrike15V2_MatchmakingStop) GetAbandon() int32 { + if x != nil && x.Abandon != nil { + return *x.Abandon + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingClient2ServerPing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Gameserverpings []*GameServerPing `protobuf:"bytes,1,rep,name=gameserverpings" json:"gameserverpings,omitempty"` + OffsetIndex *int32 `protobuf:"varint,2,opt,name=offset_index,json=offsetIndex" json:"offset_index,omitempty"` + FinalBatch *int32 `protobuf:"varint,3,opt,name=final_batch,json=finalBatch" json:"final_batch,omitempty"` + DataCenterPings []*DataCenterPing `protobuf:"bytes,4,rep,name=data_center_pings,json=dataCenterPings" json:"data_center_pings,omitempty"` + MaxPing *uint32 `protobuf:"varint,5,opt,name=max_ping,json=maxPing" json:"max_ping,omitempty"` + TestToken *uint32 `protobuf:"fixed32,6,opt,name=test_token,json=testToken" json:"test_token,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingClient2ServerPing{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingClient2ServerPing) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingClient2ServerPing.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingClient2ServerPing) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{29} +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetGameserverpings() []*GameServerPing { + if x != nil { + return x.Gameserverpings + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetOffsetIndex() int32 { + if x != nil && x.OffsetIndex != nil { + return *x.OffsetIndex + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetFinalBatch() int32 { + if x != nil && x.FinalBatch != nil { + return *x.FinalBatch + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetDataCenterPings() []*DataCenterPing { + if x != nil { + return x.DataCenterPings + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetMaxPing() uint32 { + if x != nil && x.MaxPing != nil { + return *x.MaxPing + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2ServerPing) GetTestToken() uint32 { + if x != nil && x.TestToken != nil { + return *x.TestToken + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Matchmaking *int32 `protobuf:"varint,1,opt,name=matchmaking" json:"matchmaking,omitempty"` + WaitingAccountIdSessions []uint32 `protobuf:"varint,2,rep,name=waiting_account_id_sessions,json=waitingAccountIdSessions" json:"waiting_account_id_sessions,omitempty"` + Error *string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"` + OngoingmatchAccountIdSessions []uint32 `protobuf:"varint,6,rep,name=ongoingmatch_account_id_sessions,json=ongoingmatchAccountIdSessions" json:"ongoingmatch_account_id_sessions,omitempty"` + GlobalStats *GlobalStatistics `protobuf:"bytes,7,opt,name=global_stats,json=globalStats" json:"global_stats,omitempty"` + FailpingAccountIdSessions []uint32 `protobuf:"varint,8,rep,name=failping_account_id_sessions,json=failpingAccountIdSessions" json:"failping_account_id_sessions,omitempty"` + PenaltyAccountIdSessions []uint32 `protobuf:"varint,9,rep,name=penalty_account_id_sessions,json=penaltyAccountIdSessions" json:"penalty_account_id_sessions,omitempty"` + FailreadyAccountIdSessions []uint32 `protobuf:"varint,10,rep,name=failready_account_id_sessions,json=failreadyAccountIdSessions" json:"failready_account_id_sessions,omitempty"` + VacbannedAccountIdSessions []uint32 `protobuf:"varint,11,rep,name=vacbanned_account_id_sessions,json=vacbannedAccountIdSessions" json:"vacbanned_account_id_sessions,omitempty"` + ServerIpaddressMask *IpAddressMask `protobuf:"bytes,12,opt,name=server_ipaddress_mask,json=serverIpaddressMask" json:"server_ipaddress_mask,omitempty"` + Notes []*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note `protobuf:"bytes,13,rep,name=notes" json:"notes,omitempty"` + PenaltyAccountIdSessionsGreen []uint32 `protobuf:"varint,14,rep,name=penalty_account_id_sessions_green,json=penaltyAccountIdSessionsGreen" json:"penalty_account_id_sessions_green,omitempty"` + InsufficientlevelSessions []uint32 `protobuf:"varint,15,rep,name=insufficientlevel_sessions,json=insufficientlevelSessions" json:"insufficientlevel_sessions,omitempty"` + VsncheckAccountIdSessions []uint32 `protobuf:"varint,16,rep,name=vsncheck_account_id_sessions,json=vsncheckAccountIdSessions" json:"vsncheck_account_id_sessions,omitempty"` + LauncherMismatchSessions []uint32 `protobuf:"varint,17,rep,name=launcher_mismatch_sessions,json=launcherMismatchSessions" json:"launcher_mismatch_sessions,omitempty"` + InsecureAccountIdSessions []uint32 `protobuf:"varint,18,rep,name=insecure_account_id_sessions,json=insecureAccountIdSessions" json:"insecure_account_id_sessions,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetMatchmaking() int32 { + if x != nil && x.Matchmaking != nil { + return *x.Matchmaking + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetWaitingAccountIdSessions() []uint32 { + if x != nil { + return x.WaitingAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetOngoingmatchAccountIdSessions() []uint32 { + if x != nil { + return x.OngoingmatchAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetGlobalStats() *GlobalStatistics { + if x != nil { + return x.GlobalStats + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetFailpingAccountIdSessions() []uint32 { + if x != nil { + return x.FailpingAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetPenaltyAccountIdSessions() []uint32 { + if x != nil { + return x.PenaltyAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetFailreadyAccountIdSessions() []uint32 { + if x != nil { + return x.FailreadyAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetVacbannedAccountIdSessions() []uint32 { + if x != nil { + return x.VacbannedAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetServerIpaddressMask() *IpAddressMask { + if x != nil { + return x.ServerIpaddressMask + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetNotes() []*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note { + if x != nil { + return x.Notes + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetPenaltyAccountIdSessionsGreen() []uint32 { + if x != nil { + return x.PenaltyAccountIdSessionsGreen + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetInsufficientlevelSessions() []uint32 { + if x != nil { + return x.InsufficientlevelSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetVsncheckAccountIdSessions() []uint32 { + if x != nil { + return x.VsncheckAccountIdSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetLauncherMismatchSessions() []uint32 { + if x != nil { + return x.LauncherMismatchSessions + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate) GetInsecureAccountIdSessions() []uint32 { + if x != nil { + return x.InsecureAccountIdSessions + } + return nil +} + +type CDataGCCStrike15V2_TournamentMatchDraft struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *int32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + EventStageId *int32 `protobuf:"varint,2,opt,name=event_stage_id,json=eventStageId" json:"event_stage_id,omitempty"` + TeamId_0 *int32 `protobuf:"varint,3,opt,name=team_id_0,json=teamId0" json:"team_id_0,omitempty"` + TeamId_1 *int32 `protobuf:"varint,4,opt,name=team_id_1,json=teamId1" json:"team_id_1,omitempty"` + MapsCount *int32 `protobuf:"varint,5,opt,name=maps_count,json=mapsCount" json:"maps_count,omitempty"` + MapsCurrent *int32 `protobuf:"varint,6,opt,name=maps_current,json=mapsCurrent" json:"maps_current,omitempty"` + TeamIdStart *int32 `protobuf:"varint,7,opt,name=team_id_start,json=teamIdStart" json:"team_id_start,omitempty"` + TeamIdVeto1 *int32 `protobuf:"varint,8,opt,name=team_id_veto1,json=teamIdVeto1" json:"team_id_veto1,omitempty"` + TeamIdPickn *int32 `protobuf:"varint,9,opt,name=team_id_pickn,json=teamIdPickn" json:"team_id_pickn,omitempty"` + Drafts []*CDataGCCStrike15V2_TournamentMatchDraft_Entry `protobuf:"bytes,10,rep,name=drafts" json:"drafts,omitempty"` + VoteMapid_0 []int32 `protobuf:"varint,11,rep,name=vote_mapid_0,json=voteMapid0" json:"vote_mapid_0,omitempty"` + VoteMapid_1 []int32 `protobuf:"varint,12,rep,name=vote_mapid_1,json=voteMapid1" json:"vote_mapid_1,omitempty"` + VoteMapid_2 []int32 `protobuf:"varint,13,rep,name=vote_mapid_2,json=voteMapid2" json:"vote_mapid_2,omitempty"` + VoteMapid_3 []int32 `protobuf:"varint,14,rep,name=vote_mapid_3,json=voteMapid3" json:"vote_mapid_3,omitempty"` + VoteMapid_4 []int32 `protobuf:"varint,15,rep,name=vote_mapid_4,json=voteMapid4" json:"vote_mapid_4,omitempty"` + VoteMapid_5 []int32 `protobuf:"varint,16,rep,name=vote_mapid_5,json=voteMapid5" json:"vote_mapid_5,omitempty"` + VoteStartingSide []int32 `protobuf:"varint,17,rep,name=vote_starting_side,json=voteStartingSide" json:"vote_starting_side,omitempty"` + VotePhase *int32 `protobuf:"varint,18,opt,name=vote_phase,json=votePhase" json:"vote_phase,omitempty"` + VotePhaseStart *float32 `protobuf:"fixed32,19,opt,name=vote_phase_start,json=votePhaseStart" json:"vote_phase_start,omitempty"` + VotePhaseLength *float32 `protobuf:"fixed32,20,opt,name=vote_phase_length,json=votePhaseLength" json:"vote_phase_length,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) Reset() { + *x = CDataGCCStrike15V2_TournamentMatchDraft{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentMatchDraft) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentMatchDraft.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentMatchDraft) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetEventId() int32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetEventStageId() int32 { + if x != nil && x.EventStageId != nil { + return *x.EventStageId + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetTeamId_0() int32 { + if x != nil && x.TeamId_0 != nil { + return *x.TeamId_0 + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetTeamId_1() int32 { + if x != nil && x.TeamId_1 != nil { + return *x.TeamId_1 + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetMapsCount() int32 { + if x != nil && x.MapsCount != nil { + return *x.MapsCount + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetMapsCurrent() int32 { + if x != nil && x.MapsCurrent != nil { + return *x.MapsCurrent + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetTeamIdStart() int32 { + if x != nil && x.TeamIdStart != nil { + return *x.TeamIdStart + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetTeamIdVeto1() int32 { + if x != nil && x.TeamIdVeto1 != nil { + return *x.TeamIdVeto1 + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetTeamIdPickn() int32 { + if x != nil && x.TeamIdPickn != nil { + return *x.TeamIdPickn + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetDrafts() []*CDataGCCStrike15V2_TournamentMatchDraft_Entry { + if x != nil { + return x.Drafts + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_0() []int32 { + if x != nil { + return x.VoteMapid_0 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_1() []int32 { + if x != nil { + return x.VoteMapid_1 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_2() []int32 { + if x != nil { + return x.VoteMapid_2 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_3() []int32 { + if x != nil { + return x.VoteMapid_3 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_4() []int32 { + if x != nil { + return x.VoteMapid_4 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteMapid_5() []int32 { + if x != nil { + return x.VoteMapid_5 + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVoteStartingSide() []int32 { + if x != nil { + return x.VoteStartingSide + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVotePhase() int32 { + if x != nil && x.VotePhase != nil { + return *x.VotePhase + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVotePhaseStart() float32 { + if x != nil && x.VotePhaseStart != nil { + return *x.VotePhaseStart + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft) GetVotePhaseLength() float32 { + if x != nil && x.VotePhaseLength != nil { + return *x.VotePhaseLength + } + return 0 +} + +type CPreMatchInfoData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PredictionsPct *int32 `protobuf:"varint,1,opt,name=predictions_pct,json=predictionsPct" json:"predictions_pct,omitempty"` + Draft *CDataGCCStrike15V2_TournamentMatchDraft `protobuf:"bytes,4,opt,name=draft" json:"draft,omitempty"` + Stats []*CPreMatchInfoData_TeamStats `protobuf:"bytes,5,rep,name=stats" json:"stats,omitempty"` + Wins []int32 `protobuf:"varint,6,rep,name=wins" json:"wins,omitempty"` +} + +func (x *CPreMatchInfoData) Reset() { + *x = CPreMatchInfoData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CPreMatchInfoData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CPreMatchInfoData) ProtoMessage() {} + +func (x *CPreMatchInfoData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CPreMatchInfoData.ProtoReflect.Descriptor instead. +func (*CPreMatchInfoData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{32} +} + +func (x *CPreMatchInfoData) GetPredictionsPct() int32 { + if x != nil && x.PredictionsPct != nil { + return *x.PredictionsPct + } + return 0 +} + +func (x *CPreMatchInfoData) GetDraft() *CDataGCCStrike15V2_TournamentMatchDraft { + if x != nil { + return x.Draft + } + return nil +} + +func (x *CPreMatchInfoData) GetStats() []*CPreMatchInfoData_TeamStats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *CPreMatchInfoData) GetWins() []int32 { + if x != nil { + return x.Wins + } + return nil +} + +type CMsgGCCStrike15V2_MatchmakingGC2ServerReserve struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountIds []uint32 `protobuf:"varint,1,rep,name=account_ids,json=accountIds" json:"account_ids,omitempty"` + GameType *uint32 `protobuf:"varint,2,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + MatchId *uint64 `protobuf:"varint,3,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + ServerVersion *uint32 `protobuf:"varint,4,opt,name=server_version,json=serverVersion" json:"server_version,omitempty"` + Flags *uint32 `protobuf:"varint,18,opt,name=flags" json:"flags,omitempty"` + Rankings []*PlayerRankingInfo `protobuf:"bytes,5,rep,name=rankings" json:"rankings,omitempty"` + EncryptionKey *uint64 `protobuf:"varint,6,opt,name=encryption_key,json=encryptionKey" json:"encryption_key,omitempty"` + EncryptionKeyPub *uint64 `protobuf:"varint,7,opt,name=encryption_key_pub,json=encryptionKeyPub" json:"encryption_key_pub,omitempty"` + PartyIds []uint32 `protobuf:"varint,8,rep,name=party_ids,json=partyIds" json:"party_ids,omitempty"` + Whitelist []*IpAddressMask `protobuf:"bytes,9,rep,name=whitelist" json:"whitelist,omitempty"` + TvMasterSteamid *uint64 `protobuf:"varint,10,opt,name=tv_master_steamid,json=tvMasterSteamid" json:"tv_master_steamid,omitempty"` + TournamentEvent *TournamentEvent `protobuf:"bytes,11,opt,name=tournament_event,json=tournamentEvent" json:"tournament_event,omitempty"` + TournamentTeams []*TournamentTeam `protobuf:"bytes,12,rep,name=tournament_teams,json=tournamentTeams" json:"tournament_teams,omitempty"` + TournamentCastersAccountIds []uint32 `protobuf:"varint,13,rep,name=tournament_casters_account_ids,json=tournamentCastersAccountIds" json:"tournament_casters_account_ids,omitempty"` + TvRelaySteamid *uint64 `protobuf:"varint,14,opt,name=tv_relay_steamid,json=tvRelaySteamid" json:"tv_relay_steamid,omitempty"` + PreMatchData *CPreMatchInfoData `protobuf:"bytes,15,opt,name=pre_match_data,json=preMatchData" json:"pre_match_data,omitempty"` + Rtime32EventStart *uint32 `protobuf:"varint,16,opt,name=rtime32_event_start,json=rtime32EventStart" json:"rtime32_event_start,omitempty"` + TvControl *uint32 `protobuf:"varint,17,opt,name=tv_control,json=tvControl" json:"tv_control,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ServerReserve{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ServerReserve.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetAccountIds() []uint32 { + if x != nil { + return x.AccountIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetServerVersion() uint32 { + if x != nil && x.ServerVersion != nil { + return *x.ServerVersion + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetRankings() []*PlayerRankingInfo { + if x != nil { + return x.Rankings + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetEncryptionKey() uint64 { + if x != nil && x.EncryptionKey != nil { + return *x.EncryptionKey + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetEncryptionKeyPub() uint64 { + if x != nil && x.EncryptionKeyPub != nil { + return *x.EncryptionKeyPub + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetPartyIds() []uint32 { + if x != nil { + return x.PartyIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetWhitelist() []*IpAddressMask { + if x != nil { + return x.Whitelist + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTvMasterSteamid() uint64 { + if x != nil && x.TvMasterSteamid != nil { + return *x.TvMasterSteamid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTournamentEvent() *TournamentEvent { + if x != nil { + return x.TournamentEvent + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTournamentTeams() []*TournamentTeam { + if x != nil { + return x.TournamentTeams + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTournamentCastersAccountIds() []uint32 { + if x != nil { + return x.TournamentCastersAccountIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTvRelaySteamid() uint64 { + if x != nil && x.TvRelaySteamid != nil { + return *x.TvRelaySteamid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetPreMatchData() *CPreMatchInfoData { + if x != nil { + return x.PreMatchData + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetRtime32EventStart() uint32 { + if x != nil && x.Rtime32EventStart != nil { + return *x.Rtime32EventStart + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve) GetTvControl() uint32 { + if x != nil && x.TvControl != nil { + return *x.TvControl + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingServerReservationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reservationid *uint64 `protobuf:"varint,1,opt,name=reservationid" json:"reservationid,omitempty"` + Reservation *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve `protobuf:"bytes,2,opt,name=reservation" json:"reservation,omitempty"` + Map *string `protobuf:"bytes,3,opt,name=map" json:"map,omitempty"` + GcReservationSent *uint64 `protobuf:"varint,4,opt,name=gc_reservation_sent,json=gcReservationSent" json:"gc_reservation_sent,omitempty"` + ServerVersion *uint32 `protobuf:"varint,5,opt,name=server_version,json=serverVersion" json:"server_version,omitempty"` + TvInfo *ServerHltvInfo `protobuf:"bytes,6,opt,name=tv_info,json=tvInfo" json:"tv_info,omitempty"` + RewardPlayerAccounts []uint32 `protobuf:"varint,7,rep,name=reward_player_accounts,json=rewardPlayerAccounts" json:"reward_player_accounts,omitempty"` + IdlePlayerAccounts []uint32 `protobuf:"varint,8,rep,name=idle_player_accounts,json=idlePlayerAccounts" json:"idle_player_accounts,omitempty"` + RewardItemAttrDefIdx *uint32 `protobuf:"varint,9,opt,name=reward_item_attr_def_idx,json=rewardItemAttrDefIdx" json:"reward_item_attr_def_idx,omitempty"` + RewardItemAttrValue *uint32 `protobuf:"varint,10,opt,name=reward_item_attr_value,json=rewardItemAttrValue" json:"reward_item_attr_value,omitempty"` + RewardItemAttrRewardIdx *uint32 `protobuf:"varint,11,opt,name=reward_item_attr_reward_idx,json=rewardItemAttrRewardIdx" json:"reward_item_attr_reward_idx,omitempty"` + RewardDropList *uint32 `protobuf:"varint,12,opt,name=reward_drop_list,json=rewardDropList" json:"reward_drop_list,omitempty"` + TournamentTag *string `protobuf:"bytes,13,opt,name=tournament_tag,json=tournamentTag" json:"tournament_tag,omitempty"` + LegacySteamdatagramPort *uint32 `protobuf:"varint,14,opt,name=legacy_steamdatagram_port,json=legacySteamdatagramPort" json:"legacy_steamdatagram_port,omitempty"` + SteamdatagramRouting *uint32 `protobuf:"varint,17,opt,name=steamdatagram_routing,json=steamdatagramRouting" json:"steamdatagram_routing,omitempty"` + TestToken *uint32 `protobuf:"fixed32,15,opt,name=test_token,json=testToken" json:"test_token,omitempty"` + Flags *uint32 `protobuf:"varint,16,opt,name=flags" json:"flags,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingServerReservationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingServerReservationResponse) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingServerReservationResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingServerReservationResponse) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{34} +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetReservationid() uint64 { + if x != nil && x.Reservationid != nil { + return *x.Reservationid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetReservation() *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve { + if x != nil { + return x.Reservation + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetMap() string { + if x != nil && x.Map != nil { + return *x.Map + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetGcReservationSent() uint64 { + if x != nil && x.GcReservationSent != nil { + return *x.GcReservationSent + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetServerVersion() uint32 { + if x != nil && x.ServerVersion != nil { + return *x.ServerVersion + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetTvInfo() *ServerHltvInfo { + if x != nil { + return x.TvInfo + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetRewardPlayerAccounts() []uint32 { + if x != nil { + return x.RewardPlayerAccounts + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetIdlePlayerAccounts() []uint32 { + if x != nil { + return x.IdlePlayerAccounts + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetRewardItemAttrDefIdx() uint32 { + if x != nil && x.RewardItemAttrDefIdx != nil { + return *x.RewardItemAttrDefIdx + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetRewardItemAttrValue() uint32 { + if x != nil && x.RewardItemAttrValue != nil { + return *x.RewardItemAttrValue + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetRewardItemAttrRewardIdx() uint32 { + if x != nil && x.RewardItemAttrRewardIdx != nil { + return *x.RewardItemAttrRewardIdx + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetRewardDropList() uint32 { + if x != nil && x.RewardDropList != nil { + return *x.RewardDropList + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetTournamentTag() string { + if x != nil && x.TournamentTag != nil { + return *x.TournamentTag + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetLegacySteamdatagramPort() uint32 { + if x != nil && x.LegacySteamdatagramPort != nil { + return *x.LegacySteamdatagramPort + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetSteamdatagramRouting() uint32 { + if x != nil && x.SteamdatagramRouting != nil { + return *x.SteamdatagramRouting + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetTestToken() uint32 { + if x != nil && x.TestToken != nil { + return *x.TestToken + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerReservationResponse) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingGC2ClientReserve struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Serverid *uint64 `protobuf:"varint,1,opt,name=serverid" json:"serverid,omitempty"` + DirectUdpIp *uint32 `protobuf:"varint,2,opt,name=direct_udp_ip,json=directUdpIp" json:"direct_udp_ip,omitempty"` + DirectUdpPort *uint32 `protobuf:"varint,3,opt,name=direct_udp_port,json=directUdpPort" json:"direct_udp_port,omitempty"` + Reservationid *uint64 `protobuf:"varint,4,opt,name=reservationid" json:"reservationid,omitempty"` + Reservation *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve `protobuf:"bytes,5,opt,name=reservation" json:"reservation,omitempty"` + Map *string `protobuf:"bytes,6,opt,name=map" json:"map,omitempty"` + ServerAddress *string `protobuf:"bytes,7,opt,name=server_address,json=serverAddress" json:"server_address,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ClientReserve{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ClientReserve.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetServerid() uint64 { + if x != nil && x.Serverid != nil { + return *x.Serverid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetDirectUdpIp() uint32 { + if x != nil && x.DirectUdpIp != nil { + return *x.DirectUdpIp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetDirectUdpPort() uint32 { + if x != nil && x.DirectUdpPort != nil { + return *x.DirectUdpPort + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetReservationid() uint64 { + if x != nil && x.Reservationid != nil { + return *x.Reservationid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetReservation() *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve { + if x != nil { + return x.Reservation + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetMap() string { + if x != nil && x.Map != nil { + return *x.Map + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve) GetServerAddress() string { + if x != nil && x.ServerAddress != nil { + return *x.ServerAddress + } + return "" +} + +type CMsgGCCStrike15V2_MatchmakingServerRoundStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reservationid *uint64 `protobuf:"varint,1,opt,name=reservationid" json:"reservationid,omitempty"` + Reservation *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve `protobuf:"bytes,2,opt,name=reservation" json:"reservation,omitempty"` + Map *string `protobuf:"bytes,3,opt,name=map" json:"map,omitempty"` + Round *int32 `protobuf:"varint,4,opt,name=round" json:"round,omitempty"` + Kills []int32 `protobuf:"varint,5,rep,name=kills" json:"kills,omitempty"` + Assists []int32 `protobuf:"varint,6,rep,name=assists" json:"assists,omitempty"` + Deaths []int32 `protobuf:"varint,7,rep,name=deaths" json:"deaths,omitempty"` + Scores []int32 `protobuf:"varint,8,rep,name=scores" json:"scores,omitempty"` + Pings []int32 `protobuf:"varint,9,rep,name=pings" json:"pings,omitempty"` + RoundResult *int32 `protobuf:"varint,10,opt,name=round_result,json=roundResult" json:"round_result,omitempty"` + MatchResult *int32 `protobuf:"varint,11,opt,name=match_result,json=matchResult" json:"match_result,omitempty"` + TeamScores []int32 `protobuf:"varint,12,rep,name=team_scores,json=teamScores" json:"team_scores,omitempty"` + Confirm *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm `protobuf:"bytes,13,opt,name=confirm" json:"confirm,omitempty"` + ReservationStage *int32 `protobuf:"varint,14,opt,name=reservation_stage,json=reservationStage" json:"reservation_stage,omitempty"` + MatchDuration *int32 `protobuf:"varint,15,opt,name=match_duration,json=matchDuration" json:"match_duration,omitempty"` + EnemyKills []int32 `protobuf:"varint,16,rep,name=enemy_kills,json=enemyKills" json:"enemy_kills,omitempty"` + EnemyHeadshots []int32 `protobuf:"varint,17,rep,name=enemy_headshots,json=enemyHeadshots" json:"enemy_headshots,omitempty"` + Enemy_3Ks []int32 `protobuf:"varint,18,rep,name=enemy_3ks,json=enemy3ks" json:"enemy_3ks,omitempty"` + Enemy_4Ks []int32 `protobuf:"varint,19,rep,name=enemy_4ks,json=enemy4ks" json:"enemy_4ks,omitempty"` + Enemy_5Ks []int32 `protobuf:"varint,20,rep,name=enemy_5ks,json=enemy5ks" json:"enemy_5ks,omitempty"` + Mvps []int32 `protobuf:"varint,21,rep,name=mvps" json:"mvps,omitempty"` + SpectatorsCount *uint32 `protobuf:"varint,22,opt,name=spectators_count,json=spectatorsCount" json:"spectators_count,omitempty"` + SpectatorsCountTv *uint32 `protobuf:"varint,23,opt,name=spectators_count_tv,json=spectatorsCountTv" json:"spectators_count_tv,omitempty"` + SpectatorsCountLnk *uint32 `protobuf:"varint,24,opt,name=spectators_count_lnk,json=spectatorsCountLnk" json:"spectators_count_lnk,omitempty"` + EnemyKillsAgg []int32 `protobuf:"varint,25,rep,name=enemy_kills_agg,json=enemyKillsAgg" json:"enemy_kills_agg,omitempty"` + DropInfo *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo `protobuf:"bytes,26,opt,name=drop_info,json=dropInfo" json:"drop_info,omitempty"` + BSwitchedTeams *bool `protobuf:"varint,27,opt,name=b_switched_teams,json=bSwitchedTeams" json:"b_switched_teams,omitempty"` + Enemy_2Ks []int32 `protobuf:"varint,28,rep,name=enemy_2ks,json=enemy2ks" json:"enemy_2ks,omitempty"` + PlayerSpawned []int32 `protobuf:"varint,29,rep,name=player_spawned,json=playerSpawned" json:"player_spawned,omitempty"` + TeamSpawnCount []int32 `protobuf:"varint,30,rep,name=team_spawn_count,json=teamSpawnCount" json:"team_spawn_count,omitempty"` + MaxRounds *uint32 `protobuf:"varint,31,opt,name=max_rounds,json=maxRounds" json:"max_rounds,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingServerRoundStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingServerRoundStats) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingServerRoundStats.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingServerRoundStats) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{36} +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetReservationid() uint64 { + if x != nil && x.Reservationid != nil { + return *x.Reservationid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetReservation() *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve { + if x != nil { + return x.Reservation + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetMap() string { + if x != nil && x.Map != nil { + return *x.Map + } + return "" +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetRound() int32 { + if x != nil && x.Round != nil { + return *x.Round + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetKills() []int32 { + if x != nil { + return x.Kills + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetAssists() []int32 { + if x != nil { + return x.Assists + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetDeaths() []int32 { + if x != nil { + return x.Deaths + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetScores() []int32 { + if x != nil { + return x.Scores + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetPings() []int32 { + if x != nil { + return x.Pings + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetRoundResult() int32 { + if x != nil && x.RoundResult != nil { + return *x.RoundResult + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetMatchResult() int32 { + if x != nil && x.MatchResult != nil { + return *x.MatchResult + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetTeamScores() []int32 { + if x != nil { + return x.TeamScores + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetConfirm() *CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm { + if x != nil { + return x.Confirm + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetReservationStage() int32 { + if x != nil && x.ReservationStage != nil { + return *x.ReservationStage + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetMatchDuration() int32 { + if x != nil && x.MatchDuration != nil { + return *x.MatchDuration + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemyKills() []int32 { + if x != nil { + return x.EnemyKills + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemyHeadshots() []int32 { + if x != nil { + return x.EnemyHeadshots + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemy_3Ks() []int32 { + if x != nil { + return x.Enemy_3Ks + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemy_4Ks() []int32 { + if x != nil { + return x.Enemy_4Ks + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemy_5Ks() []int32 { + if x != nil { + return x.Enemy_5Ks + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetMvps() []int32 { + if x != nil { + return x.Mvps + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetSpectatorsCount() uint32 { + if x != nil && x.SpectatorsCount != nil { + return *x.SpectatorsCount + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetSpectatorsCountTv() uint32 { + if x != nil && x.SpectatorsCountTv != nil { + return *x.SpectatorsCountTv + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetSpectatorsCountLnk() uint32 { + if x != nil && x.SpectatorsCountLnk != nil { + return *x.SpectatorsCountLnk + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemyKillsAgg() []int32 { + if x != nil { + return x.EnemyKillsAgg + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetDropInfo() *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo { + if x != nil { + return x.DropInfo + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetBSwitchedTeams() bool { + if x != nil && x.BSwitchedTeams != nil { + return *x.BSwitchedTeams + } + return false +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetEnemy_2Ks() []int32 { + if x != nil { + return x.Enemy_2Ks + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetPlayerSpawned() []int32 { + if x != nil { + return x.PlayerSpawned + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetTeamSpawnCount() []int32 { + if x != nil { + return x.TeamSpawnCount + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats) GetMaxRounds() uint32 { + if x != nil && x.MaxRounds != nil { + return *x.MaxRounds + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingClient2GCHello struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2GCHello) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingClient2GCHello{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2GCHello) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingClient2GCHello) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingClient2GCHello) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingClient2GCHello.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingClient2GCHello) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{37} +} + +type CMsgGCCStrike15V2_MatchmakingGC2ClientHello struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Ongoingmatch *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve `protobuf:"bytes,2,opt,name=ongoingmatch" json:"ongoingmatch,omitempty"` + GlobalStats *GlobalStatistics `protobuf:"bytes,3,opt,name=global_stats,json=globalStats" json:"global_stats,omitempty"` + PenaltySeconds *uint32 `protobuf:"varint,4,opt,name=penalty_seconds,json=penaltySeconds" json:"penalty_seconds,omitempty"` + PenaltyReason *uint32 `protobuf:"varint,5,opt,name=penalty_reason,json=penaltyReason" json:"penalty_reason,omitempty"` + VacBanned *int32 `protobuf:"varint,6,opt,name=vac_banned,json=vacBanned" json:"vac_banned,omitempty"` + Ranking *PlayerRankingInfo `protobuf:"bytes,7,opt,name=ranking" json:"ranking,omitempty"` + Commendation *PlayerCommendationInfo `protobuf:"bytes,8,opt,name=commendation" json:"commendation,omitempty"` + Medals *PlayerMedalsInfo `protobuf:"bytes,9,opt,name=medals" json:"medals,omitempty"` + MyCurrentEvent *TournamentEvent `protobuf:"bytes,10,opt,name=my_current_event,json=myCurrentEvent" json:"my_current_event,omitempty"` + MyCurrentEventTeams []*TournamentTeam `protobuf:"bytes,11,rep,name=my_current_event_teams,json=myCurrentEventTeams" json:"my_current_event_teams,omitempty"` + MyCurrentTeam *TournamentTeam `protobuf:"bytes,12,opt,name=my_current_team,json=myCurrentTeam" json:"my_current_team,omitempty"` + MyCurrentEventStages []*TournamentEvent `protobuf:"bytes,13,rep,name=my_current_event_stages,json=myCurrentEventStages" json:"my_current_event_stages,omitempty"` + SurveyVote *uint32 `protobuf:"varint,14,opt,name=survey_vote,json=surveyVote" json:"survey_vote,omitempty"` + Activity *AccountActivity `protobuf:"bytes,15,opt,name=activity" json:"activity,omitempty"` + PlayerLevel *int32 `protobuf:"varint,17,opt,name=player_level,json=playerLevel" json:"player_level,omitempty"` + PlayerCurXp *int32 `protobuf:"varint,18,opt,name=player_cur_xp,json=playerCurXp" json:"player_cur_xp,omitempty"` + PlayerXpBonusFlags *int32 `protobuf:"varint,19,opt,name=player_xp_bonus_flags,json=playerXpBonusFlags" json:"player_xp_bonus_flags,omitempty"` + Rankings []*PlayerRankingInfo `protobuf:"bytes,20,rep,name=rankings" json:"rankings,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ClientHello{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientHello) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ClientHello.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientHello) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{38} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetOngoingmatch() *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve { + if x != nil { + return x.Ongoingmatch + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetGlobalStats() *GlobalStatistics { + if x != nil { + return x.GlobalStats + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetPenaltySeconds() uint32 { + if x != nil && x.PenaltySeconds != nil { + return *x.PenaltySeconds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetPenaltyReason() uint32 { + if x != nil && x.PenaltyReason != nil { + return *x.PenaltyReason + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetVacBanned() int32 { + if x != nil && x.VacBanned != nil { + return *x.VacBanned + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetRanking() *PlayerRankingInfo { + if x != nil { + return x.Ranking + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetCommendation() *PlayerCommendationInfo { + if x != nil { + return x.Commendation + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetMedals() *PlayerMedalsInfo { + if x != nil { + return x.Medals + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetMyCurrentEvent() *TournamentEvent { + if x != nil { + return x.MyCurrentEvent + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetMyCurrentEventTeams() []*TournamentTeam { + if x != nil { + return x.MyCurrentEventTeams + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetMyCurrentTeam() *TournamentTeam { + if x != nil { + return x.MyCurrentTeam + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetMyCurrentEventStages() []*TournamentEvent { + if x != nil { + return x.MyCurrentEventStages + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetSurveyVote() uint32 { + if x != nil && x.SurveyVote != nil { + return *x.SurveyVote + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetActivity() *AccountActivity { + if x != nil { + return x.Activity + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetPlayerLevel() int32 { + if x != nil && x.PlayerLevel != nil { + return *x.PlayerLevel + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetPlayerCurXp() int32 { + if x != nil && x.PlayerCurXp != nil { + return *x.PlayerCurXp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetPlayerXpBonusFlags() int32 { + if x != nil && x.PlayerXpBonusFlags != nil { + return *x.PlayerXpBonusFlags + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientHello) GetRankings() []*PlayerRankingInfo { + if x != nil { + return x.Rankings + } + return nil +} + +type CMsgGCCStrike15V2_AccountPrivacySettings struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Settings []*CMsgGCCStrike15V2_AccountPrivacySettings_Setting `protobuf:"bytes,1,rep,name=settings" json:"settings,omitempty"` +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings) Reset() { + *x = CMsgGCCStrike15V2_AccountPrivacySettings{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_AccountPrivacySettings) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_AccountPrivacySettings.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_AccountPrivacySettings) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{39} +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings) GetSettings() []*CMsgGCCStrike15V2_AccountPrivacySettings_Setting { + if x != nil { + return x.Settings + } + return nil +} + +type CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + AbandonedMatch *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve `protobuf:"bytes,2,opt,name=abandoned_match,json=abandonedMatch" json:"abandoned_match,omitempty"` + PenaltySeconds *uint32 `protobuf:"varint,3,opt,name=penalty_seconds,json=penaltySeconds" json:"penalty_seconds,omitempty"` + PenaltyReason *uint32 `protobuf:"varint,4,opt,name=penalty_reason,json=penaltyReason" json:"penalty_reason,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{40} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) GetAbandonedMatch() *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve { + if x != nil { + return x.AbandonedMatch + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) GetPenaltySeconds() uint32 { + if x != nil && x.PenaltySeconds != nil { + return *x.PenaltySeconds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon) GetPenaltyReason() uint32 { + if x != nil && x.PenaltyReason != nil { + return *x.PenaltyReason + } + return 0 +} + +type CMsgGCCStrike15V2_ClientGCRankUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rankings []*PlayerRankingInfo `protobuf:"bytes,1,rep,name=rankings" json:"rankings,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientGCRankUpdate) Reset() { + *x = CMsgGCCStrike15V2_ClientGCRankUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientGCRankUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientGCRankUpdate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientGCRankUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientGCRankUpdate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientGCRankUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{41} +} + +func (x *CMsgGCCStrike15V2_ClientGCRankUpdate) GetRankings() []*PlayerRankingInfo { + if x != nil { + return x.Rankings + } + return nil +} + +type CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MainPostUrl *string `protobuf:"bytes,1,opt,name=main_post_url,json=mainPostUrl" json:"main_post_url,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{42} +} + +func (x *CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate) GetMainPostUrl() string { + if x != nil && x.MainPostUrl != nil { + return *x.MainPostUrl + } + return "" +} + +type CMsgGCCStrike15V2_ServerNotificationForUserPenalty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Reason *uint32 `protobuf:"varint,2,opt,name=reason" json:"reason,omitempty"` + Seconds *uint32 `protobuf:"varint,3,opt,name=seconds" json:"seconds,omitempty"` + CommunicationCooldown *bool `protobuf:"varint,4,opt,name=communication_cooldown,json=communicationCooldown" json:"communication_cooldown,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) Reset() { + *x = CMsgGCCStrike15V2_ServerNotificationForUserPenalty{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ServerNotificationForUserPenalty) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ServerNotificationForUserPenalty.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ServerNotificationForUserPenalty) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{43} +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) GetReason() uint32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) GetSeconds() uint32 { + if x != nil && x.Seconds != nil { + return *x.Seconds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ServerNotificationForUserPenalty) GetCommunicationCooldown() bool { + if x != nil && x.CommunicationCooldown != nil { + return *x.CommunicationCooldown + } + return false +} + +type CMsgGCCStrike15V2_ClientReportPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + RptAimbot *uint32 `protobuf:"varint,2,opt,name=rpt_aimbot,json=rptAimbot" json:"rpt_aimbot,omitempty"` + RptWallhack *uint32 `protobuf:"varint,3,opt,name=rpt_wallhack,json=rptWallhack" json:"rpt_wallhack,omitempty"` + RptSpeedhack *uint32 `protobuf:"varint,4,opt,name=rpt_speedhack,json=rptSpeedhack" json:"rpt_speedhack,omitempty"` + RptTeamharm *uint32 `protobuf:"varint,5,opt,name=rpt_teamharm,json=rptTeamharm" json:"rpt_teamharm,omitempty"` + RptTextabuse *uint32 `protobuf:"varint,6,opt,name=rpt_textabuse,json=rptTextabuse" json:"rpt_textabuse,omitempty"` + RptVoiceabuse *uint32 `protobuf:"varint,7,opt,name=rpt_voiceabuse,json=rptVoiceabuse" json:"rpt_voiceabuse,omitempty"` + MatchId *uint64 `protobuf:"varint,8,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + ReportFromDemo *bool `protobuf:"varint,9,opt,name=report_from_demo,json=reportFromDemo" json:"report_from_demo,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) Reset() { + *x = CMsgGCCStrike15V2_ClientReportPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientReportPlayer) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientReportPlayer.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientReportPlayer) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{44} +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptAimbot() uint32 { + if x != nil && x.RptAimbot != nil { + return *x.RptAimbot + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptWallhack() uint32 { + if x != nil && x.RptWallhack != nil { + return *x.RptWallhack + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptSpeedhack() uint32 { + if x != nil && x.RptSpeedhack != nil { + return *x.RptSpeedhack + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptTeamharm() uint32 { + if x != nil && x.RptTeamharm != nil { + return *x.RptTeamharm + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptTextabuse() uint32 { + if x != nil && x.RptTextabuse != nil { + return *x.RptTextabuse + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetRptVoiceabuse() uint32 { + if x != nil && x.RptVoiceabuse != nil { + return *x.RptVoiceabuse + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportPlayer) GetReportFromDemo() bool { + if x != nil && x.ReportFromDemo != nil { + return *x.ReportFromDemo + } + return false +} + +type CMsgGCCStrike15V2_ClientCommendPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + MatchId *uint64 `protobuf:"varint,8,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + Commendation *PlayerCommendationInfo `protobuf:"bytes,9,opt,name=commendation" json:"commendation,omitempty"` + Tokens *uint32 `protobuf:"varint,10,opt,name=tokens" json:"tokens,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) Reset() { + *x = CMsgGCCStrike15V2_ClientCommendPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientCommendPlayer) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientCommendPlayer.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientCommendPlayer) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{45} +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) GetCommendation() *PlayerCommendationInfo { + if x != nil { + return x.Commendation + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientCommendPlayer) GetTokens() uint32 { + if x != nil && x.Tokens != nil { + return *x.Tokens + } + return 0 +} + +type CMsgGCCStrike15V2_ClientReportServer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RptPoorperf *uint32 `protobuf:"varint,1,opt,name=rpt_poorperf,json=rptPoorperf" json:"rpt_poorperf,omitempty"` + RptAbusivemodels *uint32 `protobuf:"varint,2,opt,name=rpt_abusivemodels,json=rptAbusivemodels" json:"rpt_abusivemodels,omitempty"` + RptBadmotd *uint32 `protobuf:"varint,3,opt,name=rpt_badmotd,json=rptBadmotd" json:"rpt_badmotd,omitempty"` + RptListingabuse *uint32 `protobuf:"varint,4,opt,name=rpt_listingabuse,json=rptListingabuse" json:"rpt_listingabuse,omitempty"` + RptInventoryabuse *uint32 `protobuf:"varint,5,opt,name=rpt_inventoryabuse,json=rptInventoryabuse" json:"rpt_inventoryabuse,omitempty"` + MatchId *uint64 `protobuf:"varint,8,opt,name=match_id,json=matchId" json:"match_id,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) Reset() { + *x = CMsgGCCStrike15V2_ClientReportServer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientReportServer) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientReportServer) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientReportServer.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientReportServer) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{46} +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetRptPoorperf() uint32 { + if x != nil && x.RptPoorperf != nil { + return *x.RptPoorperf + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetRptAbusivemodels() uint32 { + if x != nil && x.RptAbusivemodels != nil { + return *x.RptAbusivemodels + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetRptBadmotd() uint32 { + if x != nil && x.RptBadmotd != nil { + return *x.RptBadmotd + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetRptListingabuse() uint32 { + if x != nil && x.RptListingabuse != nil { + return *x.RptListingabuse + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetRptInventoryabuse() uint32 { + if x != nil && x.RptInventoryabuse != nil { + return *x.RptInventoryabuse + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportServer) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +type CMsgGCCStrike15V2_ClientReportResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConfirmationId *uint64 `protobuf:"varint,1,opt,name=confirmation_id,json=confirmationId" json:"confirmation_id,omitempty"` + AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + ServerIp *uint32 `protobuf:"varint,3,opt,name=server_ip,json=serverIp" json:"server_ip,omitempty"` + ResponseType *uint32 `protobuf:"varint,4,opt,name=response_type,json=responseType" json:"response_type,omitempty"` + ResponseResult *uint32 `protobuf:"varint,5,opt,name=response_result,json=responseResult" json:"response_result,omitempty"` + Tokens *uint32 `protobuf:"varint,6,opt,name=tokens" json:"tokens,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) Reset() { + *x = CMsgGCCStrike15V2_ClientReportResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientReportResponse) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientReportResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientReportResponse) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{47} +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetConfirmationId() uint64 { + if x != nil && x.ConfirmationId != nil { + return *x.ConfirmationId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetServerIp() uint32 { + if x != nil && x.ServerIp != nil { + return *x.ServerIp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetResponseType() uint32 { + if x != nil && x.ResponseType != nil { + return *x.ResponseType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetResponseResult() uint32 { + if x != nil && x.ResponseResult != nil { + return *x.ResponseResult + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportResponse) GetTokens() uint32 { + if x != nil && x.Tokens != nil { + return *x.Tokens + } + return 0 +} + +type CMsgGCCStrike15V2_ClientRequestWatchInfoFriends struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId *uint32 `protobuf:"varint,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + AccountIds []uint32 `protobuf:"varint,2,rep,name=account_ids,json=accountIds" json:"account_ids,omitempty"` + Serverid *uint64 `protobuf:"varint,3,opt,name=serverid" json:"serverid,omitempty"` + Matchid *uint64 `protobuf:"varint,4,opt,name=matchid" json:"matchid,omitempty"` + ClientLauncher *uint32 `protobuf:"varint,5,opt,name=client_launcher,json=clientLauncher" json:"client_launcher,omitempty"` + DataCenterPings []*DataCenterPing `protobuf:"bytes,6,rep,name=data_center_pings,json=dataCenterPings" json:"data_center_pings,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestWatchInfoFriends{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestWatchInfoFriends.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{48} +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetRequestId() uint32 { + if x != nil && x.RequestId != nil { + return *x.RequestId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetAccountIds() []uint32 { + if x != nil { + return x.AccountIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetServerid() uint64 { + if x != nil && x.Serverid != nil { + return *x.Serverid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetMatchid() uint64 { + if x != nil && x.Matchid != nil { + return *x.Matchid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetClientLauncher() uint32 { + if x != nil && x.ClientLauncher != nil { + return *x.ClientLauncher + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestWatchInfoFriends) GetDataCenterPings() []*DataCenterPing { + if x != nil { + return x.DataCenterPings + } + return nil +} + +type WatchableMatchInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerIp *uint32 `protobuf:"varint,1,opt,name=server_ip,json=serverIp" json:"server_ip,omitempty"` + TvPort *uint32 `protobuf:"varint,2,opt,name=tv_port,json=tvPort" json:"tv_port,omitempty"` + TvSpectators *uint32 `protobuf:"varint,3,opt,name=tv_spectators,json=tvSpectators" json:"tv_spectators,omitempty"` + TvTime *uint32 `protobuf:"varint,4,opt,name=tv_time,json=tvTime" json:"tv_time,omitempty"` + TvWatchPassword []byte `protobuf:"bytes,5,opt,name=tv_watch_password,json=tvWatchPassword" json:"tv_watch_password,omitempty"` + ClDecryptdataKey *uint64 `protobuf:"varint,6,opt,name=cl_decryptdata_key,json=clDecryptdataKey" json:"cl_decryptdata_key,omitempty"` + ClDecryptdataKeyPub *uint64 `protobuf:"varint,7,opt,name=cl_decryptdata_key_pub,json=clDecryptdataKeyPub" json:"cl_decryptdata_key_pub,omitempty"` + GameType *uint32 `protobuf:"varint,8,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + GameMapgroup *string `protobuf:"bytes,9,opt,name=game_mapgroup,json=gameMapgroup" json:"game_mapgroup,omitempty"` + GameMap *string `protobuf:"bytes,10,opt,name=game_map,json=gameMap" json:"game_map,omitempty"` + ServerId *uint64 `protobuf:"varint,11,opt,name=server_id,json=serverId" json:"server_id,omitempty"` + MatchId *uint64 `protobuf:"varint,12,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + ReservationId *uint64 `protobuf:"varint,13,opt,name=reservation_id,json=reservationId" json:"reservation_id,omitempty"` +} + +func (x *WatchableMatchInfo) Reset() { + *x = WatchableMatchInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WatchableMatchInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WatchableMatchInfo) ProtoMessage() {} + +func (x *WatchableMatchInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WatchableMatchInfo.ProtoReflect.Descriptor instead. +func (*WatchableMatchInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{49} +} + +func (x *WatchableMatchInfo) GetServerIp() uint32 { + if x != nil && x.ServerIp != nil { + return *x.ServerIp + } + return 0 +} + +func (x *WatchableMatchInfo) GetTvPort() uint32 { + if x != nil && x.TvPort != nil { + return *x.TvPort + } + return 0 +} + +func (x *WatchableMatchInfo) GetTvSpectators() uint32 { + if x != nil && x.TvSpectators != nil { + return *x.TvSpectators + } + return 0 +} + +func (x *WatchableMatchInfo) GetTvTime() uint32 { + if x != nil && x.TvTime != nil { + return *x.TvTime + } + return 0 +} + +func (x *WatchableMatchInfo) GetTvWatchPassword() []byte { + if x != nil { + return x.TvWatchPassword + } + return nil +} + +func (x *WatchableMatchInfo) GetClDecryptdataKey() uint64 { + if x != nil && x.ClDecryptdataKey != nil { + return *x.ClDecryptdataKey + } + return 0 +} + +func (x *WatchableMatchInfo) GetClDecryptdataKeyPub() uint64 { + if x != nil && x.ClDecryptdataKeyPub != nil { + return *x.ClDecryptdataKeyPub + } + return 0 +} + +func (x *WatchableMatchInfo) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *WatchableMatchInfo) GetGameMapgroup() string { + if x != nil && x.GameMapgroup != nil { + return *x.GameMapgroup + } + return "" +} + +func (x *WatchableMatchInfo) GetGameMap() string { + if x != nil && x.GameMap != nil { + return *x.GameMap + } + return "" +} + +func (x *WatchableMatchInfo) GetServerId() uint64 { + if x != nil && x.ServerId != nil { + return *x.ServerId + } + return 0 +} + +func (x *WatchableMatchInfo) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *WatchableMatchInfo) GetReservationId() uint64 { + if x != nil && x.ReservationId != nil { + return *x.ReservationId + } + return 0 +} + +type CMsgGCCStrike15V2_ClientRequestJoinFriendData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + JoinToken *uint32 `protobuf:"varint,3,opt,name=join_token,json=joinToken" json:"join_token,omitempty"` + JoinIpp *uint32 `protobuf:"varint,4,opt,name=join_ipp,json=joinIpp" json:"join_ipp,omitempty"` + Res *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve `protobuf:"bytes,5,opt,name=res" json:"res,omitempty"` + Errormsg *string `protobuf:"bytes,6,opt,name=errormsg" json:"errormsg,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestJoinFriendData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestJoinFriendData) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestJoinFriendData.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestJoinFriendData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{50} +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetJoinToken() uint32 { + if x != nil && x.JoinToken != nil { + return *x.JoinToken + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetJoinIpp() uint32 { + if x != nil && x.JoinIpp != nil { + return *x.JoinIpp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetRes() *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve { + if x != nil { + return x.Res + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinFriendData) GetErrormsg() string { + if x != nil && x.Errormsg != nil { + return *x.Errormsg + } + return "" +} + +type CMsgGCCStrike15V2_ClientRequestJoinServerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Serverid *uint64 `protobuf:"varint,3,opt,name=serverid" json:"serverid,omitempty"` + ServerIp *uint32 `protobuf:"varint,4,opt,name=server_ip,json=serverIp" json:"server_ip,omitempty"` + ServerPort *uint32 `protobuf:"varint,5,opt,name=server_port,json=serverPort" json:"server_port,omitempty"` + Res *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve `protobuf:"bytes,6,opt,name=res" json:"res,omitempty"` + Errormsg *string `protobuf:"bytes,7,opt,name=errormsg" json:"errormsg,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestJoinServerData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestJoinServerData) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestJoinServerData.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestJoinServerData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{51} +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetServerid() uint64 { + if x != nil && x.Serverid != nil { + return *x.Serverid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetServerIp() uint32 { + if x != nil && x.ServerIp != nil { + return *x.ServerIp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetServerPort() uint32 { + if x != nil && x.ServerPort != nil { + return *x.ServerPort + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetRes() *CMsgGCCStrike15V2_MatchmakingGC2ClientReserve { + if x != nil { + return x.Res + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientRequestJoinServerData) GetErrormsg() string { + if x != nil && x.Errormsg != nil { + return *x.Errormsg + } + return "" +} + +type CMsgGCCstrike15V2_ClientRequestNewMission struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MissionId *uint32 `protobuf:"varint,2,opt,name=mission_id,json=missionId" json:"mission_id,omitempty"` + CampaignId *uint32 `protobuf:"varint,3,opt,name=campaign_id,json=campaignId" json:"campaign_id,omitempty"` +} + +func (x *CMsgGCCstrike15V2_ClientRequestNewMission) Reset() { + *x = CMsgGCCstrike15V2_ClientRequestNewMission{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCstrike15V2_ClientRequestNewMission) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCstrike15V2_ClientRequestNewMission) ProtoMessage() {} + +func (x *CMsgGCCstrike15V2_ClientRequestNewMission) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCstrike15V2_ClientRequestNewMission.ProtoReflect.Descriptor instead. +func (*CMsgGCCstrike15V2_ClientRequestNewMission) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{52} +} + +func (x *CMsgGCCstrike15V2_ClientRequestNewMission) GetMissionId() uint32 { + if x != nil && x.MissionId != nil { + return *x.MissionId + } + return 0 +} + +func (x *CMsgGCCstrike15V2_ClientRequestNewMission) GetCampaignId() uint32 { + if x != nil && x.CampaignId != nil { + return *x.CampaignId + } + return 0 +} + +type CMsgGCCstrike15V2_ClientRedeemMissionReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CampaignId *uint32 `protobuf:"varint,1,opt,name=campaign_id,json=campaignId" json:"campaign_id,omitempty"` + RedeemId *uint32 `protobuf:"varint,2,opt,name=redeem_id,json=redeemId" json:"redeem_id,omitempty"` + RedeemableBalance *uint32 `protobuf:"varint,3,opt,name=redeemable_balance,json=redeemableBalance" json:"redeemable_balance,omitempty"` + ExpectedCost *uint32 `protobuf:"varint,4,opt,name=expected_cost,json=expectedCost" json:"expected_cost,omitempty"` +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) Reset() { + *x = CMsgGCCstrike15V2_ClientRedeemMissionReward{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCstrike15V2_ClientRedeemMissionReward) ProtoMessage() {} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCstrike15V2_ClientRedeemMissionReward.ProtoReflect.Descriptor instead. +func (*CMsgGCCstrike15V2_ClientRedeemMissionReward) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{53} +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) GetCampaignId() uint32 { + if x != nil && x.CampaignId != nil { + return *x.CampaignId + } + return 0 +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) GetRedeemId() uint32 { + if x != nil && x.RedeemId != nil { + return *x.RedeemId + } + return 0 +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) GetRedeemableBalance() uint32 { + if x != nil && x.RedeemableBalance != nil { + return *x.RedeemableBalance + } + return 0 +} + +func (x *CMsgGCCstrike15V2_ClientRedeemMissionReward) GetExpectedCost() uint32 { + if x != nil && x.ExpectedCost != nil { + return *x.ExpectedCost + } + return 0 +} + +type CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + XpProgressData []*XpProgressData `protobuf:"bytes,1,rep,name=xp_progress_data,json=xpProgressData" json:"xp_progress_data,omitempty"` + AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + CurrentXp *uint32 `protobuf:"varint,3,opt,name=current_xp,json=currentXp" json:"current_xp,omitempty"` + CurrentLevel *uint32 `protobuf:"varint,4,opt,name=current_level,json=currentLevel" json:"current_level,omitempty"` + UpgradedDefidx *uint32 `protobuf:"varint,5,opt,name=upgraded_defidx,json=upgradedDefidx" json:"upgraded_defidx,omitempty"` + OperationPointsAwarded *uint32 `protobuf:"varint,6,opt,name=operation_points_awarded,json=operationPointsAwarded" json:"operation_points_awarded,omitempty"` +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) Reset() { + *x = CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) ProtoMessage() {} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded.ProtoReflect.Descriptor instead. +func (*CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{54} +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetXpProgressData() []*XpProgressData { + if x != nil { + return x.XpProgressData + } + return nil +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetCurrentXp() uint32 { + if x != nil && x.CurrentXp != nil { + return *x.CurrentXp + } + return 0 +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetCurrentLevel() uint32 { + if x != nil && x.CurrentLevel != nil { + return *x.CurrentLevel + } + return 0 +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetUpgradedDefidx() uint32 { + if x != nil && x.UpgradedDefidx != nil { + return *x.UpgradedDefidx + } + return 0 +} + +func (x *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded) GetOperationPointsAwarded() uint32 { + if x != nil && x.OperationPointsAwarded != nil { + return *x.OperationPointsAwarded + } + return 0 +} + +type CMsgGCCStrike15_ClientDeepStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Range *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange `protobuf:"bytes,2,opt,name=range" json:"range,omitempty"` + Matches []*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch `protobuf:"bytes,3,rep,name=matches" json:"matches,omitempty"` +} + +func (x *CMsgGCCStrike15_ClientDeepStats) Reset() { + *x = CMsgGCCStrike15_ClientDeepStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15_ClientDeepStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15_ClientDeepStats) ProtoMessage() {} + +func (x *CMsgGCCStrike15_ClientDeepStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15_ClientDeepStats.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15_ClientDeepStats) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{55} +} + +func (x *CMsgGCCStrike15_ClientDeepStats) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15_ClientDeepStats) GetRange() *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange { + if x != nil { + return x.Range + } + return nil +} + +func (x *CMsgGCCStrike15_ClientDeepStats) GetMatches() []*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch { + if x != nil { + return x.Matches + } + return nil +} + +type CMsgGCCStrike15V2_WatchInfoUsers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId *uint32 `protobuf:"varint,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + AccountIds []uint32 `protobuf:"varint,2,rep,name=account_ids,json=accountIds" json:"account_ids,omitempty"` + WatchableMatchInfos []*WatchableMatchInfo `protobuf:"bytes,3,rep,name=watchable_match_infos,json=watchableMatchInfos" json:"watchable_match_infos,omitempty"` + ExtendedTimeout *uint32 `protobuf:"varint,5,opt,name=extended_timeout,json=extendedTimeout" json:"extended_timeout,omitempty"` +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) Reset() { + *x = CMsgGCCStrike15V2_WatchInfoUsers{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_WatchInfoUsers) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_WatchInfoUsers.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_WatchInfoUsers) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{56} +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) GetRequestId() uint32 { + if x != nil && x.RequestId != nil { + return *x.RequestId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) GetAccountIds() []uint32 { + if x != nil { + return x.AccountIds + } + return nil +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) GetWatchableMatchInfos() []*WatchableMatchInfo { + if x != nil { + return x.WatchableMatchInfos + } + return nil +} + +func (x *CMsgGCCStrike15V2_WatchInfoUsers) GetExtendedTimeout() uint32 { + if x != nil && x.ExtendedTimeout != nil { + return *x.ExtendedTimeout + } + return 0 +} + +type CMsgGCCStrike15V2_ClientRequestPlayersProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId_Deprecated *uint32 `protobuf:"varint,1,opt,name=request_id__deprecated,json=requestIdDeprecated" json:"request_id__deprecated,omitempty"` + AccountIds_Deprecated []uint32 `protobuf:"varint,2,rep,name=account_ids__deprecated,json=accountIdsDeprecated" json:"account_ids__deprecated,omitempty"` + AccountId *uint32 `protobuf:"varint,3,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + RequestLevel *uint32 `protobuf:"varint,4,opt,name=request_level,json=requestLevel" json:"request_level,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestPlayersProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestPlayersProfile) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestPlayersProfile.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestPlayersProfile) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{57} +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) GetRequestId_Deprecated() uint32 { + if x != nil && x.RequestId_Deprecated != nil { + return *x.RequestId_Deprecated + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) GetAccountIds_Deprecated() []uint32 { + if x != nil { + return x.AccountIds_Deprecated + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestPlayersProfile) GetRequestLevel() uint32 { + if x != nil && x.RequestLevel != nil { + return *x.RequestLevel + } + return 0 +} + +type CMsgGCCStrike15V2_PlayersProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId *uint32 `protobuf:"varint,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + AccountProfiles []*CMsgGCCStrike15V2_MatchmakingGC2ClientHello `protobuf:"bytes,2,rep,name=account_profiles,json=accountProfiles" json:"account_profiles,omitempty"` +} + +func (x *CMsgGCCStrike15V2_PlayersProfile) Reset() { + *x = CMsgGCCStrike15V2_PlayersProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_PlayersProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_PlayersProfile) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_PlayersProfile) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_PlayersProfile.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_PlayersProfile) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{58} +} + +func (x *CMsgGCCStrike15V2_PlayersProfile) GetRequestId() uint32 { + if x != nil && x.RequestId != nil { + return *x.RequestId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayersProfile) GetAccountProfiles() []*CMsgGCCStrike15V2_MatchmakingGC2ClientHello { + if x != nil { + return x.AccountProfiles + } + return nil +} + +type CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Caseid *uint64 `protobuf:"varint,1,opt,name=caseid" json:"caseid,omitempty"` + Suspectid *uint32 `protobuf:"varint,3,opt,name=suspectid" json:"suspectid,omitempty"` + Fractionid *uint32 `protobuf:"varint,4,opt,name=fractionid" json:"fractionid,omitempty"` + RptAimbot *uint32 `protobuf:"varint,5,opt,name=rpt_aimbot,json=rptAimbot" json:"rpt_aimbot,omitempty"` + RptWallhack *uint32 `protobuf:"varint,6,opt,name=rpt_wallhack,json=rptWallhack" json:"rpt_wallhack,omitempty"` + RptSpeedhack *uint32 `protobuf:"varint,7,opt,name=rpt_speedhack,json=rptSpeedhack" json:"rpt_speedhack,omitempty"` + RptTeamharm *uint32 `protobuf:"varint,8,opt,name=rpt_teamharm,json=rptTeamharm" json:"rpt_teamharm,omitempty"` + Reason *uint32 `protobuf:"varint,9,opt,name=reason" json:"reason,omitempty"` +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) Reset() { + *x = CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{59} +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetCaseid() uint64 { + if x != nil && x.Caseid != nil { + return *x.Caseid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetSuspectid() uint32 { + if x != nil && x.Suspectid != nil { + return *x.Suspectid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetFractionid() uint32 { + if x != nil && x.Fractionid != nil { + return *x.Fractionid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetRptAimbot() uint32 { + if x != nil && x.RptAimbot != nil { + return *x.RptAimbot + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetRptWallhack() uint32 { + if x != nil && x.RptWallhack != nil { + return *x.RptWallhack + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetRptSpeedhack() uint32 { + if x != nil && x.RptSpeedhack != nil { + return *x.RptSpeedhack + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetRptTeamharm() uint32 { + if x != nil && x.RptTeamharm != nil { + return *x.RptTeamharm + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate) GetReason() uint32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +type CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Caseid *uint64 `protobuf:"varint,1,opt,name=caseid" json:"caseid,omitempty"` + Caseurl *string `protobuf:"bytes,2,opt,name=caseurl" json:"caseurl,omitempty"` + Verdict *uint32 `protobuf:"varint,3,opt,name=verdict" json:"verdict,omitempty"` + Timestamp *uint32 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` + Throttleseconds *uint32 `protobuf:"varint,5,opt,name=throttleseconds" json:"throttleseconds,omitempty"` + Suspectid *uint32 `protobuf:"varint,6,opt,name=suspectid" json:"suspectid,omitempty"` + Fractionid *uint32 `protobuf:"varint,7,opt,name=fractionid" json:"fractionid,omitempty"` + Numrounds *uint32 `protobuf:"varint,8,opt,name=numrounds" json:"numrounds,omitempty"` + Fractionrounds *uint32 `protobuf:"varint,9,opt,name=fractionrounds" json:"fractionrounds,omitempty"` + Streakconvictions *int32 `protobuf:"varint,10,opt,name=streakconvictions" json:"streakconvictions,omitempty"` + Reason *uint32 `protobuf:"varint,11,opt,name=reason" json:"reason,omitempty"` +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) Reset() { + *x = CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{60} +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetCaseid() uint64 { + if x != nil && x.Caseid != nil { + return *x.Caseid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetCaseurl() string { + if x != nil && x.Caseurl != nil { + return *x.Caseurl + } + return "" +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetVerdict() uint32 { + if x != nil && x.Verdict != nil { + return *x.Verdict + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetTimestamp() uint32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetThrottleseconds() uint32 { + if x != nil && x.Throttleseconds != nil { + return *x.Throttleseconds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetSuspectid() uint32 { + if x != nil && x.Suspectid != nil { + return *x.Suspectid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetFractionid() uint32 { + if x != nil && x.Fractionid != nil { + return *x.Fractionid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetNumrounds() uint32 { + if x != nil && x.Numrounds != nil { + return *x.Numrounds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetFractionrounds() uint32 { + if x != nil && x.Fractionrounds != nil { + return *x.Fractionrounds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetStreakconvictions() int32 { + if x != nil && x.Streakconvictions != nil { + return *x.Streakconvictions + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment) GetReason() uint32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +type CMsgGCCStrike15V2_PlayerOverwatchCaseStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Caseid *uint64 `protobuf:"varint,1,opt,name=caseid" json:"caseid,omitempty"` + Statusid *uint32 `protobuf:"varint,2,opt,name=statusid" json:"statusid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) Reset() { + *x = CMsgGCCStrike15V2_PlayerOverwatchCaseStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_PlayerOverwatchCaseStatus.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{61} +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) GetCaseid() uint64 { + if x != nil && x.Caseid != nil { + return *x.Caseid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_PlayerOverwatchCaseStatus) GetStatusid() uint32 { + if x != nil && x.Statusid != nil { + return *x.Statusid + } + return 0 +} + +type CClientHeaderOverwatchEvidence struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Caseid *uint64 `protobuf:"varint,2,opt,name=caseid" json:"caseid,omitempty"` +} + +func (x *CClientHeaderOverwatchEvidence) Reset() { + *x = CClientHeaderOverwatchEvidence{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CClientHeaderOverwatchEvidence) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CClientHeaderOverwatchEvidence) ProtoMessage() {} + +func (x *CClientHeaderOverwatchEvidence) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CClientHeaderOverwatchEvidence.ProtoReflect.Descriptor instead. +func (*CClientHeaderOverwatchEvidence) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{62} +} + +func (x *CClientHeaderOverwatchEvidence) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CClientHeaderOverwatchEvidence) GetCaseid() uint64 { + if x != nil && x.Caseid != nil { + return *x.Caseid + } + return 0 +} + +type CMsgGCCStrike15V2_GC2ClientTextMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Type *uint32 `protobuf:"varint,2,opt,name=type" json:"type,omitempty"` + Payload []byte `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientTextMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientTextMsg) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientTextMsg.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientTextMsg) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{63} +} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientTextMsg) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +type CMsgGCCStrike15V2_Client2GCTextMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Args [][]byte `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Client2GCTextMsg) Reset() { + *x = CMsgGCCStrike15V2_Client2GCTextMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Client2GCTextMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Client2GCTextMsg) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Client2GCTextMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Client2GCTextMsg.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Client2GCTextMsg) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{64} +} + +func (x *CMsgGCCStrike15V2_Client2GCTextMsg) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCTextMsg) GetArgs() [][]byte { + if x != nil { + return x.Args + } + return nil +} + +type CMsgGCCStrike15V2_MatchEndRunRewardDrops struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Serverinfo *CMsgGCCStrike15V2_MatchmakingServerReservationResponse `protobuf:"bytes,3,opt,name=serverinfo" json:"serverinfo,omitempty"` + MatchEndQuestData *CMsgGC_ServerQuestUpdateData `protobuf:"bytes,4,opt,name=match_end_quest_data,json=matchEndQuestData" json:"match_end_quest_data,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchEndRunRewardDrops) Reset() { + *x = CMsgGCCStrike15V2_MatchEndRunRewardDrops{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchEndRunRewardDrops) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchEndRunRewardDrops) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchEndRunRewardDrops) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchEndRunRewardDrops.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchEndRunRewardDrops) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{65} +} + +func (x *CMsgGCCStrike15V2_MatchEndRunRewardDrops) GetServerinfo() *CMsgGCCStrike15V2_MatchmakingServerReservationResponse { + if x != nil { + return x.Serverinfo + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchEndRunRewardDrops) GetMatchEndQuestData() *CMsgGC_ServerQuestUpdateData { + if x != nil { + return x.MatchEndQuestData + } + return nil +} + +type CEconItemPreviewDataBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Itemid *uint64 `protobuf:"varint,2,opt,name=itemid" json:"itemid,omitempty"` + Defindex *uint32 `protobuf:"varint,3,opt,name=defindex" json:"defindex,omitempty"` + Paintindex *uint32 `protobuf:"varint,4,opt,name=paintindex" json:"paintindex,omitempty"` + Rarity *uint32 `protobuf:"varint,5,opt,name=rarity" json:"rarity,omitempty"` + Quality *uint32 `protobuf:"varint,6,opt,name=quality" json:"quality,omitempty"` + Paintwear *uint32 `protobuf:"varint,7,opt,name=paintwear" json:"paintwear,omitempty"` + Paintseed *uint32 `protobuf:"varint,8,opt,name=paintseed" json:"paintseed,omitempty"` + Killeaterscoretype *uint32 `protobuf:"varint,9,opt,name=killeaterscoretype" json:"killeaterscoretype,omitempty"` + Killeatervalue *uint32 `protobuf:"varint,10,opt,name=killeatervalue" json:"killeatervalue,omitempty"` + Customname *string `protobuf:"bytes,11,opt,name=customname" json:"customname,omitempty"` + Stickers []*CEconItemPreviewDataBlock_Sticker `protobuf:"bytes,12,rep,name=stickers" json:"stickers,omitempty"` + Inventory *uint32 `protobuf:"varint,13,opt,name=inventory" json:"inventory,omitempty"` + Origin *uint32 `protobuf:"varint,14,opt,name=origin" json:"origin,omitempty"` + Questid *uint32 `protobuf:"varint,15,opt,name=questid" json:"questid,omitempty"` + Dropreason *uint32 `protobuf:"varint,16,opt,name=dropreason" json:"dropreason,omitempty"` + Musicindex *uint32 `protobuf:"varint,17,opt,name=musicindex" json:"musicindex,omitempty"` + Entindex *int32 `protobuf:"varint,18,opt,name=entindex" json:"entindex,omitempty"` +} + +func (x *CEconItemPreviewDataBlock) Reset() { + *x = CEconItemPreviewDataBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEconItemPreviewDataBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEconItemPreviewDataBlock) ProtoMessage() {} + +func (x *CEconItemPreviewDataBlock) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEconItemPreviewDataBlock.ProtoReflect.Descriptor instead. +func (*CEconItemPreviewDataBlock) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{66} +} + +func (x *CEconItemPreviewDataBlock) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetItemid() uint64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetDefindex() uint32 { + if x != nil && x.Defindex != nil { + return *x.Defindex + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetPaintindex() uint32 { + if x != nil && x.Paintindex != nil { + return *x.Paintindex + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetRarity() uint32 { + if x != nil && x.Rarity != nil { + return *x.Rarity + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetQuality() uint32 { + if x != nil && x.Quality != nil { + return *x.Quality + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetPaintwear() uint32 { + if x != nil && x.Paintwear != nil { + return *x.Paintwear + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetPaintseed() uint32 { + if x != nil && x.Paintseed != nil { + return *x.Paintseed + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetKilleaterscoretype() uint32 { + if x != nil && x.Killeaterscoretype != nil { + return *x.Killeaterscoretype + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetKilleatervalue() uint32 { + if x != nil && x.Killeatervalue != nil { + return *x.Killeatervalue + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetCustomname() string { + if x != nil && x.Customname != nil { + return *x.Customname + } + return "" +} + +func (x *CEconItemPreviewDataBlock) GetStickers() []*CEconItemPreviewDataBlock_Sticker { + if x != nil { + return x.Stickers + } + return nil +} + +func (x *CEconItemPreviewDataBlock) GetInventory() uint32 { + if x != nil && x.Inventory != nil { + return *x.Inventory + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetOrigin() uint32 { + if x != nil && x.Origin != nil { + return *x.Origin + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetQuestid() uint32 { + if x != nil && x.Questid != nil { + return *x.Questid + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetDropreason() uint32 { + if x != nil && x.Dropreason != nil { + return *x.Dropreason + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetMusicindex() uint32 { + if x != nil && x.Musicindex != nil { + return *x.Musicindex + } + return 0 +} + +func (x *CEconItemPreviewDataBlock) GetEntindex() int32 { + if x != nil && x.Entindex != nil { + return *x.Entindex + } + return 0 +} + +type CMsgGCCStrike15V2_MatchEndRewardDropsNotification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Iteminfo *CEconItemPreviewDataBlock `protobuf:"bytes,6,opt,name=iteminfo" json:"iteminfo,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchEndRewardDropsNotification) Reset() { + *x = CMsgGCCStrike15V2_MatchEndRewardDropsNotification{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchEndRewardDropsNotification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchEndRewardDropsNotification) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchEndRewardDropsNotification) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchEndRewardDropsNotification.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchEndRewardDropsNotification) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{67} +} + +func (x *CMsgGCCStrike15V2_MatchEndRewardDropsNotification) GetIteminfo() *CEconItemPreviewDataBlock { + if x != nil { + return x.Iteminfo + } + return nil +} + +type CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParamS *uint64 `protobuf:"varint,1,opt,name=param_s,json=paramS" json:"param_s,omitempty"` + ParamA *uint64 `protobuf:"varint,2,opt,name=param_a,json=paramA" json:"param_a,omitempty"` + ParamD *uint64 `protobuf:"varint,3,opt,name=param_d,json=paramD" json:"param_d,omitempty"` + ParamM *uint64 `protobuf:"varint,4,opt,name=param_m,json=paramM" json:"param_m,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) Reset() { + *x = CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{68} +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) GetParamS() uint64 { + if x != nil && x.ParamS != nil { + return *x.ParamS + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) GetParamA() uint64 { + if x != nil && x.ParamA != nil { + return *x.ParamA + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) GetParamD() uint64 { + if x != nil && x.ParamD != nil { + return *x.ParamD + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest) GetParamM() uint64 { + if x != nil && x.ParamM != nil { + return *x.ParamM + } + return 0 +} + +type CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Iteminfo *CEconItemPreviewDataBlock `protobuf:"bytes,1,opt,name=iteminfo" json:"iteminfo,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) Reset() { + *x = CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{69} +} + +func (x *CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse) GetIteminfo() *CEconItemPreviewDataBlock { + if x != nil { + return x.Iteminfo + } + return nil +} + +type CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames) Reset() { + *x = CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{70} +} + +type CMsgGCCStrike15V2_MatchListRequestLiveGameForUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) Reset() { + *x = CMsgGCCStrike15V2_MatchListRequestLiveGameForUser{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListRequestLiveGameForUser.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{71} +} + +func (x *CMsgGCCStrike15V2_MatchListRequestLiveGameForUser) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +type CMsgGCCStrike15V2_MatchListRequestRecentUserGames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchListRequestRecentUserGames) Reset() { + *x = CMsgGCCStrike15V2_MatchListRequestRecentUserGames{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListRequestRecentUserGames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListRequestRecentUserGames) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListRequestRecentUserGames) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListRequestRecentUserGames.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListRequestRecentUserGames) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{72} +} + +func (x *CMsgGCCStrike15V2_MatchListRequestRecentUserGames) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +type CMsgGCCStrike15V2_MatchListRequestTournamentGames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *int32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchListRequestTournamentGames) Reset() { + *x = CMsgGCCStrike15V2_MatchListRequestTournamentGames{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListRequestTournamentGames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListRequestTournamentGames) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListRequestTournamentGames) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListRequestTournamentGames.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListRequestTournamentGames) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{73} +} + +func (x *CMsgGCCStrike15V2_MatchListRequestTournamentGames) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +type CMsgGCCStrike15V2_MatchListRequestFullGameInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Matchid *uint64 `protobuf:"varint,1,opt,name=matchid" json:"matchid,omitempty"` + Outcomeid *uint64 `protobuf:"varint,2,opt,name=outcomeid" json:"outcomeid,omitempty"` + Token *uint32 `protobuf:"varint,3,opt,name=token" json:"token,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) Reset() { + *x = CMsgGCCStrike15V2_MatchListRequestFullGameInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListRequestFullGameInfo) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListRequestFullGameInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListRequestFullGameInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{74} +} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) GetMatchid() uint64 { + if x != nil && x.Matchid != nil { + return *x.Matchid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) GetOutcomeid() uint64 { + if x != nil && x.Outcomeid != nil { + return *x.Outcomeid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchListRequestFullGameInfo) GetToken() uint32 { + if x != nil && x.Token != nil { + return *x.Token + } + return 0 +} + +type CDataGCCStrike15V2_MatchInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Matchid *uint64 `protobuf:"varint,1,opt,name=matchid" json:"matchid,omitempty"` + Matchtime *uint32 `protobuf:"varint,2,opt,name=matchtime" json:"matchtime,omitempty"` + Watchablematchinfo *WatchableMatchInfo `protobuf:"bytes,3,opt,name=watchablematchinfo" json:"watchablematchinfo,omitempty"` + RoundstatsLegacy *CMsgGCCStrike15V2_MatchmakingServerRoundStats `protobuf:"bytes,4,opt,name=roundstats_legacy,json=roundstatsLegacy" json:"roundstats_legacy,omitempty"` + Roundstatsall []*CMsgGCCStrike15V2_MatchmakingServerRoundStats `protobuf:"bytes,5,rep,name=roundstatsall" json:"roundstatsall,omitempty"` +} + +func (x *CDataGCCStrike15V2_MatchInfo) Reset() { + *x = CDataGCCStrike15V2_MatchInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_MatchInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_MatchInfo) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_MatchInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_MatchInfo.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_MatchInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{75} +} + +func (x *CDataGCCStrike15V2_MatchInfo) GetMatchid() uint64 { + if x != nil && x.Matchid != nil { + return *x.Matchid + } + return 0 +} + +func (x *CDataGCCStrike15V2_MatchInfo) GetMatchtime() uint32 { + if x != nil && x.Matchtime != nil { + return *x.Matchtime + } + return 0 +} + +func (x *CDataGCCStrike15V2_MatchInfo) GetWatchablematchinfo() *WatchableMatchInfo { + if x != nil { + return x.Watchablematchinfo + } + return nil +} + +func (x *CDataGCCStrike15V2_MatchInfo) GetRoundstatsLegacy() *CMsgGCCStrike15V2_MatchmakingServerRoundStats { + if x != nil { + return x.RoundstatsLegacy + } + return nil +} + +func (x *CDataGCCStrike15V2_MatchInfo) GetRoundstatsall() []*CMsgGCCStrike15V2_MatchmakingServerRoundStats { + if x != nil { + return x.Roundstatsall + } + return nil +} + +type CDataGCCStrike15V2_TournamentGroupTeam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TeamId *int32 `protobuf:"varint,1,opt,name=team_id,json=teamId" json:"team_id,omitempty"` + Score *int32 `protobuf:"varint,2,opt,name=score" json:"score,omitempty"` + Correctpick *bool `protobuf:"varint,3,opt,name=correctpick" json:"correctpick,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) Reset() { + *x = CDataGCCStrike15V2_TournamentGroupTeam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentGroupTeam) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentGroupTeam.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentGroupTeam) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{76} +} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) GetTeamId() int32 { + if x != nil && x.TeamId != nil { + return *x.TeamId + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) GetScore() int32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroupTeam) GetCorrectpick() bool { + if x != nil && x.Correctpick != nil { + return *x.Correctpick + } + return false +} + +type CDataGCCStrike15V2_TournamentGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupid *uint32 `protobuf:"varint,1,opt,name=groupid" json:"groupid,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Desc *string `protobuf:"bytes,3,opt,name=desc" json:"desc,omitempty"` + Picks_Deprecated *uint32 `protobuf:"varint,4,opt,name=picks__deprecated,json=picksDeprecated" json:"picks__deprecated,omitempty"` + Teams []*CDataGCCStrike15V2_TournamentGroupTeam `protobuf:"bytes,5,rep,name=teams" json:"teams,omitempty"` + StageIds []int32 `protobuf:"varint,6,rep,name=stage_ids,json=stageIds" json:"stage_ids,omitempty"` + Picklockuntiltime *uint32 `protobuf:"varint,7,opt,name=picklockuntiltime" json:"picklockuntiltime,omitempty"` + Pickableteams *uint32 `protobuf:"varint,8,opt,name=pickableteams" json:"pickableteams,omitempty"` + PointsPerPick *uint32 `protobuf:"varint,9,opt,name=points_per_pick,json=pointsPerPick" json:"points_per_pick,omitempty"` + Picks []*CDataGCCStrike15V2_TournamentGroup_Picks `protobuf:"bytes,10,rep,name=picks" json:"picks,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentGroup) Reset() { + *x = CDataGCCStrike15V2_TournamentGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentGroup) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentGroup) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentGroup.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentGroup) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{77} +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetDesc() string { + if x != nil && x.Desc != nil { + return *x.Desc + } + return "" +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetPicks_Deprecated() uint32 { + if x != nil && x.Picks_Deprecated != nil { + return *x.Picks_Deprecated + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetTeams() []*CDataGCCStrike15V2_TournamentGroupTeam { + if x != nil { + return x.Teams + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetStageIds() []int32 { + if x != nil { + return x.StageIds + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetPicklockuntiltime() uint32 { + if x != nil && x.Picklockuntiltime != nil { + return *x.Picklockuntiltime + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetPickableteams() uint32 { + if x != nil && x.Pickableteams != nil { + return *x.Pickableteams + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetPointsPerPick() uint32 { + if x != nil && x.PointsPerPick != nil { + return *x.PointsPerPick + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentGroup) GetPicks() []*CDataGCCStrike15V2_TournamentGroup_Picks { + if x != nil { + return x.Picks + } + return nil +} + +type CDataGCCStrike15V2_TournamentSection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sectionid *uint32 `protobuf:"varint,1,opt,name=sectionid" json:"sectionid,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Desc *string `protobuf:"bytes,3,opt,name=desc" json:"desc,omitempty"` + Groups []*CDataGCCStrike15V2_TournamentGroup `protobuf:"bytes,4,rep,name=groups" json:"groups,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentSection) Reset() { + *x = CDataGCCStrike15V2_TournamentSection{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentSection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentSection) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentSection) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentSection.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentSection) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{78} +} + +func (x *CDataGCCStrike15V2_TournamentSection) GetSectionid() uint32 { + if x != nil && x.Sectionid != nil { + return *x.Sectionid + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentSection) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CDataGCCStrike15V2_TournamentSection) GetDesc() string { + if x != nil && x.Desc != nil { + return *x.Desc + } + return "" +} + +func (x *CDataGCCStrike15V2_TournamentSection) GetGroups() []*CDataGCCStrike15V2_TournamentGroup { + if x != nil { + return x.Groups + } + return nil +} + +type CDataGCCStrike15V2_TournamentInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sections []*CDataGCCStrike15V2_TournamentSection `protobuf:"bytes,1,rep,name=sections" json:"sections,omitempty"` + TournamentEvent *TournamentEvent `protobuf:"bytes,2,opt,name=tournament_event,json=tournamentEvent" json:"tournament_event,omitempty"` + TournamentTeams []*TournamentTeam `protobuf:"bytes,3,rep,name=tournament_teams,json=tournamentTeams" json:"tournament_teams,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentInfo) Reset() { + *x = CDataGCCStrike15V2_TournamentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentInfo) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentInfo.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{79} +} + +func (x *CDataGCCStrike15V2_TournamentInfo) GetSections() []*CDataGCCStrike15V2_TournamentSection { + if x != nil { + return x.Sections + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentInfo) GetTournamentEvent() *TournamentEvent { + if x != nil { + return x.TournamentEvent + } + return nil +} + +func (x *CDataGCCStrike15V2_TournamentInfo) GetTournamentTeams() []*TournamentTeam { + if x != nil { + return x.TournamentTeams + } + return nil +} + +type CMsgGCCStrike15V2_MatchList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgrequestid *uint32 `protobuf:"varint,1,opt,name=msgrequestid" json:"msgrequestid,omitempty"` + Accountid *uint32 `protobuf:"varint,2,opt,name=accountid" json:"accountid,omitempty"` + Servertime *uint32 `protobuf:"varint,3,opt,name=servertime" json:"servertime,omitempty"` + Matches []*CDataGCCStrike15V2_MatchInfo `protobuf:"bytes,4,rep,name=matches" json:"matches,omitempty"` + Streams []*TournamentTeam `protobuf:"bytes,5,rep,name=streams" json:"streams,omitempty"` + Tournamentinfo *CDataGCCStrike15V2_TournamentInfo `protobuf:"bytes,6,opt,name=tournamentinfo" json:"tournamentinfo,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchList) Reset() { + *x = CMsgGCCStrike15V2_MatchList{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchList) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchList) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchList.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchList) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{80} +} + +func (x *CMsgGCCStrike15V2_MatchList) GetMsgrequestid() uint32 { + if x != nil && x.Msgrequestid != nil { + return *x.Msgrequestid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchList) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchList) GetServertime() uint32 { + if x != nil && x.Servertime != nil { + return *x.Servertime + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchList) GetMatches() []*CDataGCCStrike15V2_MatchInfo { + if x != nil { + return x.Matches + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchList) GetStreams() []*TournamentTeam { + if x != nil { + return x.Streams + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchList) GetTournamentinfo() *CDataGCCStrike15V2_TournamentInfo { + if x != nil { + return x.Tournamentinfo + } + return nil +} + +type CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *int32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + Matches []*CDataGCCStrike15V2_MatchInfo `protobuf:"bytes,2,rep,name=matches" json:"matches,omitempty"` + Accountid *uint32 `protobuf:"varint,3,opt,name=accountid" json:"accountid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) Reset() { + *x = CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{81} +} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) GetMatches() []*CDataGCCStrike15V2_MatchInfo { + if x != nil { + return x.Matches + } + return nil +} + +func (x *CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +type CMsgGCCStrike15V2_Predictions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *uint32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + GroupMatchTeamPicks []*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick `protobuf:"bytes,2,rep,name=group_match_team_picks,json=groupMatchTeamPicks" json:"group_match_team_picks,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Predictions) Reset() { + *x = CMsgGCCStrike15V2_Predictions{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Predictions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Predictions) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Predictions) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Predictions.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Predictions) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{82} +} + +func (x *CMsgGCCStrike15V2_Predictions) GetEventId() uint32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Predictions) GetGroupMatchTeamPicks() []*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick { + if x != nil { + return x.GroupMatchTeamPicks + } + return nil +} + +type CMsgGCCStrike15V2_Fantasy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventId *uint32 `protobuf:"varint,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"` + Teams []*CMsgGCCStrike15V2_Fantasy_FantasyTeam `protobuf:"bytes,2,rep,name=teams" json:"teams,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Fantasy) Reset() { + *x = CMsgGCCStrike15V2_Fantasy{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Fantasy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Fantasy) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Fantasy) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Fantasy.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Fantasy) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{83} +} + +func (x *CMsgGCCStrike15V2_Fantasy) GetEventId() uint32 { + if x != nil && x.EventId != nil { + return *x.EventId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Fantasy) GetTeams() []*CMsgGCCStrike15V2_Fantasy_FantasyTeam { + if x != nil { + return x.Teams + } + return nil +} + +type CMsgLegacySource1ClientWelcome struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + GameData []byte `protobuf:"bytes,2,opt,name=game_data,json=gameData" json:"game_data,omitempty"` + OutofdateSubscribedCaches []*CMsgSOCacheSubscribed `protobuf:"bytes,3,rep,name=outofdate_subscribed_caches,json=outofdateSubscribedCaches" json:"outofdate_subscribed_caches,omitempty"` + UptodateSubscribedCaches []*CMsgSOCacheSubscriptionCheck `protobuf:"bytes,4,rep,name=uptodate_subscribed_caches,json=uptodateSubscribedCaches" json:"uptodate_subscribed_caches,omitempty"` + Location *CMsgLegacySource1ClientWelcome_Location `protobuf:"bytes,5,opt,name=location" json:"location,omitempty"` + GameData2 []byte `protobuf:"bytes,6,opt,name=game_data2,json=gameData2" json:"game_data2,omitempty"` + Rtime32GcWelcomeTimestamp *uint32 `protobuf:"varint,7,opt,name=rtime32_gc_welcome_timestamp,json=rtime32GcWelcomeTimestamp" json:"rtime32_gc_welcome_timestamp,omitempty"` + Currency *uint32 `protobuf:"varint,8,opt,name=currency" json:"currency,omitempty"` + Balance *uint32 `protobuf:"varint,9,opt,name=balance" json:"balance,omitempty"` + BalanceUrl *string `protobuf:"bytes,10,opt,name=balance_url,json=balanceUrl" json:"balance_url,omitempty"` + TxnCountryCode *string `protobuf:"bytes,11,opt,name=txn_country_code,json=txnCountryCode" json:"txn_country_code,omitempty"` +} + +func (x *CMsgLegacySource1ClientWelcome) Reset() { + *x = CMsgLegacySource1ClientWelcome{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgLegacySource1ClientWelcome) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgLegacySource1ClientWelcome) ProtoMessage() {} + +func (x *CMsgLegacySource1ClientWelcome) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgLegacySource1ClientWelcome.ProtoReflect.Descriptor instead. +func (*CMsgLegacySource1ClientWelcome) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{84} +} + +func (x *CMsgLegacySource1ClientWelcome) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome) GetGameData() []byte { + if x != nil { + return x.GameData + } + return nil +} + +func (x *CMsgLegacySource1ClientWelcome) GetOutofdateSubscribedCaches() []*CMsgSOCacheSubscribed { + if x != nil { + return x.OutofdateSubscribedCaches + } + return nil +} + +func (x *CMsgLegacySource1ClientWelcome) GetUptodateSubscribedCaches() []*CMsgSOCacheSubscriptionCheck { + if x != nil { + return x.UptodateSubscribedCaches + } + return nil +} + +func (x *CMsgLegacySource1ClientWelcome) GetLocation() *CMsgLegacySource1ClientWelcome_Location { + if x != nil { + return x.Location + } + return nil +} + +func (x *CMsgLegacySource1ClientWelcome) GetGameData2() []byte { + if x != nil { + return x.GameData2 + } + return nil +} + +func (x *CMsgLegacySource1ClientWelcome) GetRtime32GcWelcomeTimestamp() uint32 { + if x != nil && x.Rtime32GcWelcomeTimestamp != nil { + return *x.Rtime32GcWelcomeTimestamp + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome) GetCurrency() uint32 { + if x != nil && x.Currency != nil { + return *x.Currency + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome) GetBalance() uint32 { + if x != nil && x.Balance != nil { + return *x.Balance + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome) GetBalanceUrl() string { + if x != nil && x.BalanceUrl != nil { + return *x.BalanceUrl + } + return "" +} + +func (x *CMsgLegacySource1ClientWelcome) GetTxnCountryCode() string { + if x != nil && x.TxnCountryCode != nil { + return *x.TxnCountryCode + } + return "" +} + +type CMsgCStrike15Welcome struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StoreItemHash *uint32 `protobuf:"varint,5,opt,name=store_item_hash,json=storeItemHash" json:"store_item_hash,omitempty"` + Timeplayedconsecutively *uint32 `protobuf:"varint,6,opt,name=timeplayedconsecutively" json:"timeplayedconsecutively,omitempty"` + TimeFirstPlayed *uint32 `protobuf:"varint,10,opt,name=time_first_played,json=timeFirstPlayed" json:"time_first_played,omitempty"` + LastTimePlayed *uint32 `protobuf:"varint,12,opt,name=last_time_played,json=lastTimePlayed" json:"last_time_played,omitempty"` + LastIpAddress *uint32 `protobuf:"varint,13,opt,name=last_ip_address,json=lastIpAddress" json:"last_ip_address,omitempty"` + Gscookieid *uint64 `protobuf:"varint,18,opt,name=gscookieid" json:"gscookieid,omitempty"` + Uniqueid *uint64 `protobuf:"varint,19,opt,name=uniqueid" json:"uniqueid,omitempty"` +} + +func (x *CMsgCStrike15Welcome) Reset() { + *x = CMsgCStrike15Welcome{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgCStrike15Welcome) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgCStrike15Welcome) ProtoMessage() {} + +func (x *CMsgCStrike15Welcome) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgCStrike15Welcome.ProtoReflect.Descriptor instead. +func (*CMsgCStrike15Welcome) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{85} +} + +func (x *CMsgCStrike15Welcome) GetStoreItemHash() uint32 { + if x != nil && x.StoreItemHash != nil { + return *x.StoreItemHash + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetTimeplayedconsecutively() uint32 { + if x != nil && x.Timeplayedconsecutively != nil { + return *x.Timeplayedconsecutively + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetTimeFirstPlayed() uint32 { + if x != nil && x.TimeFirstPlayed != nil { + return *x.TimeFirstPlayed + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetLastTimePlayed() uint32 { + if x != nil && x.LastTimePlayed != nil { + return *x.LastTimePlayed + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetLastIpAddress() uint32 { + if x != nil && x.LastIpAddress != nil { + return *x.LastIpAddress + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetGscookieid() uint64 { + if x != nil && x.Gscookieid != nil { + return *x.Gscookieid + } + return 0 +} + +func (x *CMsgCStrike15Welcome) GetUniqueid() uint64 { + if x != nil && x.Uniqueid != nil { + return *x.Uniqueid + } + return 0 +} + +type CMsgGCCStrike15V2_ClientVarValueNotificationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueName *string `protobuf:"bytes,1,opt,name=value_name,json=valueName" json:"value_name,omitempty"` + ValueInt *int32 `protobuf:"varint,2,opt,name=value_int,json=valueInt" json:"value_int,omitempty"` + ServerAddr *uint32 `protobuf:"varint,3,opt,name=server_addr,json=serverAddr" json:"server_addr,omitempty"` + ServerPort *uint32 `protobuf:"varint,4,opt,name=server_port,json=serverPort" json:"server_port,omitempty"` + ChokedBlocks []string `protobuf:"bytes,5,rep,name=choked_blocks,json=chokedBlocks" json:"choked_blocks,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) Reset() { + *x = CMsgGCCStrike15V2_ClientVarValueNotificationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientVarValueNotificationInfo) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientVarValueNotificationInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientVarValueNotificationInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{86} +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) GetValueName() string { + if x != nil && x.ValueName != nil { + return *x.ValueName + } + return "" +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) GetValueInt() int32 { + if x != nil && x.ValueInt != nil { + return *x.ValueInt + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) GetServerAddr() uint32 { + if x != nil && x.ServerAddr != nil { + return *x.ServerAddr + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) GetServerPort() uint32 { + if x != nil && x.ServerPort != nil { + return *x.ServerPort + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientVarValueNotificationInfo) GetChokedBlocks() []string { + if x != nil { + return x.ChokedBlocks + } + return nil +} + +type CMsgGCCStrike15V2_ServerVarValueNotificationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Viewangles []uint32 `protobuf:"varint,2,rep,name=viewangles" json:"viewangles,omitempty"` + Type *uint32 `protobuf:"varint,3,opt,name=type" json:"type,omitempty"` + Userdata []uint32 `protobuf:"varint,4,rep,name=userdata" json:"userdata,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) Reset() { + *x = CMsgGCCStrike15V2_ServerVarValueNotificationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ServerVarValueNotificationInfo) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ServerVarValueNotificationInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ServerVarValueNotificationInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{87} +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) GetViewangles() []uint32 { + if x != nil { + return x.Viewangles + } + return nil +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ServerVarValueNotificationInfo) GetUserdata() []uint32 { + if x != nil { + return x.Userdata + } + return nil +} + +type CMsgGCCStrike15V2_GiftsLeaderboardRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardRequest) Reset() { + *x = CMsgGCCStrike15V2_GiftsLeaderboardRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GiftsLeaderboardRequest) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardRequest) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GiftsLeaderboardRequest.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GiftsLeaderboardRequest) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{88} +} + +type CMsgGCCStrike15V2_GiftsLeaderboardResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Servertime *uint32 `protobuf:"varint,1,opt,name=servertime" json:"servertime,omitempty"` + TimePeriodSeconds *uint32 `protobuf:"varint,2,opt,name=time_period_seconds,json=timePeriodSeconds" json:"time_period_seconds,omitempty"` + TotalGiftsGiven *uint32 `protobuf:"varint,3,opt,name=total_gifts_given,json=totalGiftsGiven" json:"total_gifts_given,omitempty"` + TotalGivers *uint32 `protobuf:"varint,4,opt,name=total_givers,json=totalGivers" json:"total_givers,omitempty"` + Entries []*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry `protobuf:"bytes,5,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) Reset() { + *x = CMsgGCCStrike15V2_GiftsLeaderboardResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GiftsLeaderboardResponse) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GiftsLeaderboardResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GiftsLeaderboardResponse) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{89} +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) GetServertime() uint32 { + if x != nil && x.Servertime != nil { + return *x.Servertime + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) GetTimePeriodSeconds() uint32 { + if x != nil && x.TimePeriodSeconds != nil { + return *x.TimePeriodSeconds + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) GetTotalGiftsGiven() uint32 { + if x != nil && x.TotalGiftsGiven != nil { + return *x.TotalGiftsGiven + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) GetTotalGivers() uint32 { + if x != nil && x.TotalGivers != nil { + return *x.TotalGivers + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse) GetEntries() []*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry { + if x != nil { + return x.Entries + } + return nil +} + +type CMsgGCCStrike15V2_ClientSubmitSurveyVote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SurveyId *uint32 `protobuf:"varint,1,opt,name=survey_id,json=surveyId" json:"survey_id,omitempty"` + Vote *uint32 `protobuf:"varint,2,opt,name=vote" json:"vote,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientSubmitSurveyVote) Reset() { + *x = CMsgGCCStrike15V2_ClientSubmitSurveyVote{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientSubmitSurveyVote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientSubmitSurveyVote) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientSubmitSurveyVote) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientSubmitSurveyVote.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientSubmitSurveyVote) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{90} +} + +func (x *CMsgGCCStrike15V2_ClientSubmitSurveyVote) GetSurveyId() uint32 { + if x != nil && x.SurveyId != nil { + return *x.SurveyId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientSubmitSurveyVote) GetVote() uint32 { + if x != nil && x.Vote != nil { + return *x.Vote + } + return 0 +} + +type CMsgGCCStrike15V2_Server2GCClientValidate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Server2GCClientValidate) Reset() { + *x = CMsgGCCStrike15V2_Server2GCClientValidate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Server2GCClientValidate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Server2GCClientValidate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Server2GCClientValidate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Server2GCClientValidate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Server2GCClientValidate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{91} +} + +func (x *CMsgGCCStrike15V2_Server2GCClientValidate) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +type CMsgGCCStrike15V2_GC2ClientTournamentInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *uint32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + Stageid *uint32 `protobuf:"varint,2,opt,name=stageid" json:"stageid,omitempty"` + GameType *uint32 `protobuf:"varint,3,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + Teamids []uint32 `protobuf:"varint,4,rep,name=teamids" json:"teamids,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientTournamentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientTournamentInfo) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientTournamentInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientTournamentInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{92} +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) GetEventid() uint32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) GetStageid() uint32 { + if x != nil && x.Stageid != nil { + return *x.Stageid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientTournamentInfo) GetTeamids() []uint32 { + if x != nil { + return x.Teamids + } + return nil +} + +type CSOEconCoupon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entryid *uint32 `protobuf:"varint,1,opt,name=entryid" json:"entryid,omitempty"` + Defidx *uint32 `protobuf:"varint,2,opt,name=defidx" json:"defidx,omitempty"` + ExpirationDate *uint32 `protobuf:"fixed32,3,opt,name=expiration_date,json=expirationDate" json:"expiration_date,omitempty"` +} + +func (x *CSOEconCoupon) Reset() { + *x = CSOEconCoupon{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSOEconCoupon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSOEconCoupon) ProtoMessage() {} + +func (x *CSOEconCoupon) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSOEconCoupon.ProtoReflect.Descriptor instead. +func (*CSOEconCoupon) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{93} +} + +func (x *CSOEconCoupon) GetEntryid() uint32 { + if x != nil && x.Entryid != nil { + return *x.Entryid + } + return 0 +} + +func (x *CSOEconCoupon) GetDefidx() uint32 { + if x != nil && x.Defidx != nil { + return *x.Defidx + } + return 0 +} + +func (x *CSOEconCoupon) GetExpirationDate() uint32 { + if x != nil && x.ExpirationDate != nil { + return *x.ExpirationDate + } + return 0 +} + +type CSOQuestProgress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Questid *uint32 `protobuf:"varint,1,opt,name=questid" json:"questid,omitempty"` + PointsRemaining *uint32 `protobuf:"varint,2,opt,name=points_remaining,json=pointsRemaining" json:"points_remaining,omitempty"` + BonusPoints *uint32 `protobuf:"varint,3,opt,name=bonus_points,json=bonusPoints" json:"bonus_points,omitempty"` +} + +func (x *CSOQuestProgress) Reset() { + *x = CSOQuestProgress{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSOQuestProgress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSOQuestProgress) ProtoMessage() {} + +func (x *CSOQuestProgress) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSOQuestProgress.ProtoReflect.Descriptor instead. +func (*CSOQuestProgress) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{94} +} + +func (x *CSOQuestProgress) GetQuestid() uint32 { + if x != nil && x.Questid != nil { + return *x.Questid + } + return 0 +} + +func (x *CSOQuestProgress) GetPointsRemaining() uint32 { + if x != nil && x.PointsRemaining != nil { + return *x.PointsRemaining + } + return 0 +} + +func (x *CSOQuestProgress) GetBonusPoints() uint32 { + if x != nil && x.BonusPoints != nil { + return *x.BonusPoints + } + return 0 +} + +type CSOAccountSeasonalOperation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SeasonValue *uint32 `protobuf:"varint,1,opt,name=season_value,json=seasonValue" json:"season_value,omitempty"` + TierUnlocked *uint32 `protobuf:"varint,2,opt,name=tier_unlocked,json=tierUnlocked" json:"tier_unlocked,omitempty"` + PremiumTiers *uint32 `protobuf:"varint,3,opt,name=premium_tiers,json=premiumTiers" json:"premium_tiers,omitempty"` + MissionId *uint32 `protobuf:"varint,4,opt,name=mission_id,json=missionId" json:"mission_id,omitempty"` + MissionsCompleted *uint32 `protobuf:"varint,5,opt,name=missions_completed,json=missionsCompleted" json:"missions_completed,omitempty"` + RedeemableBalance *uint32 `protobuf:"varint,6,opt,name=redeemable_balance,json=redeemableBalance" json:"redeemable_balance,omitempty"` + SeasonPassTime *uint32 `protobuf:"varint,7,opt,name=season_pass_time,json=seasonPassTime" json:"season_pass_time,omitempty"` +} + +func (x *CSOAccountSeasonalOperation) Reset() { + *x = CSOAccountSeasonalOperation{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSOAccountSeasonalOperation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSOAccountSeasonalOperation) ProtoMessage() {} + +func (x *CSOAccountSeasonalOperation) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSOAccountSeasonalOperation.ProtoReflect.Descriptor instead. +func (*CSOAccountSeasonalOperation) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{95} +} + +func (x *CSOAccountSeasonalOperation) GetSeasonValue() uint32 { + if x != nil && x.SeasonValue != nil { + return *x.SeasonValue + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetTierUnlocked() uint32 { + if x != nil && x.TierUnlocked != nil { + return *x.TierUnlocked + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetPremiumTiers() uint32 { + if x != nil && x.PremiumTiers != nil { + return *x.PremiumTiers + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetMissionId() uint32 { + if x != nil && x.MissionId != nil { + return *x.MissionId + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetMissionsCompleted() uint32 { + if x != nil && x.MissionsCompleted != nil { + return *x.MissionsCompleted + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetRedeemableBalance() uint32 { + if x != nil && x.RedeemableBalance != nil { + return *x.RedeemableBalance + } + return 0 +} + +func (x *CSOAccountSeasonalOperation) GetSeasonPassTime() uint32 { + if x != nil && x.SeasonPassTime != nil { + return *x.SeasonPassTime + } + return 0 +} + +type CSOAccountRecurringSubscription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TimeNextCycle *uint32 `protobuf:"varint,1,opt,name=time_next_cycle,json=timeNextCycle" json:"time_next_cycle,omitempty"` + TimeInitiated *uint32 `protobuf:"varint,2,opt,name=time_initiated,json=timeInitiated" json:"time_initiated,omitempty"` +} + +func (x *CSOAccountRecurringSubscription) Reset() { + *x = CSOAccountRecurringSubscription{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSOAccountRecurringSubscription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSOAccountRecurringSubscription) ProtoMessage() {} + +func (x *CSOAccountRecurringSubscription) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSOAccountRecurringSubscription.ProtoReflect.Descriptor instead. +func (*CSOAccountRecurringSubscription) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{96} +} + +func (x *CSOAccountRecurringSubscription) GetTimeNextCycle() uint32 { + if x != nil && x.TimeNextCycle != nil { + return *x.TimeNextCycle + } + return 0 +} + +func (x *CSOAccountRecurringSubscription) GetTimeInitiated() uint32 { + if x != nil && x.TimeInitiated != nil { + return *x.TimeInitiated + } + return 0 +} + +type CSOPersonaDataPublic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerLevel *int32 `protobuf:"varint,1,opt,name=player_level,json=playerLevel" json:"player_level,omitempty"` + Commendation *PlayerCommendationInfo `protobuf:"bytes,2,opt,name=commendation" json:"commendation,omitempty"` + ElevatedState *bool `protobuf:"varint,3,opt,name=elevated_state,json=elevatedState" json:"elevated_state,omitempty"` +} + +func (x *CSOPersonaDataPublic) Reset() { + *x = CSOPersonaDataPublic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSOPersonaDataPublic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSOPersonaDataPublic) ProtoMessage() {} + +func (x *CSOPersonaDataPublic) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSOPersonaDataPublic.ProtoReflect.Descriptor instead. +func (*CSOPersonaDataPublic) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{97} +} + +func (x *CSOPersonaDataPublic) GetPlayerLevel() int32 { + if x != nil && x.PlayerLevel != nil { + return *x.PlayerLevel + } + return 0 +} + +func (x *CSOPersonaDataPublic) GetCommendation() *PlayerCommendationInfo { + if x != nil { + return x.Commendation + } + return nil +} + +func (x *CSOPersonaDataPublic) GetElevatedState() bool { + if x != nil && x.ElevatedState != nil { + return *x.ElevatedState + } + return false +} + +type CMsgGC_GlobalGame_Subscribe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket *uint64 `protobuf:"varint,1,opt,name=ticket" json:"ticket,omitempty"` +} + +func (x *CMsgGC_GlobalGame_Subscribe) Reset() { + *x = CMsgGC_GlobalGame_Subscribe{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGC_GlobalGame_Subscribe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGC_GlobalGame_Subscribe) ProtoMessage() {} + +func (x *CMsgGC_GlobalGame_Subscribe) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGC_GlobalGame_Subscribe.ProtoReflect.Descriptor instead. +func (*CMsgGC_GlobalGame_Subscribe) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{98} +} + +func (x *CMsgGC_GlobalGame_Subscribe) GetTicket() uint64 { + if x != nil && x.Ticket != nil { + return *x.Ticket + } + return 0 +} + +type CMsgGC_GlobalGame_Unsubscribe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timeleft *int32 `protobuf:"varint,1,opt,name=timeleft" json:"timeleft,omitempty"` +} + +func (x *CMsgGC_GlobalGame_Unsubscribe) Reset() { + *x = CMsgGC_GlobalGame_Unsubscribe{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGC_GlobalGame_Unsubscribe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGC_GlobalGame_Unsubscribe) ProtoMessage() {} + +func (x *CMsgGC_GlobalGame_Unsubscribe) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGC_GlobalGame_Unsubscribe.ProtoReflect.Descriptor instead. +func (*CMsgGC_GlobalGame_Unsubscribe) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{99} +} + +func (x *CMsgGC_GlobalGame_Unsubscribe) GetTimeleft() int32 { + if x != nil && x.Timeleft != nil { + return *x.Timeleft + } + return 0 +} + +type CMsgGC_GlobalGame_Play struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket *uint64 `protobuf:"varint,1,opt,name=ticket" json:"ticket,omitempty"` + Gametimems *uint32 `protobuf:"varint,2,opt,name=gametimems" json:"gametimems,omitempty"` + Msperpoint *uint32 `protobuf:"varint,3,opt,name=msperpoint" json:"msperpoint,omitempty"` +} + +func (x *CMsgGC_GlobalGame_Play) Reset() { + *x = CMsgGC_GlobalGame_Play{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGC_GlobalGame_Play) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGC_GlobalGame_Play) ProtoMessage() {} + +func (x *CMsgGC_GlobalGame_Play) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGC_GlobalGame_Play.ProtoReflect.Descriptor instead. +func (*CMsgGC_GlobalGame_Play) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{100} +} + +func (x *CMsgGC_GlobalGame_Play) GetTicket() uint64 { + if x != nil && x.Ticket != nil { + return *x.Ticket + } + return 0 +} + +func (x *CMsgGC_GlobalGame_Play) GetGametimems() uint32 { + if x != nil && x.Gametimems != nil { + return *x.Gametimems + } + return 0 +} + +func (x *CMsgGC_GlobalGame_Play) GetMsperpoint() uint32 { + if x != nil && x.Msperpoint != nil { + return *x.Msperpoint + } + return 0 +} + +type CMsgGCCStrike15V2_AcknowledgePenalty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Acknowledged *int32 `protobuf:"varint,1,opt,name=acknowledged" json:"acknowledged,omitempty"` +} + +func (x *CMsgGCCStrike15V2_AcknowledgePenalty) Reset() { + *x = CMsgGCCStrike15V2_AcknowledgePenalty{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_AcknowledgePenalty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_AcknowledgePenalty) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_AcknowledgePenalty) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_AcknowledgePenalty.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_AcknowledgePenalty) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{101} +} + +func (x *CMsgGCCStrike15V2_AcknowledgePenalty) GetAcknowledged() int32 { + if x != nil && x.Acknowledged != nil { + return *x.Acknowledged + } + return 0 +} + +type CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Defindex *uint32 `protobuf:"varint,1,opt,name=defindex" json:"defindex,omitempty"` + Upgradeid *uint64 `protobuf:"varint,2,opt,name=upgradeid" json:"upgradeid,omitempty"` + Hours *uint32 `protobuf:"varint,3,opt,name=hours" json:"hours,omitempty"` + Prestigetime *uint32 `protobuf:"varint,4,opt,name=prestigetime" json:"prestigetime,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) Reset() { + *x = CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{102} +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) GetDefindex() uint32 { + if x != nil && x.Defindex != nil { + return *x.Defindex + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) GetUpgradeid() uint64 { + if x != nil && x.Upgradeid != nil { + return *x.Upgradeid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) GetHours() uint32 { + if x != nil && x.Hours != nil { + return *x.Hours + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin) GetPrestigetime() uint32 { + if x != nil && x.Prestigetime != nil { + return *x.Prestigetime + } + return 0 +} + +type CMsgGCCStrike15V2_Client2GCStreamUnlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket *uint64 `protobuf:"varint,1,opt,name=ticket" json:"ticket,omitempty"` + Os *int32 `protobuf:"varint,2,opt,name=os" json:"os,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Client2GCStreamUnlock) Reset() { + *x = CMsgGCCStrike15V2_Client2GCStreamUnlock{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Client2GCStreamUnlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Client2GCStreamUnlock) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Client2GCStreamUnlock) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Client2GCStreamUnlock.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Client2GCStreamUnlock) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{103} +} + +func (x *CMsgGCCStrike15V2_Client2GCStreamUnlock) GetTicket() uint64 { + if x != nil && x.Ticket != nil { + return *x.Ticket + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Client2GCStreamUnlock) GetOs() int32 { + if x != nil && x.Os != nil { + return *x.Os + } + return 0 +} + +type CMsgGCCStrike15V2_ClientToGCRequestElevate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stage *uint32 `protobuf:"varint,1,opt,name=stage" json:"stage,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestElevate) Reset() { + *x = CMsgGCCStrike15V2_ClientToGCRequestElevate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestElevate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientToGCRequestElevate) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestElevate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientToGCRequestElevate.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientToGCRequestElevate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{104} +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestElevate) GetStage() uint32 { + if x != nil && x.Stage != nil { + return *x.Stage + } + return 0 +} + +type CMsgGCCStrike15V2_ClientToGCChat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientToGCChat) Reset() { + *x = CMsgGCCStrike15V2_ClientToGCChat{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientToGCChat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientToGCChat) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientToGCChat) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[105] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientToGCChat.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientToGCChat) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{105} +} + +func (x *CMsgGCCStrike15V2_ClientToGCChat) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientToGCChat) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CMsgGCCStrike15V2_GCToClientChat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GCToClientChat) Reset() { + *x = CMsgGCCStrike15V2_GCToClientChat{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GCToClientChat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GCToClientChat) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GCToClientChat) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[106] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GCToClientChat.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GCToClientChat) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{106} +} + +func (x *CMsgGCCStrike15V2_GCToClientChat) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GCToClientChat) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CMsgGCCStrike15V2_ClientAuthKeyCode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *uint32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + Code *string `protobuf:"bytes,2,opt,name=code" json:"code,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientAuthKeyCode) Reset() { + *x = CMsgGCCStrike15V2_ClientAuthKeyCode{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientAuthKeyCode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientAuthKeyCode) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientAuthKeyCode) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientAuthKeyCode.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientAuthKeyCode) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{107} +} + +func (x *CMsgGCCStrike15V2_ClientAuthKeyCode) GetEventid() uint32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientAuthKeyCode) GetCode() string { + if x != nil && x.Code != nil { + return *x.Code + } + return "" +} + +type CMsgGCCStrike15_GotvSyncPacket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *CEngineGotvSyncPacket `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CMsgGCCStrike15_GotvSyncPacket) Reset() { + *x = CMsgGCCStrike15_GotvSyncPacket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15_GotvSyncPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15_GotvSyncPacket) ProtoMessage() {} + +func (x *CMsgGCCStrike15_GotvSyncPacket) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15_GotvSyncPacket.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15_GotvSyncPacket) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{108} +} + +func (x *CMsgGCCStrike15_GotvSyncPacket) GetData() *CEngineGotvSyncPacket { + if x != nil { + return x.Data + } + return nil +} + +type PlayerDecalDigitalSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Signature []byte `protobuf:"bytes,1,opt,name=signature" json:"signature,omitempty"` + Accountid *uint32 `protobuf:"varint,2,opt,name=accountid" json:"accountid,omitempty"` + Rtime *uint32 `protobuf:"varint,3,opt,name=rtime" json:"rtime,omitempty"` + Endpos []float32 `protobuf:"fixed32,4,rep,name=endpos" json:"endpos,omitempty"` + Startpos []float32 `protobuf:"fixed32,5,rep,name=startpos" json:"startpos,omitempty"` + Left []float32 `protobuf:"fixed32,6,rep,name=left" json:"left,omitempty"` + TxDefidx *uint32 `protobuf:"varint,7,opt,name=tx_defidx,json=txDefidx" json:"tx_defidx,omitempty"` + Entindex *int32 `protobuf:"varint,8,opt,name=entindex" json:"entindex,omitempty"` + Hitbox *uint32 `protobuf:"varint,9,opt,name=hitbox" json:"hitbox,omitempty"` + Creationtime *float32 `protobuf:"fixed32,10,opt,name=creationtime" json:"creationtime,omitempty"` + Equipslot *uint32 `protobuf:"varint,11,opt,name=equipslot" json:"equipslot,omitempty"` + TraceId *uint32 `protobuf:"varint,12,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"` + Normal []float32 `protobuf:"fixed32,13,rep,name=normal" json:"normal,omitempty"` + TintId *uint32 `protobuf:"varint,14,opt,name=tint_id,json=tintId" json:"tint_id,omitempty"` +} + +func (x *PlayerDecalDigitalSignature) Reset() { + *x = PlayerDecalDigitalSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerDecalDigitalSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerDecalDigitalSignature) ProtoMessage() {} + +func (x *PlayerDecalDigitalSignature) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerDecalDigitalSignature.ProtoReflect.Descriptor instead. +func (*PlayerDecalDigitalSignature) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{109} +} + +func (x *PlayerDecalDigitalSignature) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +func (x *PlayerDecalDigitalSignature) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetRtime() uint32 { + if x != nil && x.Rtime != nil { + return *x.Rtime + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetEndpos() []float32 { + if x != nil { + return x.Endpos + } + return nil +} + +func (x *PlayerDecalDigitalSignature) GetStartpos() []float32 { + if x != nil { + return x.Startpos + } + return nil +} + +func (x *PlayerDecalDigitalSignature) GetLeft() []float32 { + if x != nil { + return x.Left + } + return nil +} + +func (x *PlayerDecalDigitalSignature) GetTxDefidx() uint32 { + if x != nil && x.TxDefidx != nil { + return *x.TxDefidx + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetEntindex() int32 { + if x != nil && x.Entindex != nil { + return *x.Entindex + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetHitbox() uint32 { + if x != nil && x.Hitbox != nil { + return *x.Hitbox + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetCreationtime() float32 { + if x != nil && x.Creationtime != nil { + return *x.Creationtime + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetEquipslot() uint32 { + if x != nil && x.Equipslot != nil { + return *x.Equipslot + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetTraceId() uint32 { + if x != nil && x.TraceId != nil { + return *x.TraceId + } + return 0 +} + +func (x *PlayerDecalDigitalSignature) GetNormal() []float32 { + if x != nil { + return x.Normal + } + return nil +} + +func (x *PlayerDecalDigitalSignature) GetTintId() uint32 { + if x != nil && x.TintId != nil { + return *x.TintId + } + return 0 +} + +type CMsgGCCStrike15V2_ClientPlayerDecalSign struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *PlayerDecalDigitalSignature `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` + Itemid *uint64 `protobuf:"varint,2,opt,name=itemid" json:"itemid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPlayerDecalSign) Reset() { + *x = CMsgGCCStrike15V2_ClientPlayerDecalSign{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPlayerDecalSign) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPlayerDecalSign) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPlayerDecalSign) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPlayerDecalSign.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPlayerDecalSign) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{110} +} + +func (x *CMsgGCCStrike15V2_ClientPlayerDecalSign) GetData() *PlayerDecalDigitalSignature { + if x != nil { + return x.Data + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientPlayerDecalSign) GetItemid() uint64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +type CMsgGCCStrike15V2_ClientLogonFatalError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Errorcode *uint32 `protobuf:"varint,1,opt,name=errorcode" json:"errorcode,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + Country *string `protobuf:"bytes,3,opt,name=country" json:"country,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) Reset() { + *x = CMsgGCCStrike15V2_ClientLogonFatalError{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientLogonFatalError) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientLogonFatalError.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientLogonFatalError) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{111} +} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) GetErrorcode() uint32 { + if x != nil && x.Errorcode != nil { + return *x.Errorcode + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +func (x *CMsgGCCStrike15V2_ClientLogonFatalError) GetCountry() string { + if x != nil && x.Country != nil { + return *x.Country + } + return "" +} + +type CMsgGCCStrike15V2_ClientPollState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pollid *uint32 `protobuf:"varint,1,opt,name=pollid" json:"pollid,omitempty"` + Names []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"` + Values []int32 `protobuf:"varint,3,rep,name=values" json:"values,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPollState) Reset() { + *x = CMsgGCCStrike15V2_ClientPollState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPollState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPollState) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPollState) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPollState.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPollState) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{112} +} + +func (x *CMsgGCCStrike15V2_ClientPollState) GetPollid() uint32 { + if x != nil && x.Pollid != nil { + return *x.Pollid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPollState) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientPollState) GetValues() []int32 { + if x != nil { + return x.Values + } + return nil +} + +type CMsgGCCStrike15V2_Party_Register struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Ver *uint32 `protobuf:"varint,2,opt,name=ver" json:"ver,omitempty"` + Apr *uint32 `protobuf:"varint,3,opt,name=apr" json:"apr,omitempty"` + Ark *uint32 `protobuf:"varint,4,opt,name=ark" json:"ark,omitempty"` + Nby *uint32 `protobuf:"varint,5,opt,name=nby" json:"nby,omitempty"` + Grp *uint32 `protobuf:"varint,6,opt,name=grp" json:"grp,omitempty"` + Slots *uint32 `protobuf:"varint,7,opt,name=slots" json:"slots,omitempty"` + Launcher *uint32 `protobuf:"varint,8,opt,name=launcher" json:"launcher,omitempty"` + GameType *uint32 `protobuf:"varint,9,opt,name=game_type,json=gameType" json:"game_type,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Party_Register) Reset() { + *x = CMsgGCCStrike15V2_Party_Register{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Party_Register) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Party_Register) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Party_Register) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Party_Register.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Party_Register) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{113} +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetVer() uint32 { + if x != nil && x.Ver != nil { + return *x.Ver + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetApr() uint32 { + if x != nil && x.Apr != nil { + return *x.Apr + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetArk() uint32 { + if x != nil && x.Ark != nil { + return *x.Ark + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetNby() uint32 { + if x != nil && x.Nby != nil { + return *x.Nby + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetGrp() uint32 { + if x != nil && x.Grp != nil { + return *x.Grp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetSlots() uint32 { + if x != nil && x.Slots != nil { + return *x.Slots + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetLauncher() uint32 { + if x != nil && x.Launcher != nil { + return *x.Launcher + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Register) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +type CMsgGCCStrike15V2_Party_Search struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ver *uint32 `protobuf:"varint,1,opt,name=ver" json:"ver,omitempty"` + Apr *uint32 `protobuf:"varint,2,opt,name=apr" json:"apr,omitempty"` + Ark *uint32 `protobuf:"varint,3,opt,name=ark" json:"ark,omitempty"` + Grps []uint32 `protobuf:"varint,4,rep,name=grps" json:"grps,omitempty"` + Launcher *uint32 `protobuf:"varint,5,opt,name=launcher" json:"launcher,omitempty"` + GameType *uint32 `protobuf:"varint,6,opt,name=game_type,json=gameType" json:"game_type,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Party_Search) Reset() { + *x = CMsgGCCStrike15V2_Party_Search{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Party_Search) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Party_Search) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Party_Search) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Party_Search.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Party_Search) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{114} +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetVer() uint32 { + if x != nil && x.Ver != nil { + return *x.Ver + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetApr() uint32 { + if x != nil && x.Apr != nil { + return *x.Apr + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetArk() uint32 { + if x != nil && x.Ark != nil { + return *x.Ark + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetGrps() []uint32 { + if x != nil { + return x.Grps + } + return nil +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetLauncher() uint32 { + if x != nil && x.Launcher != nil { + return *x.Launcher + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Search) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +type CMsgGCCStrike15V2_Party_SearchResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*CMsgGCCStrike15V2_Party_SearchResults_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults) Reset() { + *x = CMsgGCCStrike15V2_Party_SearchResults{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Party_SearchResults) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Party_SearchResults) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Party_SearchResults.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Party_SearchResults) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{115} +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults) GetEntries() []*CMsgGCCStrike15V2_Party_SearchResults_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type CMsgGCCStrike15V2_Party_Invite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Lobbyid *uint32 `protobuf:"varint,2,opt,name=lobbyid" json:"lobbyid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Party_Invite) Reset() { + *x = CMsgGCCStrike15V2_Party_Invite{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Party_Invite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Party_Invite) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Party_Invite) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[116] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Party_Invite.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Party_Invite) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{116} +} + +func (x *CMsgGCCStrike15V2_Party_Invite) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_Invite) GetLobbyid() uint32 { + if x != nil && x.Lobbyid != nil { + return *x.Lobbyid + } + return 0 +} + +type CMsgGCCStrike15V2_Account_RequestCoPlays struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Players []*CMsgGCCStrike15V2_Account_RequestCoPlays_Player `protobuf:"bytes,1,rep,name=players" json:"players,omitempty"` + Servertime *uint32 `protobuf:"varint,2,opt,name=servertime" json:"servertime,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays) Reset() { + *x = CMsgGCCStrike15V2_Account_RequestCoPlays{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Account_RequestCoPlays) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[117] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Account_RequestCoPlays.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Account_RequestCoPlays) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{117} +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays) GetPlayers() []*CMsgGCCStrike15V2_Account_RequestCoPlays_Player { + if x != nil { + return x.Players + } + return nil +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays) GetServertime() uint32 { + if x != nil && x.Servertime != nil { + return *x.Servertime + } + return 0 +} + +type CMsgGCCStrike15V2_ClientToGCRequestTicket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AuthorizedSteamId *uint64 `protobuf:"fixed64,1,opt,name=authorized_steam_id,json=authorizedSteamId" json:"authorized_steam_id,omitempty"` + AuthorizedPublicIp *uint32 `protobuf:"fixed32,2,opt,name=authorized_public_ip,json=authorizedPublicIp" json:"authorized_public_ip,omitempty"` + GameserverSteamId *uint64 `protobuf:"fixed64,3,opt,name=gameserver_steam_id,json=gameserverSteamId" json:"gameserver_steam_id,omitempty"` + GameserverSdrRouting *string `protobuf:"bytes,5,opt,name=gameserver_sdr_routing,json=gameserverSdrRouting" json:"gameserver_sdr_routing,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) Reset() { + *x = CMsgGCCStrike15V2_ClientToGCRequestTicket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientToGCRequestTicket) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientToGCRequestTicket.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientToGCRequestTicket) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{118} +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) GetAuthorizedSteamId() uint64 { + if x != nil && x.AuthorizedSteamId != nil { + return *x.AuthorizedSteamId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) GetAuthorizedPublicIp() uint32 { + if x != nil && x.AuthorizedPublicIp != nil { + return *x.AuthorizedPublicIp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) GetGameserverSteamId() uint64 { + if x != nil && x.GameserverSteamId != nil { + return *x.GameserverSteamId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientToGCRequestTicket) GetGameserverSdrRouting() string { + if x != nil && x.GameserverSdrRouting != nil { + return *x.GameserverSdrRouting + } + return "" +} + +type CMsgGCToClientSteamDatagramTicket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SerializedTicket []byte `protobuf:"bytes,16,opt,name=serialized_ticket,json=serializedTicket" json:"serialized_ticket,omitempty"` +} + +func (x *CMsgGCToClientSteamDatagramTicket) Reset() { + *x = CMsgGCToClientSteamDatagramTicket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCToClientSteamDatagramTicket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCToClientSteamDatagramTicket) ProtoMessage() {} + +func (x *CMsgGCToClientSteamDatagramTicket) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCToClientSteamDatagramTicket.ProtoReflect.Descriptor instead. +func (*CMsgGCToClientSteamDatagramTicket) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{119} +} + +func (x *CMsgGCToClientSteamDatagramTicket) GetSerializedTicket() []byte { + if x != nil { + return x.SerializedTicket + } + return nil +} + +type CMsgGCCStrike15V2_ClientRequestOffers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CMsgGCCStrike15V2_ClientRequestOffers) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestOffers{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestOffers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestOffers) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestOffers) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[120] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestOffers.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestOffers) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{120} +} + +type CMsgGCCStrike15V2_ClientRequestSouvenir struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Itemid *uint64 `protobuf:"varint,1,opt,name=itemid" json:"itemid,omitempty"` + Matchid *uint64 `protobuf:"varint,2,opt,name=matchid" json:"matchid,omitempty"` + Eventid *int32 `protobuf:"varint,3,opt,name=eventid" json:"eventid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) Reset() { + *x = CMsgGCCStrike15V2_ClientRequestSouvenir{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientRequestSouvenir) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientRequestSouvenir.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientRequestSouvenir) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{121} +} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) GetItemid() uint64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) GetMatchid() uint64 { + if x != nil && x.Matchid != nil { + return *x.Matchid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientRequestSouvenir) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +type CMsgGCCStrike15V2_ClientAccountBalance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *uint64 `protobuf:"varint,1,opt,name=amount" json:"amount,omitempty"` + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientAccountBalance) Reset() { + *x = CMsgGCCStrike15V2_ClientAccountBalance{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientAccountBalance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientAccountBalance) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientAccountBalance) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientAccountBalance.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientAccountBalance) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{122} +} + +func (x *CMsgGCCStrike15V2_ClientAccountBalance) GetAmount() uint64 { + if x != nil && x.Amount != nil { + return *x.Amount + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientAccountBalance) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +type CMsgGCCStrike15V2_ClientPartyJoinRelay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Lobbyid *uint64 `protobuf:"varint,2,opt,name=lobbyid" json:"lobbyid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPartyJoinRelay) Reset() { + *x = CMsgGCCStrike15V2_ClientPartyJoinRelay{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPartyJoinRelay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPartyJoinRelay) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPartyJoinRelay) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPartyJoinRelay.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPartyJoinRelay) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{123} +} + +func (x *CMsgGCCStrike15V2_ClientPartyJoinRelay) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPartyJoinRelay) GetLobbyid() uint64 { + if x != nil && x.Lobbyid != nil { + return *x.Lobbyid + } + return 0 +} + +type CMsgGCCStrike15V2_ClientPartyWarning struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*CMsgGCCStrike15V2_ClientPartyWarning_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning) Reset() { + *x = CMsgGCCStrike15V2_ClientPartyWarning{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPartyWarning) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPartyWarning.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPartyWarning) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{124} +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning) GetEntries() []*CMsgGCCStrike15V2_ClientPartyWarning_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type CMsgGCCStrike15V2_SetEventFavorite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *uint64 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + IsFavorite *bool `protobuf:"varint,2,opt,name=is_favorite,json=isFavorite" json:"is_favorite,omitempty"` +} + +func (x *CMsgGCCStrike15V2_SetEventFavorite) Reset() { + *x = CMsgGCCStrike15V2_SetEventFavorite{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_SetEventFavorite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_SetEventFavorite) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_SetEventFavorite) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_SetEventFavorite.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_SetEventFavorite) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{125} +} + +func (x *CMsgGCCStrike15V2_SetEventFavorite) GetEventid() uint64 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_SetEventFavorite) GetIsFavorite() bool { + if x != nil && x.IsFavorite != nil { + return *x.IsFavorite + } + return false +} + +type CMsgGCCStrike15V2_GetEventFavorites_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllEvents *bool `protobuf:"varint,1,opt,name=all_events,json=allEvents" json:"all_events,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Request) Reset() { + *x = CMsgGCCStrike15V2_GetEventFavorites_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GetEventFavorites_Request) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[126] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GetEventFavorites_Request.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GetEventFavorites_Request) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{126} +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Request) GetAllEvents() bool { + if x != nil && x.AllEvents != nil { + return *x.AllEvents + } + return false +} + +type CMsgGCCStrike15V2_GetEventFavorites_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllEvents *bool `protobuf:"varint,1,opt,name=all_events,json=allEvents" json:"all_events,omitempty"` + JsonFavorites *string `protobuf:"bytes,2,opt,name=json_favorites,json=jsonFavorites" json:"json_favorites,omitempty"` + JsonFeatured *string `protobuf:"bytes,3,opt,name=json_featured,json=jsonFeatured" json:"json_featured,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) Reset() { + *x = CMsgGCCStrike15V2_GetEventFavorites_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GetEventFavorites_Response) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GetEventFavorites_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GetEventFavorites_Response) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{127} +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) GetAllEvents() bool { + if x != nil && x.AllEvents != nil { + return *x.AllEvents + } + return false +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) GetJsonFavorites() string { + if x != nil && x.JsonFavorites != nil { + return *x.JsonFavorites + } + return "" +} + +func (x *CMsgGCCStrike15V2_GetEventFavorites_Response) GetJsonFeatured() string { + if x != nil && x.JsonFeatured != nil { + return *x.JsonFeatured + } + return "" +} + +type CMsgGCCStrike15V2_ClientPerfReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*CMsgGCCStrike15V2_ClientPerfReport_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport) Reset() { + *x = CMsgGCCStrike15V2_ClientPerfReport{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPerfReport) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPerfReport) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPerfReport.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPerfReport) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{128} +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport) GetEntries() []*CMsgGCCStrike15V2_ClientPerfReport_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type CVDiagnostic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Extended *uint32 `protobuf:"varint,2,opt,name=extended" json:"extended,omitempty"` + Value *uint64 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"` + StringValue *string `protobuf:"bytes,4,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` +} + +func (x *CVDiagnostic) Reset() { + *x = CVDiagnostic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CVDiagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CVDiagnostic) ProtoMessage() {} + +func (x *CVDiagnostic) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CVDiagnostic.ProtoReflect.Descriptor instead. +func (*CVDiagnostic) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{129} +} + +func (x *CVDiagnostic) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CVDiagnostic) GetExtended() uint32 { + if x != nil && x.Extended != nil { + return *x.Extended + } + return 0 +} + +func (x *CVDiagnostic) GetValue() uint64 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *CVDiagnostic) GetStringValue() string { + if x != nil && x.StringValue != nil { + return *x.StringValue + } + return "" +} + +type CMsgGCCStrike15V2_ClientReportValidation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileReport *string `protobuf:"bytes,1,opt,name=file_report,json=fileReport" json:"file_report,omitempty"` + CommandLine *string `protobuf:"bytes,2,opt,name=command_line,json=commandLine" json:"command_line,omitempty"` + TotalFiles *uint32 `protobuf:"varint,3,opt,name=total_files,json=totalFiles" json:"total_files,omitempty"` + InternalError *uint32 `protobuf:"varint,4,opt,name=internal_error,json=internalError" json:"internal_error,omitempty"` + TrustTime *uint32 `protobuf:"varint,5,opt,name=trust_time,json=trustTime" json:"trust_time,omitempty"` + CountPending *uint32 `protobuf:"varint,6,opt,name=count_pending,json=countPending" json:"count_pending,omitempty"` + CountCompleted *uint32 `protobuf:"varint,7,opt,name=count_completed,json=countCompleted" json:"count_completed,omitempty"` + ProcessId *uint32 `protobuf:"varint,8,opt,name=process_id,json=processId" json:"process_id,omitempty"` + Osversion *int32 `protobuf:"varint,9,opt,name=osversion" json:"osversion,omitempty"` + Clientreportversion *uint32 `protobuf:"varint,10,opt,name=clientreportversion" json:"clientreportversion,omitempty"` + StatusId *uint32 `protobuf:"varint,11,opt,name=status_id,json=statusId" json:"status_id,omitempty"` + Diagnostic1 *uint32 `protobuf:"varint,12,opt,name=diagnostic1" json:"diagnostic1,omitempty"` + Diagnostic2 *uint64 `protobuf:"varint,13,opt,name=diagnostic2" json:"diagnostic2,omitempty"` + Diagnostic3 *uint64 `protobuf:"varint,14,opt,name=diagnostic3" json:"diagnostic3,omitempty"` + LastLaunchData *string `protobuf:"bytes,15,opt,name=last_launch_data,json=lastLaunchData" json:"last_launch_data,omitempty"` + ReportCount *uint32 `protobuf:"varint,16,opt,name=report_count,json=reportCount" json:"report_count,omitempty"` + ClientTime *uint64 `protobuf:"varint,17,opt,name=client_time,json=clientTime" json:"client_time,omitempty"` + Diagnostic4 *uint64 `protobuf:"varint,18,opt,name=diagnostic4" json:"diagnostic4,omitempty"` + Diagnostic5 *uint64 `protobuf:"varint,19,opt,name=diagnostic5" json:"diagnostic5,omitempty"` + Diagnostics []*CVDiagnostic `protobuf:"bytes,20,rep,name=diagnostics" json:"diagnostics,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) Reset() { + *x = CMsgGCCStrike15V2_ClientReportValidation{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientReportValidation) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[130] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientReportValidation.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientReportValidation) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{130} +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetFileReport() string { + if x != nil && x.FileReport != nil { + return *x.FileReport + } + return "" +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetCommandLine() string { + if x != nil && x.CommandLine != nil { + return *x.CommandLine + } + return "" +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetTotalFiles() uint32 { + if x != nil && x.TotalFiles != nil { + return *x.TotalFiles + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetInternalError() uint32 { + if x != nil && x.InternalError != nil { + return *x.InternalError + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetTrustTime() uint32 { + if x != nil && x.TrustTime != nil { + return *x.TrustTime + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetCountPending() uint32 { + if x != nil && x.CountPending != nil { + return *x.CountPending + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetCountCompleted() uint32 { + if x != nil && x.CountCompleted != nil { + return *x.CountCompleted + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetProcessId() uint32 { + if x != nil && x.ProcessId != nil { + return *x.ProcessId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetOsversion() int32 { + if x != nil && x.Osversion != nil { + return *x.Osversion + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetClientreportversion() uint32 { + if x != nil && x.Clientreportversion != nil { + return *x.Clientreportversion + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetStatusId() uint32 { + if x != nil && x.StatusId != nil { + return *x.StatusId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostic1() uint32 { + if x != nil && x.Diagnostic1 != nil { + return *x.Diagnostic1 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostic2() uint64 { + if x != nil && x.Diagnostic2 != nil { + return *x.Diagnostic2 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostic3() uint64 { + if x != nil && x.Diagnostic3 != nil { + return *x.Diagnostic3 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetLastLaunchData() string { + if x != nil && x.LastLaunchData != nil { + return *x.LastLaunchData + } + return "" +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetReportCount() uint32 { + if x != nil && x.ReportCount != nil { + return *x.ReportCount + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetClientTime() uint64 { + if x != nil && x.ClientTime != nil { + return *x.ClientTime + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostic4() uint64 { + if x != nil && x.Diagnostic4 != nil { + return *x.Diagnostic4 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostic5() uint64 { + if x != nil && x.Diagnostic5 != nil { + return *x.Diagnostic5 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientReportValidation) GetDiagnostics() []*CVDiagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type CMsgGCCStrike15V2_GC2ClientRefuseSecureMode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileReport *string `protobuf:"bytes,1,opt,name=file_report,json=fileReport" json:"file_report,omitempty"` + OfferInsecureMode *bool `protobuf:"varint,2,opt,name=offer_insecure_mode,json=offerInsecureMode" json:"offer_insecure_mode,omitempty"` + OfferSecureMode *bool `protobuf:"varint,3,opt,name=offer_secure_mode,json=offerSecureMode" json:"offer_secure_mode,omitempty"` + ShowUnsignedUi *bool `protobuf:"varint,4,opt,name=show_unsigned_ui,json=showUnsignedUi" json:"show_unsigned_ui,omitempty"` + KickUser *bool `protobuf:"varint,5,opt,name=kick_user,json=kickUser" json:"kick_user,omitempty"` + ShowTrustedUi *bool `protobuf:"varint,6,opt,name=show_trusted_ui,json=showTrustedUi" json:"show_trusted_ui,omitempty"` + ShowWarningNotTrusted *bool `protobuf:"varint,7,opt,name=show_warning_not_trusted,json=showWarningNotTrusted" json:"show_warning_not_trusted,omitempty"` + ShowWarningNotTrusted_2 *bool `protobuf:"varint,8,opt,name=show_warning_not_trusted_2,json=showWarningNotTrusted2" json:"show_warning_not_trusted_2,omitempty"` + FilesPreventedTrusted *string `protobuf:"bytes,9,opt,name=files_prevented_trusted,json=filesPreventedTrusted" json:"files_prevented_trusted,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientRefuseSecureMode{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[131] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientRefuseSecureMode.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{131} +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetFileReport() string { + if x != nil && x.FileReport != nil { + return *x.FileReport + } + return "" +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetOfferInsecureMode() bool { + if x != nil && x.OfferInsecureMode != nil { + return *x.OfferInsecureMode + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetOfferSecureMode() bool { + if x != nil && x.OfferSecureMode != nil { + return *x.OfferSecureMode + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetShowUnsignedUi() bool { + if x != nil && x.ShowUnsignedUi != nil { + return *x.ShowUnsignedUi + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetKickUser() bool { + if x != nil && x.KickUser != nil { + return *x.KickUser + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetShowTrustedUi() bool { + if x != nil && x.ShowTrustedUi != nil { + return *x.ShowTrustedUi + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetShowWarningNotTrusted() bool { + if x != nil && x.ShowWarningNotTrusted != nil { + return *x.ShowWarningNotTrusted + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetShowWarningNotTrusted_2() bool { + if x != nil && x.ShowWarningNotTrusted_2 != nil { + return *x.ShowWarningNotTrusted_2 + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRefuseSecureMode) GetFilesPreventedTrusted() string { + if x != nil && x.FilesPreventedTrusted != nil { + return *x.FilesPreventedTrusted + } + return "" +} + +type CMsgGCCStrike15V2_GC2ClientRequestValidation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FullReport *bool `protobuf:"varint,1,opt,name=full_report,json=fullReport" json:"full_report,omitempty"` + Module *string `protobuf:"bytes,2,opt,name=module" json:"module,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ClientRequestValidation) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientRequestValidation{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientRequestValidation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientRequestValidation) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientRequestValidation) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[132] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientRequestValidation.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientRequestValidation) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{132} +} + +func (x *CMsgGCCStrike15V2_GC2ClientRequestValidation) GetFullReport() bool { + if x != nil && x.FullReport != nil { + return *x.FullReport + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientRequestValidation) GetModule() string { + if x != nil && x.Module != nil { + return *x.Module + } + return "" +} + +type CMsgGCCStrike15V2_GC2ClientInitSystem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Load *bool `protobuf:"varint,1,opt,name=load" json:"load,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Outputname *string `protobuf:"bytes,3,opt,name=outputname" json:"outputname,omitempty"` + KeyData []byte `protobuf:"bytes,4,opt,name=key_data,json=keyData" json:"key_data,omitempty"` + ShaHash []byte `protobuf:"bytes,5,opt,name=sha_hash,json=shaHash" json:"sha_hash,omitempty"` + Cookie *int32 `protobuf:"varint,6,opt,name=cookie" json:"cookie,omitempty"` + Manifest *string `protobuf:"bytes,7,opt,name=manifest" json:"manifest,omitempty"` + SystemPackage []byte `protobuf:"bytes,8,opt,name=system_package,json=systemPackage" json:"system_package,omitempty"` + LoadSystem *bool `protobuf:"varint,9,opt,name=load_system,json=loadSystem" json:"load_system,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientInitSystem{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientInitSystem) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[133] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientInitSystem.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientInitSystem) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{133} +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetLoad() bool { + if x != nil && x.Load != nil { + return *x.Load + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetOutputname() string { + if x != nil && x.Outputname != nil { + return *x.Outputname + } + return "" +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetKeyData() []byte { + if x != nil { + return x.KeyData + } + return nil +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetShaHash() []byte { + if x != nil { + return x.ShaHash + } + return nil +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetCookie() int32 { + if x != nil && x.Cookie != nil { + return *x.Cookie + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetManifest() string { + if x != nil && x.Manifest != nil { + return *x.Manifest + } + return "" +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetSystemPackage() []byte { + if x != nil { + return x.SystemPackage + } + return nil +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem) GetLoadSystem() bool { + if x != nil && x.LoadSystem != nil { + return *x.LoadSystem + } + return false +} + +type CMsgGCCStrike15V2_GC2ClientInitSystem_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success *bool `protobuf:"varint,1,opt,name=success" json:"success,omitempty"` + Diagnostic *string `protobuf:"bytes,2,opt,name=diagnostic" json:"diagnostic,omitempty"` + ShaHash []byte `protobuf:"bytes,3,opt,name=sha_hash,json=shaHash" json:"sha_hash,omitempty"` + Response *int32 `protobuf:"varint,4,opt,name=response" json:"response,omitempty"` + ErrorCode1 *int32 `protobuf:"varint,5,opt,name=error_code1,json=errorCode1" json:"error_code1,omitempty"` + ErrorCode2 *int32 `protobuf:"varint,6,opt,name=error_code2,json=errorCode2" json:"error_code2,omitempty"` + Handle *int64 `protobuf:"varint,7,opt,name=handle" json:"handle,omitempty"` + EinitResult *EInitSystemResult `protobuf:"varint,8,opt,name=einit_result,json=einitResult,enum=com.github.markus_wa.demoinfocs_golang.s2.EInitSystemResult,def=0" json:"einit_result,omitempty"` + AuxSystem1 *int32 `protobuf:"varint,9,opt,name=aux_system1,json=auxSystem1" json:"aux_system1,omitempty"` + AuxSystem2 *int32 `protobuf:"varint,10,opt,name=aux_system2,json=auxSystem2" json:"aux_system2,omitempty"` +} + +// Default values for CMsgGCCStrike15V2_GC2ClientInitSystem_Response fields. +const ( + Default_CMsgGCCStrike15V2_GC2ClientInitSystem_Response_EinitResult = EInitSystemResult_k_EInitSystemResult_Invalid +) + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) Reset() { + *x = CMsgGCCStrike15V2_GC2ClientInitSystem_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GC2ClientInitSystem_Response) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[134] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GC2ClientInitSystem_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GC2ClientInitSystem_Response) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{134} +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetSuccess() bool { + if x != nil && x.Success != nil { + return *x.Success + } + return false +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetDiagnostic() string { + if x != nil && x.Diagnostic != nil { + return *x.Diagnostic + } + return "" +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetShaHash() []byte { + if x != nil { + return x.ShaHash + } + return nil +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetResponse() int32 { + if x != nil && x.Response != nil { + return *x.Response + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetErrorCode1() int32 { + if x != nil && x.ErrorCode1 != nil { + return *x.ErrorCode1 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetErrorCode2() int32 { + if x != nil && x.ErrorCode2 != nil { + return *x.ErrorCode2 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetHandle() int64 { + if x != nil && x.Handle != nil { + return *x.Handle + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetEinitResult() EInitSystemResult { + if x != nil && x.EinitResult != nil { + return *x.EinitResult + } + return Default_CMsgGCCStrike15V2_GC2ClientInitSystem_Response_EinitResult +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetAuxSystem1() int32 { + if x != nil && x.AuxSystem1 != nil { + return *x.AuxSystem1 + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GC2ClientInitSystem_Response) GetAuxSystem2() int32 { + if x != nil && x.AuxSystem2 != nil { + return *x.AuxSystem2 + } + return 0 +} + +type ScoreLeaderboardData_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tag *uint32 `protobuf:"varint,1,opt,name=tag" json:"tag,omitempty"` + Val *uint32 `protobuf:"varint,2,opt,name=val" json:"val,omitempty"` +} + +func (x *ScoreLeaderboardData_Entry) Reset() { + *x = ScoreLeaderboardData_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScoreLeaderboardData_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScoreLeaderboardData_Entry) ProtoMessage() {} + +func (x *ScoreLeaderboardData_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScoreLeaderboardData_Entry.ProtoReflect.Descriptor instead. +func (*ScoreLeaderboardData_Entry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{20, 0} +} + +func (x *ScoreLeaderboardData_Entry) GetTag() uint32 { + if x != nil && x.Tag != nil { + return *x.Tag + } + return 0 +} + +func (x *ScoreLeaderboardData_Entry) GetVal() uint32 { + if x != nil && x.Val != nil { + return *x.Val + } + return 0 +} + +type ScoreLeaderboardData_AccountEntries struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Entries []*ScoreLeaderboardData_Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"` +} + +func (x *ScoreLeaderboardData_AccountEntries) Reset() { + *x = ScoreLeaderboardData_AccountEntries{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScoreLeaderboardData_AccountEntries) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScoreLeaderboardData_AccountEntries) ProtoMessage() {} + +func (x *ScoreLeaderboardData_AccountEntries) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[136] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScoreLeaderboardData_AccountEntries.ProtoReflect.Descriptor instead. +func (*ScoreLeaderboardData_AccountEntries) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{20, 1} +} + +func (x *ScoreLeaderboardData_AccountEntries) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *ScoreLeaderboardData_AccountEntries) GetEntries() []*ScoreLeaderboardData_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type PlayerQuestData_QuestItemData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuestId *uint64 `protobuf:"varint,1,opt,name=quest_id,json=questId" json:"quest_id,omitempty"` + QuestNormalPointsEarned *int32 `protobuf:"varint,2,opt,name=quest_normal_points_earned,json=questNormalPointsEarned" json:"quest_normal_points_earned,omitempty"` + QuestBonusPointsEarned *int32 `protobuf:"varint,3,opt,name=quest_bonus_points_earned,json=questBonusPointsEarned" json:"quest_bonus_points_earned,omitempty"` +} + +func (x *PlayerQuestData_QuestItemData) Reset() { + *x = PlayerQuestData_QuestItemData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerQuestData_QuestItemData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerQuestData_QuestItemData) ProtoMessage() {} + +func (x *PlayerQuestData_QuestItemData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[137] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerQuestData_QuestItemData.ProtoReflect.Descriptor instead. +func (*PlayerQuestData_QuestItemData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{21, 0} +} + +func (x *PlayerQuestData_QuestItemData) GetQuestId() uint64 { + if x != nil && x.QuestId != nil { + return *x.QuestId + } + return 0 +} + +func (x *PlayerQuestData_QuestItemData) GetQuestNormalPointsEarned() int32 { + if x != nil && x.QuestNormalPointsEarned != nil { + return *x.QuestNormalPointsEarned + } + return 0 +} + +func (x *PlayerQuestData_QuestItemData) GetQuestBonusPointsEarned() int32 { + if x != nil && x.QuestBonusPointsEarned != nil { + return *x.QuestBonusPointsEarned + } + return 0 +} + +type CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + RegionId *int32 `protobuf:"varint,2,opt,name=region_id,json=regionId" json:"region_id,omitempty"` + RegionR *float32 `protobuf:"fixed32,3,opt,name=region_r,json=regionR" json:"region_r,omitempty"` + Distance *float32 `protobuf:"fixed32,4,opt,name=distance" json:"distance,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[138] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{30, 0} +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) GetRegionId() int32 { + if x != nil && x.RegionId != nil { + return *x.RegionId + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) GetRegionR() float32 { + if x != nil && x.RegionR != nil { + return *x.RegionR + } + return 0 +} + +func (x *CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note) GetDistance() float32 { + if x != nil && x.Distance != nil { + return *x.Distance + } + return 0 +} + +type CDataGCCStrike15V2_TournamentMatchDraft_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mapid *int32 `protobuf:"varint,1,opt,name=mapid" json:"mapid,omitempty"` + TeamIdCt *int32 `protobuf:"varint,2,opt,name=team_id_ct,json=teamIdCt" json:"team_id_ct,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft_Entry) Reset() { + *x = CDataGCCStrike15V2_TournamentMatchDraft_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentMatchDraft_Entry) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[139] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentMatchDraft_Entry.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentMatchDraft_Entry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{31, 0} +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft_Entry) GetMapid() int32 { + if x != nil && x.Mapid != nil { + return *x.Mapid + } + return 0 +} + +func (x *CDataGCCStrike15V2_TournamentMatchDraft_Entry) GetTeamIdCt() int32 { + if x != nil && x.TeamIdCt != nil { + return *x.TeamIdCt + } + return 0 +} + +type CPreMatchInfoData_TeamStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MatchInfoIdxtxt *int32 `protobuf:"varint,1,opt,name=match_info_idxtxt,json=matchInfoIdxtxt" json:"match_info_idxtxt,omitempty"` + MatchInfoTxt *string `protobuf:"bytes,2,opt,name=match_info_txt,json=matchInfoTxt" json:"match_info_txt,omitempty"` + MatchInfoTeams []string `protobuf:"bytes,3,rep,name=match_info_teams,json=matchInfoTeams" json:"match_info_teams,omitempty"` +} + +func (x *CPreMatchInfoData_TeamStats) Reset() { + *x = CPreMatchInfoData_TeamStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CPreMatchInfoData_TeamStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CPreMatchInfoData_TeamStats) ProtoMessage() {} + +func (x *CPreMatchInfoData_TeamStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[140] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CPreMatchInfoData_TeamStats.ProtoReflect.Descriptor instead. +func (*CPreMatchInfoData_TeamStats) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{32, 0} +} + +func (x *CPreMatchInfoData_TeamStats) GetMatchInfoIdxtxt() int32 { + if x != nil && x.MatchInfoIdxtxt != nil { + return *x.MatchInfoIdxtxt + } + return 0 +} + +func (x *CPreMatchInfoData_TeamStats) GetMatchInfoTxt() string { + if x != nil && x.MatchInfoTxt != nil { + return *x.MatchInfoTxt + } + return "" +} + +func (x *CPreMatchInfoData_TeamStats) GetMatchInfoTeams() []string { + if x != nil { + return x.MatchInfoTeams + } + return nil +} + +type CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountMvp *uint32 `protobuf:"varint,1,opt,name=account_mvp,json=accountMvp" json:"account_mvp,omitempty"` +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) Reset() { + *x = CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[141] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{36, 0} +} + +func (x *CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo) GetAccountMvp() uint32 { + if x != nil && x.AccountMvp != nil { + return *x.AccountMvp + } + return 0 +} + +type CMsgGCCStrike15V2_AccountPrivacySettings_Setting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SettingType *uint32 `protobuf:"varint,1,opt,name=setting_type,json=settingType" json:"setting_type,omitempty"` + SettingValue *uint32 `protobuf:"varint,2,opt,name=setting_value,json=settingValue" json:"setting_value,omitempty"` +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings_Setting) Reset() { + *x = CMsgGCCStrike15V2_AccountPrivacySettings_Setting{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings_Setting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_AccountPrivacySettings_Setting) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings_Setting) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[142] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_AccountPrivacySettings_Setting.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_AccountPrivacySettings_Setting) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{39, 0} +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings_Setting) GetSettingType() uint32 { + if x != nil && x.SettingType != nil { + return *x.SettingType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_AccountPrivacySettings_Setting) GetSettingValue() uint32 { + if x != nil && x.SettingValue != nil { + return *x.SettingValue + } + return 0 +} + +type CMsgGCCStrike15_ClientDeepStats_DeepStatsRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Begin *uint32 `protobuf:"varint,1,opt,name=begin" json:"begin,omitempty"` + End *uint32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + Frozen *bool `protobuf:"varint,3,opt,name=frozen" json:"frozen,omitempty"` +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) Reset() { + *x = CMsgGCCStrike15_ClientDeepStats_DeepStatsRange{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) ProtoMessage() {} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[143] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15_ClientDeepStats_DeepStatsRange.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{55, 0} +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) GetBegin() uint32 { + if x != nil && x.Begin != nil { + return *x.Begin + } + return 0 +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) GetEnd() uint32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsRange) GetFrozen() bool { + if x != nil && x.Frozen != nil { + return *x.Frozen + } + return false +} + +type CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *DeepPlayerStatsEntry `protobuf:"bytes,1,opt,name=player" json:"player,omitempty"` + Events []*DeepPlayerMatchEvent `protobuf:"bytes,2,rep,name=events" json:"events,omitempty"` +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) Reset() { + *x = CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) ProtoMessage() {} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[144] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{55, 1} +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) GetPlayer() *DeepPlayerStatsEntry { + if x != nil { + return x.Player + } + return nil +} + +func (x *CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch) GetEvents() []*DeepPlayerMatchEvent { + if x != nil { + return x.Events + } + return nil +} + +type CEconItemPreviewDataBlock_Sticker struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *uint32 `protobuf:"varint,1,opt,name=slot" json:"slot,omitempty"` + StickerId *uint32 `protobuf:"varint,2,opt,name=sticker_id,json=stickerId" json:"sticker_id,omitempty"` + Wear *float32 `protobuf:"fixed32,3,opt,name=wear" json:"wear,omitempty"` + Scale *float32 `protobuf:"fixed32,4,opt,name=scale" json:"scale,omitempty"` + Rotation *float32 `protobuf:"fixed32,5,opt,name=rotation" json:"rotation,omitempty"` + TintId *uint32 `protobuf:"varint,6,opt,name=tint_id,json=tintId" json:"tint_id,omitempty"` +} + +func (x *CEconItemPreviewDataBlock_Sticker) Reset() { + *x = CEconItemPreviewDataBlock_Sticker{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEconItemPreviewDataBlock_Sticker) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEconItemPreviewDataBlock_Sticker) ProtoMessage() {} + +func (x *CEconItemPreviewDataBlock_Sticker) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[145] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEconItemPreviewDataBlock_Sticker.ProtoReflect.Descriptor instead. +func (*CEconItemPreviewDataBlock_Sticker) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{66, 0} +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetSlot() uint32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return 0 +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetStickerId() uint32 { + if x != nil && x.StickerId != nil { + return *x.StickerId + } + return 0 +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetWear() float32 { + if x != nil && x.Wear != nil { + return *x.Wear + } + return 0 +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetRotation() float32 { + if x != nil && x.Rotation != nil { + return *x.Rotation + } + return 0 +} + +func (x *CEconItemPreviewDataBlock_Sticker) GetTintId() uint32 { + if x != nil && x.TintId != nil { + return *x.TintId + } + return 0 +} + +type CDataGCCStrike15V2_TournamentGroup_Picks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pickids []int32 `protobuf:"varint,1,rep,name=pickids" json:"pickids,omitempty"` +} + +func (x *CDataGCCStrike15V2_TournamentGroup_Picks) Reset() { + *x = CDataGCCStrike15V2_TournamentGroup_Picks{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDataGCCStrike15V2_TournamentGroup_Picks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDataGCCStrike15V2_TournamentGroup_Picks) ProtoMessage() {} + +func (x *CDataGCCStrike15V2_TournamentGroup_Picks) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[146] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDataGCCStrike15V2_TournamentGroup_Picks.ProtoReflect.Descriptor instead. +func (*CDataGCCStrike15V2_TournamentGroup_Picks) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{77, 0} +} + +func (x *CDataGCCStrike15V2_TournamentGroup_Picks) GetPickids() []int32 { + if x != nil { + return x.Pickids + } + return nil +} + +type CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sectionid *int32 `protobuf:"varint,1,opt,name=sectionid" json:"sectionid,omitempty"` + Groupid *int32 `protobuf:"varint,2,opt,name=groupid" json:"groupid,omitempty"` + Index *int32 `protobuf:"varint,3,opt,name=index" json:"index,omitempty"` + Teamid *int32 `protobuf:"varint,4,opt,name=teamid" json:"teamid,omitempty"` + Itemid *uint64 `protobuf:"varint,5,opt,name=itemid" json:"itemid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) Reset() { + *x = CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[147] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{82, 0} +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) GetSectionid() int32 { + if x != nil && x.Sectionid != nil { + return *x.Sectionid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) GetGroupid() int32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) GetTeamid() int32 { + if x != nil && x.Teamid != nil { + return *x.Teamid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick) GetItemid() uint64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +type CMsgGCCStrike15V2_Fantasy_FantasySlot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Pick *int32 `protobuf:"varint,2,opt,name=pick" json:"pick,omitempty"` + Itemid *uint64 `protobuf:"varint,3,opt,name=itemid" json:"itemid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) Reset() { + *x = CMsgGCCStrike15V2_Fantasy_FantasySlot{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Fantasy_FantasySlot) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[148] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Fantasy_FantasySlot.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Fantasy_FantasySlot) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{83, 0} +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) GetPick() int32 { + if x != nil && x.Pick != nil { + return *x.Pick + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasySlot) GetItemid() uint64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +type CMsgGCCStrike15V2_Fantasy_FantasyTeam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sectionid *int32 `protobuf:"varint,1,opt,name=sectionid" json:"sectionid,omitempty"` + Slots []*CMsgGCCStrike15V2_Fantasy_FantasySlot `protobuf:"bytes,2,rep,name=slots" json:"slots,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasyTeam) Reset() { + *x = CMsgGCCStrike15V2_Fantasy_FantasyTeam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasyTeam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Fantasy_FantasyTeam) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasyTeam) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[149] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Fantasy_FantasyTeam.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Fantasy_FantasyTeam) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{83, 1} +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasyTeam) GetSectionid() int32 { + if x != nil && x.Sectionid != nil { + return *x.Sectionid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Fantasy_FantasyTeam) GetSlots() []*CMsgGCCStrike15V2_Fantasy_FantasySlot { + if x != nil { + return x.Slots + } + return nil +} + +type CMsgLegacySource1ClientWelcome_Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Latitude *float32 `protobuf:"fixed32,1,opt,name=latitude" json:"latitude,omitempty"` + Longitude *float32 `protobuf:"fixed32,2,opt,name=longitude" json:"longitude,omitempty"` + Country *string `protobuf:"bytes,3,opt,name=country" json:"country,omitempty"` +} + +func (x *CMsgLegacySource1ClientWelcome_Location) Reset() { + *x = CMsgLegacySource1ClientWelcome_Location{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgLegacySource1ClientWelcome_Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgLegacySource1ClientWelcome_Location) ProtoMessage() {} + +func (x *CMsgLegacySource1ClientWelcome_Location) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[150] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgLegacySource1ClientWelcome_Location.ProtoReflect.Descriptor instead. +func (*CMsgLegacySource1ClientWelcome_Location) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{84, 0} +} + +func (x *CMsgLegacySource1ClientWelcome_Location) GetLatitude() float32 { + if x != nil && x.Latitude != nil { + return *x.Latitude + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome_Location) GetLongitude() float32 { + if x != nil && x.Longitude != nil { + return *x.Longitude + } + return 0 +} + +func (x *CMsgLegacySource1ClientWelcome_Location) GetCountry() string { + if x != nil && x.Country != nil { + return *x.Country + } + return "" +} + +type CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Gifts *uint32 `protobuf:"varint,2,opt,name=gifts" json:"gifts,omitempty"` +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) Reset() { + *x = CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[151] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{89, 0} +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry) GetGifts() uint32 { + if x != nil && x.Gifts != nil { + return *x.Gifts + } + return 0 +} + +type CMsgGCCStrike15V2_Party_SearchResults_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Grp *uint32 `protobuf:"varint,2,opt,name=grp" json:"grp,omitempty"` + GameType *uint32 `protobuf:"varint,3,opt,name=game_type,json=gameType" json:"game_type,omitempty"` + Apr *uint32 `protobuf:"varint,4,opt,name=apr" json:"apr,omitempty"` + Ark *uint32 `protobuf:"varint,5,opt,name=ark" json:"ark,omitempty"` + Loc *uint32 `protobuf:"varint,6,opt,name=loc" json:"loc,omitempty"` + Accountid *uint32 `protobuf:"varint,7,opt,name=accountid" json:"accountid,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) Reset() { + *x = CMsgGCCStrike15V2_Party_SearchResults_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Party_SearchResults_Entry) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[152] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Party_SearchResults_Entry.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Party_SearchResults_Entry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{115, 0} +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetGrp() uint32 { + if x != nil && x.Grp != nil { + return *x.Grp + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetGameType() uint32 { + if x != nil && x.GameType != nil { + return *x.GameType + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetApr() uint32 { + if x != nil && x.Apr != nil { + return *x.Apr + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetArk() uint32 { + if x != nil && x.Ark != nil { + return *x.Ark + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetLoc() uint32 { + if x != nil && x.Loc != nil { + return *x.Loc + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Party_SearchResults_Entry) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +type CMsgGCCStrike15V2_Account_RequestCoPlays_Player struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Rtcoplay *uint32 `protobuf:"varint,2,opt,name=rtcoplay" json:"rtcoplay,omitempty"` + Online *bool `protobuf:"varint,3,opt,name=online" json:"online,omitempty"` +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) Reset() { + *x = CMsgGCCStrike15V2_Account_RequestCoPlays_Player{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_Account_RequestCoPlays_Player) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[153] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_Account_RequestCoPlays_Player.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_Account_RequestCoPlays_Player) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{117, 0} +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) GetRtcoplay() uint32 { + if x != nil && x.Rtcoplay != nil { + return *x.Rtcoplay + } + return 0 +} + +func (x *CMsgGCCStrike15V2_Account_RequestCoPlays_Player) GetOnline() bool { + if x != nil && x.Online != nil { + return *x.Online + } + return false +} + +type CMsgGCCStrike15V2_ClientPartyWarning_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Accountid *uint32 `protobuf:"varint,1,opt,name=accountid" json:"accountid,omitempty"` + Warntype *uint32 `protobuf:"varint,2,opt,name=warntype" json:"warntype,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning_Entry) Reset() { + *x = CMsgGCCStrike15V2_ClientPartyWarning_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPartyWarning_Entry) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[154] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPartyWarning_Entry.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPartyWarning_Entry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{124, 0} +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning_Entry) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPartyWarning_Entry) GetWarntype() uint32 { + if x != nil && x.Warntype != nil { + return *x.Warntype + } + return 0 +} + +type CMsgGCCStrike15V2_ClientPerfReport_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Perfcounter *uint32 `protobuf:"varint,1,opt,name=perfcounter" json:"perfcounter,omitempty"` + Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"` + Reference []byte `protobuf:"bytes,3,opt,name=reference" json:"reference,omitempty"` + Actual []byte `protobuf:"bytes,4,opt,name=actual" json:"actual,omitempty"` + Sourceid *uint32 `protobuf:"varint,5,opt,name=sourceid" json:"sourceid,omitempty"` + Status *uint32 `protobuf:"varint,6,opt,name=status" json:"status,omitempty"` +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) Reset() { + *x = CMsgGCCStrike15V2_ClientPerfReport_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCStrike15V2_ClientPerfReport_Entry) ProtoMessage() {} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_gcmessages_proto_msgTypes[155] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCStrike15V2_ClientPerfReport_Entry.ProtoReflect.Descriptor instead. +func (*CMsgGCCStrike15V2_ClientPerfReport_Entry) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_gcmessages_proto_rawDescGZIP(), []int{128, 0} +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetPerfcounter() uint32 { + if x != nil && x.Perfcounter != nil { + return *x.Perfcounter + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetReference() []byte { + if x != nil { + return x.Reference + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetActual() []byte { + if x != nil { + return x.Actual + } + return nil +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetSourceid() uint32 { + if x != nil && x.Sourceid != nil { + return *x.Sourceid + } + return 0 +} + +func (x *CMsgGCCStrike15V2_ClientPerfReport_Entry) GetStatus() uint32 { + if x != nil && x.Status != nil { + return *x.Status + } + return 0 +} + +var File_s2_cstrike15_gcmessages_proto protoreflect.FileDescriptor + +var file_s2_cstrike15_gcmessages_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x73, 0x32, 0x2f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x67, + 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x16, 0x73, 0x32, 0x2f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1a, 0x73, 0x32, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x63, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x73, 0x32, 0x2f, 0x67, 0x63, 0x73, 0x64, 0x6b, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x0e, 0x47, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x4a, 0x0a, + 0x0e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x12, + 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x43, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x8b, 0x01, 0x0a, 0x17, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x61, 0x76, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x76, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x22, 0xfd, 0x01, 0x0a, 0x10, 0x54, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x62, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x22, 0xd5, 0x01, 0x0a, 0x0e, 0x54, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, + 0x6d, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x1b, + 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, + 0xd7, 0x02, 0x0a, 0x0f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x24, 0x0a, + 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xaa, 0x06, 0x0a, 0x10, 0x47, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2b, 0x0a, 0x11, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, + 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, + 0x76, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x41, 0x76, 0x67, 0x12, 0x6f, 0x0a, 0x11, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x69, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x34, 0x0a, 0x16, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x69, 0x64, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x41, 0x70, 0x70, 0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x14, 0x74, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, + 0x72, 0x76, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x5f, 0x63, 0x75, 0x72, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x43, 0x75, 0x72, 0x12, 0x2e, + 0x0a, 0x13, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x74, 0x69, + 0x6d, 0x65, 0x33, 0x32, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, + 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x69, 0x64, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x41, 0x70, 0x70, 0x69, 0x64, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x22, 0x4b, 0x0a, 0x1f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x64, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x64, + 0x6b, 0x65, 0x79, 0x22, 0x4b, 0x0a, 0x1b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x69, 0x64, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x22, 0xbb, 0x01, 0x0a, 0x1b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x6d, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x6d, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x5e, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc1, + 0x01, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x77, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x77, 0x69, 0x6e, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x76, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x22, 0x7d, 0x0a, 0x16, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x6d, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6d, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x6d, 0x64, 0x5f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6d, 0x64, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6d, 0x64, 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6d, 0x64, 0x4c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x64, 0x61, + 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x44, 0x65, 0x66, 0x69, 0x64, 0x78, 0x12, 0x3f, 0x0a, 0x1c, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, + 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x69, 0x64, 0x78, 0x22, 0x6d, 0x0a, 0x0f, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x75, + 0x70, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x43, 0x74, 0x12, 0x1a, 0x0a, 0x09, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x64, 0x54, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xcf, 0x05, 0x0a, + 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6c, 0x74, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1e, 0x0a, 0x0b, 0x74, 0x76, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x76, 0x55, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x20, 0x0a, 0x0c, 0x74, 0x76, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x76, 0x57, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x76, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x76, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x74, 0x76, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x74, 0x76, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x74, 0x76, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x76, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x76, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, + 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x76, 0x5f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x76, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, + 0x74, 0x76, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x76, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x6c, 0x6f, + 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x76, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x76, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x74, 0x76, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x76, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, + 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, + 0x12, 0x28, 0x0a, 0x10, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x76, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x76, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, + 0x0a, 0x10, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x71, + 0x0a, 0x0d, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, + 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x61, 0x12, 0x0c, 0x0a, + 0x01, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x62, 0x12, 0x0c, 0x0a, 0x01, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x63, 0x12, 0x0c, 0x0a, 0x01, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x69, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x7f, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x73, 0x67, 0x6f, 0x53, 0x74, 0x65, + 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x63, 0x73, 0x67, 0x6f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x65, 0x63, + 0x73, 0x67, 0x6f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x75, 0x73, 0x65, 0x72, 0x73, 0x74, 0x61, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x0e, 0x58, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x78, 0x70, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x78, 0x70, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x78, 0x70, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x78, 0x70, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, + 0x6d, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, + 0x74, 0x65, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x44, 0x65, 0x66, 0x69, 0x64, 0x78, 0x12, 0x31, 0x0a, + 0x15, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x69, 0x74, + 0x65, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0xe9, 0x03, 0x0a, 0x14, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x76, 0x0a, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x69, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x2b, 0x0a, + 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x1a, 0x8f, 0x01, 0x0a, 0x0e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x5f, 0x0a, 0x07, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x8f, 0x06, 0x0a, + 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x2c, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x70, + 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x63, 0x0a, 0x10, 0x78, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x58, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x78, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x6d, 0x5f, 0x67, 0x61, 0x6d, + 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x61, 0x0a, 0x0c, 0x69, 0x74, 0x65, 0x6d, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x45, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0b, + 0x69, 0x74, 0x65, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, + 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, + 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x70, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x74, 0x61, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x43, 0x73, 0x67, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x74, + 0x61, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0xa2, 0x01, 0x0a, 0x0d, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x61, + 0x72, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6e, + 0x75, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x6e, + 0x75, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x22, 0x95, + 0x08, 0x0a, 0x14, 0x44, 0x65, 0x65, 0x70, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x77, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x57, 0x6f, 0x6e, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x4c, 0x6f, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x44, 0x65, 0x61, 0x74, 0x68, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6d, 0x76, 0x70, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4d, 0x76, 0x70, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x73, 0x68, 0x6f, + 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, + 0x65, 0x61, 0x64, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x65, 0x6d, + 0x79, 0x5f, 0x32, 0x6b, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x32, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x33, + 0x6b, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x33, + 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x34, 0x6b, 0x73, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x34, 0x6b, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, + 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, + 0x77, 0x69, 0x6e, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, 0x6e, 0x67, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x57, 0x69, 0x6e, 0x73, + 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x31, 0x76, 0x31, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x13, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x31, 0x76, 0x31, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x31, 0x76, 0x31, 0x5f, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x12, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x31, + 0x76, 0x31, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x31, 0x76, 0x32, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x31, 0x76, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x6e, + 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x31, 0x76, 0x32, 0x5f, 0x77, 0x69, + 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x31, 0x76, 0x32, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x75, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x75, 0x74, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, + 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x05, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x22, 0xc8, 0x03, 0x0a, 0x14, 0x44, 0x65, 0x65, 0x70, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x62, 0x50, 0x6c, 0x61, 0x79, 0x69, + 0x6e, 0x67, 0x43, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, + 0x5f, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, + 0x73, 0x58, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x5f, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x59, + 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x5a, 0x12, 0x1f, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x64, 0x78, 0x12, + 0x1e, 0x0a, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x5f, 0x78, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x58, 0x12, + 0x1e, 0x0a, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x5f, 0x79, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x59, 0x12, + 0x1e, 0x0a, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x5a, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x64, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x22, 0xb2, 0x02, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x5f, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x66, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0c, 0x6d, + 0x6d, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6d, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x67, 0x0a, + 0x0e, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x62, 0x73, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, + 0x62, 0x73, 0x64, 0x61, 0x74, 0x61, 0x22, 0x78, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x14, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x69, 0x65, 0x77, + 0x65, 0x72, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, + 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x22, 0xf0, + 0x02, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6a, 0x0a, 0x10, + 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x0f, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, + 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, + 0x69, 0x6d, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x76, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x76, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x49, + 0x64, 0x22, 0x3e, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x62, 0x61, 0x6e, 0x64, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, + 0x6e, 0x22, 0xfb, 0x02, 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x63, 0x0a, 0x0f, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, + 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x65, + 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x69, 0x6e, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, + 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0xf1, 0x09, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x1b, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x18, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x47, 0x0a, 0x20, 0x6f, 0x6e, 0x67, 0x6f, + 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x1d, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x5e, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x66, 0x61, 0x69, 0x6c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, 0x66, 0x61, 0x69, 0x6c, 0x70, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x18, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x66, 0x61, 0x69, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x1a, 0x66, 0x61, 0x69, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x76, 0x61, 0x63, 0x62, 0x61, 0x6e, 0x6e, 0x65, + 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x1a, 0x76, 0x61, 0x63, + 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6c, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, + 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x73, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, + 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x1d, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x47, + 0x72, 0x65, 0x65, 0x6e, 0x12, 0x3d, 0x0a, 0x1a, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, + 0x69, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x76, 0x73, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, 0x76, 0x73, 0x6e, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, + 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x18, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x6e, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x22, 0xf0, 0x06, 0x0a, 0x28, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x72, 0x61, 0x66, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x30, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x30, 0x12, 0x1a, 0x0a, + 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x70, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, + 0x61, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x70, 0x73, + 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x6d, 0x61, 0x70, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x22, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x74, 0x6f, 0x31, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x56, 0x65, + 0x74, 0x6f, 0x31, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x5f, 0x70, + 0x69, 0x63, 0x6b, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x6e, 0x12, 0x71, 0x0a, 0x06, 0x64, 0x72, 0x61, 0x66, 0x74, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x72, 0x61, 0x66, 0x74, 0x2e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6f, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x30, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x69, 0x64, 0x30, 0x12, 0x20, 0x0a, 0x0c, + 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x69, 0x64, 0x31, 0x12, 0x20, + 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x69, 0x64, 0x32, + 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x33, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x69, + 0x64, 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x69, 0x64, + 0x5f, 0x34, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x69, 0x64, 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, + 0x69, 0x64, 0x5f, 0x35, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, + 0x4d, 0x61, 0x70, 0x69, 0x64, 0x35, 0x12, 0x2c, 0x0a, 0x12, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x11, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x10, 0x76, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x53, 0x69, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x50, 0x68, + 0x61, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x68, 0x61, 0x73, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x76, + 0x6f, 0x74, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, + 0x11, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x76, 0x6f, 0x74, 0x65, 0x50, 0x68, + 0x61, 0x73, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x3b, 0x0a, 0x05, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x65, 0x61, 0x6d, + 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x64, 0x43, 0x74, 0x22, 0xa3, 0x03, 0x0a, 0x11, 0x43, 0x50, 0x72, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x50, 0x63, 0x74, 0x12, 0x69, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, + 0x12, 0x5c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x50, 0x72, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, + 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x77, 0x69, + 0x6e, 0x73, 0x1a, 0x87, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x69, + 0x64, 0x78, 0x74, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x78, 0x74, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0e, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x78, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x54, + 0x78, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x22, 0x85, 0x08, 0x0a, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, + 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, + 0x79, 0x50, 0x75, 0x62, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, + 0x73, 0x12, 0x56, 0x0a, 0x09, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x76, 0x5f, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x76, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x65, 0x0a, 0x10, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x10, + 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, + 0x6d, 0x52, 0x0f, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, + 0x6d, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x1b, 0x74, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x76, 0x5f, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x74, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, + 0x64, 0x12, 0x62, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x50, 0x72, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x76, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x22, 0xa3, 0x07, 0x0a, 0x37, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x7b, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x11, 0x67, 0x63, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x07, + 0x74, 0x76, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x48, 0x6c, 0x74, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x76, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x14, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x18, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x64, 0x65, 0x66, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x44, 0x65, 0x66, 0x49, 0x64, 0x78, + 0x12, 0x33, 0x0a, 0x16, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x13, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x74, 0x74, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x67, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x33, 0x0a, 0x15, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x14, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xf4, 0x02, 0x0a, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x64, 0x70, 0x49, 0x70, 0x12, 0x26, 0x0a, + 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x64, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x64, + 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x7b, 0x0a, 0x0b, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0xf0, 0x0a, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x7b, 0x0a, 0x0b, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, + 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, + 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x6b, + 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x6d, + 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0e, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x48, 0x65, 0x61, 0x64, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x33, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x33, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, 0x34, 0x6b, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x34, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x5f, 0x35, 0x6b, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, + 0x65, 0x6d, 0x79, 0x35, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x76, 0x70, 0x73, 0x18, 0x15, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x6d, 0x76, 0x70, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x76, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x76, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6e, 0x6b, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6e, 0x6b, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x65, 0x6d, 0x79, + 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x5f, 0x61, 0x67, 0x67, 0x18, 0x19, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0d, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x41, 0x67, 0x67, 0x12, + 0x7f, 0x0a, 0x09, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x44, 0x72, + 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x28, 0x0a, 0x10, 0x62, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x74, + 0x65, 0x61, 0x6d, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x62, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, + 0x65, 0x6d, 0x79, 0x5f, 0x32, 0x6b, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x65, + 0x6e, 0x65, 0x6d, 0x79, 0x32, 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x65, 0x64, 0x12, 0x28, + 0x0a, 0x10, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, + 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, 0x2b, 0x0a, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, + 0x76, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x76, 0x70, 0x22, 0x2e, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x22, 0xa8, 0x0b, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x7d, 0x0a, 0x0c, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x0c, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x5e, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x63, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x76, 0x61, 0x63, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x12, 0x56, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x65, 0x0a, 0x0c, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x53, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x73, 0x12, 0x64, 0x0a, 0x10, 0x6d, 0x79, 0x5f, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x6d, 0x79, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x6e, 0x0a, 0x16, + 0x6d, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x13, 0x6d, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x61, 0x0a, 0x0f, + 0x6d, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, + 0x52, 0x0d, 0x6d, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, + 0x71, 0x0a, 0x17, 0x6d, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x6d, 0x79, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x5f, 0x76, 0x6f, 0x74, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x56, + 0x6f, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, + 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x5f, 0x78, 0x70, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x75, 0x72, + 0x58, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x78, 0x70, 0x5f, + 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x58, 0x70, 0x42, 0x6f, 0x6e, 0x75, 0x73, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, + 0xf8, 0x01, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x78, 0x0a, + 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x51, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x82, 0x01, 0x0a, + 0x0f, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x52, 0x0e, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, + 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x59, 0x0a, 0x33, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x32, + 0x47, 0x43, 0x42, 0x6c, 0x6f, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, + 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, + 0x22, 0xbd, 0x01, 0x0a, 0x33, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, + 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, + 0x22, 0xe1, 0x02, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, + 0x5f, 0x61, 0x69, 0x6d, 0x62, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, + 0x70, 0x74, 0x41, 0x69, 0x6d, 0x62, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, + 0x77, 0x61, 0x6c, 0x6c, 0x68, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x72, 0x70, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x68, 0x61, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x68, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x70, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x68, 0x61, 0x63, 0x6b, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x68, 0x61, 0x72, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x70, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x68, + 0x61, 0x72, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x61, + 0x62, 0x75, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x70, 0x74, 0x54, + 0x65, 0x78, 0x74, 0x61, 0x62, 0x75, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x70, 0x74, 0x5f, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x61, 0x62, 0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x72, 0x70, 0x74, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x61, 0x62, 0x75, 0x73, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x6d, 0x6f, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, + 0x44, 0x65, 0x6d, 0x6f, 0x22, 0xe1, 0x01, 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x25, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, 0x70, 0x6f, 0x6f, 0x72, 0x70, 0x65, + 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x70, 0x74, 0x50, 0x6f, 0x6f, + 0x72, 0x70, 0x65, 0x72, 0x66, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x70, 0x74, 0x5f, 0x61, 0x62, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x72, 0x70, 0x74, 0x41, 0x62, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x70, 0x74, 0x5f, 0x62, 0x61, 0x64, 0x6d, 0x6f, 0x74, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x70, 0x74, 0x42, 0x61, 0x64, 0x6d, + 0x6f, 0x74, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x70, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x62, 0x75, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, + 0x70, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x75, 0x73, 0x65, 0x12, 0x2d, + 0x0a, 0x12, 0x72, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x61, + 0x62, 0x75, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x70, 0x74, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x61, 0x62, 0x75, 0x73, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0xf4, 0x01, 0x0a, 0x27, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, + 0xb8, 0x02, 0x0a, 0x30, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x75, 0x6e, 0x63, + 0x68, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xd3, 0x03, 0x0a, 0x12, 0x57, + 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x76, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x74, 0x76, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x76, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x74, 0x76, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x76, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, + 0x76, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x76, 0x5f, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0f, 0x74, 0x76, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, + 0x6c, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, + 0x33, 0x0a, 0x16, 0x63, 0x6c, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x13, 0x63, 0x6c, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x50, 0x75, 0x62, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x70, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0xac, 0x02, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6a, + 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6a, + 0x6f, 0x69, 0x6e, 0x49, 0x70, 0x70, 0x12, 0x6b, 0x0a, 0x03, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, + 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x03, + 0x72, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6d, 0x73, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6d, 0x73, 0x67, 0x22, + 0xcc, 0x02, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x6b, 0x0a, 0x03, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x03, 0x72, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x6c, + 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4e, 0x65, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x22, 0xc0, 0x01, 0x0a, + 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x64, 0x65, 0x65, 0x6d, + 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x72, + 0x65, 0x64, 0x65, 0x65, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, + 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x22, + 0xd9, 0x02, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x73, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x58, 0x50, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, + 0x12, 0x63, 0x0a, 0x10, 0x78, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x58, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x78, 0x70, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x58, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x44, 0x65, 0x66, 0x69, 0x64, + 0x78, 0x12, 0x38, 0x0a, 0x18, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x22, 0xbd, 0x04, 0x0a, 0x1f, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x6f, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x73, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x65, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x1a, 0x50, 0x0a, 0x0e, 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x1a, 0xc2, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x65, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x57, 0x0a, 0x06, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x44, 0x65, 0x65, 0x70, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x57, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x44, + 0x65, 0x65, 0x70, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x21, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x73, 0x12, 0x71, 0x0a, 0x15, 0x77, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x13, 0x77, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, + 0xe0, 0x01, 0x0a, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x5f, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x73, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0xc7, 0x01, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x82, 0x01, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0xa6, 0x02, 0x0a, + 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x61, 0x73, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x61, 0x73, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, + 0x61, 0x73, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x70, 0x74, 0x5f, 0x61, 0x69, 0x6d, 0x62, 0x6f, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x70, 0x74, 0x41, 0x69, 0x6d, 0x62, + 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x70, 0x74, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x68, 0x61, + 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x70, 0x74, 0x57, 0x61, 0x6c, + 0x6c, 0x68, 0x61, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x68, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x70, + 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x68, 0x61, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x70, + 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x68, 0x61, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x72, 0x70, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x68, 0x61, 0x72, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x90, 0x03, 0x0a, 0x30, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, 0x73, 0x65, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, + 0x73, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x73, 0x65, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x73, 0x65, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x73, 0x65, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x75, 0x6d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x6e, 0x75, 0x6d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x63, 0x6f, 0x6e, 0x76, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6b, 0x63, 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x62, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x73, 0x65, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x73, 0x65, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x1e, + 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x76, 0x65, + 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x61, 0x73, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, + 0x73, 0x65, 0x69, 0x64, 0x22, 0x63, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x49, 0x0a, 0x23, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, + 0x61, 0x72, 0x67, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x45, 0x6e, 0x64, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x72, 0x6f, + 0x70, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x78, 0x0a, 0x14, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x22, 0xa7, 0x06, 0x0a, 0x19, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, + 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x77, 0x65, 0x61, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x77, 0x65, 0x61, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x65, 0x65, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x65, 0x65, 0x64, 0x12, + 0x2e, 0x0a, 0x12, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6b, 0x69, 0x6c, + 0x6c, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x08, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x08, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x9b, 0x01, + 0x0a, 0x07, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x77, 0x65, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x77, 0x65, 0x61, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x32, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, + 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x37, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x32, 0x47, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x41, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x44, 0x12, 0x17, 0x0a, 0x07, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x4d, 0x22, 0x9c, 0x01, 0x0a, 0x38, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x32, 0x47, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x35, 0x0a, 0x33, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x32, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4c, 0x69, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x52, + 0x0a, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x1d, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x6d, 0x0a, + 0x12, 0x77, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x77, 0x61, 0x74, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, + 0x11, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x7f, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x61, 0x6c, 0x6c, 0x22, 0x7a, 0x0a, 0x27, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, + 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x61, + 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x70, 0x69, 0x63, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x70, 0x69, + 0x63, 0x6b, 0x22, 0xa5, 0x04, 0x0a, 0x23, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x44, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x68, 0x0a, 0x05, 0x74, 0x65, 0x61, 0x6d, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x05, 0x74, 0x65, 0x61, + 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x73, 0x12, + 0x2c, 0x0a, 0x11, 0x70, 0x69, 0x63, 0x6b, 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x6e, 0x74, 0x69, 0x6c, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x69, 0x63, 0x6b, + 0x6c, 0x6f, 0x63, 0x6b, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x65, + 0x61, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x05, 0x70, + 0x69, 0x63, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x50, 0x69, 0x63, 0x6b, 0x73, + 0x52, 0x05, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x1a, 0x21, 0x0a, 0x05, 0x50, 0x69, 0x63, 0x6b, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x6b, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x70, 0x69, 0x63, 0x6b, 0x69, 0x64, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x25, 0x43, + 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x66, 0x0a, 0x06, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x22, 0xdf, 0x02, 0x0a, 0x22, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x6c, 0x0a, 0x08, 0x73, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x10, 0x74, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, + 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x74, + 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x64, + 0x0a, 0x10, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, + 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x65, 0x61, 0x6d, 0x52, 0x0f, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x65, 0x61, 0x6d, 0x73, 0x22, 0xb0, 0x03, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x73, 0x67, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x62, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x07, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x12, 0x75, 0x0a, 0x0e, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xd0, 0x01, 0x0a, 0x32, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x62, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x61, 0x74, 0x61, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x22, 0xe4, 0x02, 0x0a, 0x1e, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x91, 0x01, 0x0a, 0x16, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x69, + 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, + 0x65, 0x61, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x73, 0x1a, 0x92, 0x01, 0x0a, + 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x61, 0x6d, 0x50, + 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, + 0x6d, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, + 0x64, 0x22, 0x86, 0x03, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x67, 0x0a, 0x05, 0x74, + 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, + 0x79, 0x2e, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x05, 0x74, + 0x65, 0x61, 0x6d, 0x73, 0x1a, 0x4d, 0x0a, 0x0b, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x53, + 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x63, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, + 0x6d, 0x69, 0x64, 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x54, + 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x64, 0x12, 0x67, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x51, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x2e, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x53, + 0x6c, 0x6f, 0x74, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x22, 0x93, 0x06, 0x0a, 0x1e, 0x43, + 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x31, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x6f, 0x75, 0x74, 0x6f, 0x66, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x52, 0x19, 0x6f, 0x75, + 0x74, 0x6f, 0x66, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x1a, 0x75, 0x70, 0x74, 0x6f, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x18, 0x75, 0x70, 0x74, 0x6f, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, + 0x6e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x52, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x31, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x32, 0x12, 0x3f, + 0x0a, 0x1c, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x5f, 0x67, 0x63, 0x5f, 0x77, 0x65, 0x6c, + 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x47, 0x63, 0x57, + 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x78, 0x6e, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x74, 0x78, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x1a, 0x5e, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, + 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e, + 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x22, 0xb2, 0x02, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x38, 0x0a, 0x17, 0x74, 0x69, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x17, 0x74, 0x69, 0x6d, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x72, 0x73, + 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x73, 0x63, + 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x67, + 0x73, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x69, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x6f, + 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x6b, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xa1, + 0x01, 0x0a, 0x31, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x2c, 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x73, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xa0, 0x03, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x73, 0x4c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, + 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x69, 0x66, 0x74, 0x73, 0x5f, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x47, 0x69, 0x66, 0x74, 0x73, 0x47, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x69, 0x76, 0x65, 0x72, 0x73, 0x12, + 0x85, 0x01, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x47, 0x69, 0x66, 0x74, 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x4a, 0x0a, 0x14, 0x47, 0x69, 0x66, 0x74, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x67, 0x69, 0x66, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x67, 0x69, + 0x66, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x56, 0x6f, 0x74, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6f, 0x74, + 0x65, 0x22, 0x4a, 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x32, 0x47, + 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x97, 0x01, + 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x69, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x0d, 0x43, 0x53, 0x4f, 0x45, 0x63, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x80, 0x97, 0x22, 0x01, 0x52, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x66, 0x69, + 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x43, 0x53, + 0x4f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, + 0x0a, 0x07, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x04, 0x80, 0x97, 0x22, 0x01, 0x52, 0x07, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x64, 0x12, 0x29, + 0x0a, 0x10, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x6e, + 0x75, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xb7, 0x02, 0x0a, + 0x1b, 0x43, 0x53, 0x4f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0c, + 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x04, 0x80, 0x97, 0x22, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x65, 0x72, 0x5f, 0x75, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x69, + 0x65, 0x72, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, + 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x54, 0x69, 0x65, 0x72, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, + 0x0a, 0x12, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, + 0x12, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x65, + 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x50, 0x61, + 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x1f, 0x43, 0x53, 0x4f, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x43, 0x79, 0x63, 0x6c, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x14, 0x43, 0x53, 0x4f, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x44, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x65, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x65, + 0x6c, 0x65, 0x76, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x5f, 0x47, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x1d, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x70, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, + 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x70, 0x65, + 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x73, + 0x70, 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x2f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, + 0x73, 0x74, 0x69, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, + 0x73, 0x74, 0x69, 0x67, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x73, 0x74, 0x69, 0x67, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, + 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6f, + 0x73, 0x22, 0x43, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x52, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x56, 0x0a, 0x21, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x54, 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, + 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x47, 0x6f, 0x74, 0x76, + 0x53, 0x79, 0x6e, 0x63, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x6f, 0x74, 0x76, + 0x53, 0x79, 0x6e, 0x63, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x96, 0x03, 0x0a, 0x1b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, + 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x02, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x70, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x70, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x02, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x64, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, + 0x78, 0x44, 0x65, 0x66, 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x71, 0x75, 0x69, 0x70, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x65, 0x71, 0x75, 0x69, 0x70, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x28, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, + 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x67, 0x69, + 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x22, 0x7c, 0x0a, 0x28, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x6f, 0x6e, 0x46, 0x61, 0x74, 0x61, + 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x6a, 0x0a, 0x22, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, + 0x79, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x70, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x72, 0x6b, + 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6e, + 0x62, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x72, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x67, 0x72, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, + 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, + 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, + 0x5f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x70, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x72, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x72, 0x70, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb8, 0x02, 0x0a, 0x26, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x71, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x72, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x67, 0x72, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x61, 0x70, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x61, 0x72, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x6f, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, + 0x79, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x62, 0x62, 0x79, 0x69, 0x64, + 0x22, 0x9e, 0x02, 0x0a, 0x29, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x75, + 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x5b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, + 0x50, 0x6c, 0x61, 0x79, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x5a, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x74, 0x63, 0x6f, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x72, 0x74, 0x63, 0x6f, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x2a, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, + 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x12, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x49, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x11, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x73, 0x64, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x64, + 0x72, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x21, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x44, + 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2b, 0x0a, + 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x28, 0x0a, 0x26, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x73, 0x22, 0x76, 0x0a, 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x76, 0x65, 0x6e, 0x69, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x53, 0x0a, 0x27, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x22, 0x61, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x74, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, + 0x62, 0x62, 0x79, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6c, 0x6f, 0x62, + 0x62, 0x79, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x25, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x79, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x70, + 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x56, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x79, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x1a, 0x41, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x61, 0x76, 0x6f, 0x72, + 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x61, 0x76, + 0x6f, 0x72, 0x69, 0x74, 0x65, 0x22, 0x4d, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x2d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x61, + 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, + 0x73, 0x6f, 0x6e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x22, 0xc3, 0x02, 0x0a, 0x23, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, + 0x65, 0x72, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x6e, 0x0a, 0x07, 0x65, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xab, 0x01, 0x0a, 0x05, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x73, 0x0a, 0x0c, 0x43, 0x56, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa3, 0x06, 0x0a, + 0x29, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x69, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x31, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x31, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x32, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x33, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x61, + 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x34, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x35, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x35, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x22, 0xc7, 0x03, 0x0a, 0x2c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x75, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x77, + 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x69, + 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6b, + 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x6f, 0x77, 0x5f, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x55, 0x69, 0x12, + 0x37, 0x0a, 0x18, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6e, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x15, 0x73, 0x68, 0x6f, 0x77, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4e, 0x6f, + 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x68, 0x6f, 0x77, + 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x75, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x68, + 0x6f, 0x77, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x54, 0x72, 0x75, 0x73, + 0x74, 0x65, 0x64, 0x32, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x70, 0x72, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x65, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x22, 0x68, 0x0a, 0x2d, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x26, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, + 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6b, 0x65, 0x79, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x68, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xbc, 0x03, 0x0a, 0x2f, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x68, 0x61, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x31, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x7c, 0x0a, 0x0c, 0x65, 0x69, + 0x6e, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x45, 0x49, 0x6e, + 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3a, 0x1b, + 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x0b, 0x65, 0x69, 0x6e, + 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x78, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, + 0x75, 0x78, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x31, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x78, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x61, 0x75, 0x78, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x32, 0x2a, 0xc9, 0x26, 0x0a, 0x0a, 0x45, + 0x43, 0x73, 0x67, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x19, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x42, 0x61, 0x73, 0x65, 0x10, 0x8c, 0x47, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x10, 0x8d, 0x47, 0x12, 0x29, 0x0a, 0x24, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x8e, 0x47, + 0x12, 0x36, 0x0a, 0x31, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x8f, 0x47, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x90, 0x47, 0x12, 0x3e, + 0x0a, 0x39, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x92, 0x47, 0x12, 0x35, + 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x10, 0x93, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, + 0x47, 0x43, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x10, 0x95, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, + 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x10, 0x96, 0x47, 0x12, + 0x35, 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x62, 0x61, 0x6e, + 0x64, 0x6f, 0x6e, 0x10, 0x98, 0x47, 0x12, 0x3a, 0x0a, 0x35, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x32, 0x47, 0x43, 0x42, 0x6c, 0x6f, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, + 0x9d, 0x47, 0x12, 0x3a, 0x0a, 0x35, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x10, 0x9e, 0x47, 0x12, 0x2c, + 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x9f, 0x47, 0x12, 0x2c, 0x0a, 0x27, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0xa0, 0x47, 0x12, 0x2d, 0x0a, 0x28, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0xa1, 0x47, 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa2, 0x47, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0xa3, 0x47, 0x12, 0x3a, 0x0a, + 0x35, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa4, 0x47, 0x12, 0x28, 0x0a, 0x23, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x10, 0xa6, 0x47, 0x12, 0x35, 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x10, 0xa7, 0x47, 0x12, 0x28, 0x0a, 0x23, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x10, 0xa8, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, 0x73, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xab, 0x47, 0x12, 0x37, 0x0a, 0x32, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x43, 0x61, 0x73, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0xac, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x10, 0xad, 0x47, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, + 0x10, 0xae, 0x47, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x32, 0x47, 0x43, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x10, 0xaf, 0x47, 0x12, + 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, + 0x52, 0x75, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x10, 0xb0, + 0x47, 0x12, 0x39, 0x0a, 0x34, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, + 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, + 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xb1, 0x47, 0x12, 0x38, 0x0a, 0x33, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x32, 0x10, 0xb2, 0x47, 0x12, 0x23, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb3, 0x47, 0x12, 0x3a, 0x0a, 0x35, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x76, 0x65, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x10, 0xb4, 0x47, 0x12, 0x39, 0x0a, 0x34, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x10, + 0xb5, 0x47, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xb6, 0x47, 0x12, 0x38, 0x0a, 0x33, 0x6b, 0x5f, 0x45, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xb8, 0x47, 0x12, 0x39, 0x0a, 0x34, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x75, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x10, 0xba, 0x47, 0x12, 0x36, 0x0a, + 0x31, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0xbb, 0x47, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x69, + 0x66, 0x74, 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xbc, 0x47, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x47, 0x69, 0x66, 0x74, 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xbd, 0x47, 0x12, 0x38, 0x0a, 0x33, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xbe, 0x47, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x75, 0x72, 0x76, 0x65, + 0x79, 0x56, 0x6f, 0x74, 0x65, 0x10, 0xc0, 0x47, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, + 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x32, 0x47, 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x10, 0xc1, 0x47, 0x12, 0x39, 0x0a, 0x34, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x10, 0xc2, 0x47, 0x12, 0x3e, 0x0a, 0x39, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x10, 0xc4, 0x47, 0x12, 0x3f, 0x0a, 0x3a, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xc5, 0x47, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x10, 0xc6, 0x47, 0x12, 0x2b, 0x0a, 0x26, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x53, 0x65, 0x74, 0x4d, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xc7, 0x47, 0x12, 0x3f, 0x0a, 0x3a, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, + 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xc8, 0x47, 0x12, 0x3e, 0x0a, 0x39, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xc9, 0x47, 0x12, 0x26, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x44, 0x72, 0x61, 0x66, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xca, 0x47, 0x12, + 0x35, 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x10, 0xcb, 0x47, 0x12, 0x35, 0x0a, 0x30, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcc, 0x47, 0x12, 0x31, 0x0a, + 0x2c, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0xcd, 0x47, + 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x10, 0xcf, 0x47, 0x12, 0x22, 0x0a, 0x1d, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x5f, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x10, 0xd0, 0x47, 0x12, 0x24, 0x0a, 0x1f, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0xd1, 0x47, 0x12, 0x1d, 0x0a, + 0x18, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x10, 0xd2, 0x47, 0x12, 0x2c, 0x0a, 0x27, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x10, 0xd3, 0x47, 0x12, 0x36, 0x0a, 0x31, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x32, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x73, 0x74, 0x69, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, + 0xd4, 0x47, 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x10, + 0xd5, 0x47, 0x12, 0x2f, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x32, 0x47, 0x43, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x10, 0xd6, 0x47, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x46, 0x61, 0x6e, 0x74, + 0x61, 0x73, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xd7, 0x47, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, + 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd8, 0x47, 0x12, 0x37, 0x0a, 0x32, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x47, 0x43, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x65, + 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x10, 0xd9, 0x47, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, + 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x10, 0xda, 0x47, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x65, 0x10, 0xdb, 0x47, 0x12, 0x24, 0x0a, 0x1f, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x10, 0xdc, 0x47, + 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, + 0x68, 0x61, 0x74, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0xdd, 0x47, + 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, + 0x68, 0x61, 0x74, 0x5f, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, + 0xde, 0x47, 0x12, 0x2b, 0x0a, 0x26, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xdf, 0x47, 0x12, + 0x28, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x6f, 0x74, 0x76, 0x53, 0x79, 0x6e, 0x63, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0xe0, 0x47, 0x12, 0x2f, 0x0a, 0x2a, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xe1, 0x47, 0x12, 0x2f, 0x0a, 0x2a, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x6f, 0x6e, 0x46, 0x61, + 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe3, 0x47, 0x12, 0x29, 0x0a, 0x24, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xe4, 0x47, 0x12, 0x28, 0x0a, 0x23, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, + 0x61, 0x72, 0x74, 0x79, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xe5, 0x47, + 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x55, + 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xe6, 0x47, 0x12, 0x26, 0x0a, 0x21, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x10, 0xe7, 0x47, 0x12, 0x26, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x61, 0x72, + 0x74, 0x79, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xe8, 0x47, 0x12, 0x30, 0x0a, 0x2b, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x73, 0x10, 0xe9, 0x47, 0x12, 0x2c, + 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, + 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x43, 0x52, + 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xea, 0x47, 0x12, 0x2d, 0x0a, 0x28, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x10, 0xeb, 0x47, 0x12, 0x2e, 0x0a, 0x29, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x10, 0xec, 0x47, 0x12, 0x2e, 0x0a, 0x29, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x79, 0x4a, + 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x10, 0xed, 0x47, 0x12, 0x2c, 0x0a, 0x27, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x79, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0xee, 0x47, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, + 0x32, 0x5f, 0x53, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, + 0x74, 0x65, 0x10, 0xf0, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x65, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xf1, 0x47, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x10, 0xf2, 0x47, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, + 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, + 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xf3, 0x47, 0x12, 0x2f, 0x0a, 0x2a, + 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, + 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x53, 0x6f, 0x75, 0x76, 0x65, 0x6e, 0x69, 0x72, 0x10, 0xf4, 0x47, 0x12, 0x30, 0x0a, + 0x2b, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, + 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf5, 0x47, 0x12, + 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x10, 0xf6, 0x47, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf7, 0x47, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x4d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf9, 0x47, 0x12, + 0x26, 0x0a, 0x21, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x65, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x10, 0xfa, 0x47, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xfb, 0x47, 0x12, 0x2d, 0x0a, 0x28, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, + 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x10, 0xfc, 0x47, 0x12, 0x36, 0x0a, 0x31, 0x6b, 0x5f, + 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, + 0xfd, 0x47, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, + 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x10, 0xfe, 0x47, 0x12, 0x39, 0x0a, 0x34, 0x6b, + 0x5f, 0x45, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, + 0x5f, 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x75, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, + 0x67, 0x6d, 0x74, 0x10, 0xff, 0x47, 0x2a, 0x98, 0x01, 0x0a, 0x12, 0x45, 0x43, 0x73, 0x67, 0x6f, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x26, 0x0a, + 0x22, 0x6b, 0x5f, 0x45, 0x43, 0x73, 0x67, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x58, 0x70, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x47, 0x61, + 0x6d, 0x65, 0x73, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x43, 0x73, 0x67, 0x6f, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x57, 0x69, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x43, 0x73, 0x67, 0x6f, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x5f, 0x53, 0x75, 0x72, + 0x76, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x10, + 0x03, 0x2a, 0xa1, 0x01, 0x0a, 0x17, 0x45, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x24, 0x6b, 0x5f, 0x45, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x4f, 0x6c, 0x64, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x42, 0x65, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x10, 0x01, 0x12, 0x31, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4d, + 0x6f, 0x64, 0x65, 0x10, 0x02, 0x2a, 0xbe, 0x02, 0x0a, 0x11, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, + 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, + 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x1c, 0x0a, + 0x18, 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x6b, + 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x5f, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x12, 0x20, 0x0a, + 0x1c, 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, + 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x70, 0x65, + 0x6e, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x49, 0x6e, 0x69, 0x74, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x45, + 0x49, 0x6e, 0x69, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x08, +} + +var ( + file_s2_cstrike15_gcmessages_proto_rawDescOnce sync.Once + file_s2_cstrike15_gcmessages_proto_rawDescData = file_s2_cstrike15_gcmessages_proto_rawDesc +) + +func file_s2_cstrike15_gcmessages_proto_rawDescGZIP() []byte { + file_s2_cstrike15_gcmessages_proto_rawDescOnce.Do(func() { + file_s2_cstrike15_gcmessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_cstrike15_gcmessages_proto_rawDescData) + }) + return file_s2_cstrike15_gcmessages_proto_rawDescData +} + +var file_s2_cstrike15_gcmessages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_s2_cstrike15_gcmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 156) +var file_s2_cstrike15_gcmessages_proto_goTypes = []interface{}{ + (ECsgoGCMsg)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.ECsgoGCMsg + (ECsgoSteamUserStat)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.ECsgoSteamUserStat + (EClientReportingVersion)(0), // 2: com.github.markus_wa.demoinfocs_golang.s2.EClientReportingVersion + (EInitSystemResult)(0), // 3: com.github.markus_wa.demoinfocs_golang.s2.EInitSystemResult + (*GameServerPing)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.GameServerPing + (*DataCenterPing)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.DataCenterPing + (*DetailedSearchStatistic)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.DetailedSearchStatistic + (*TournamentPlayer)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.TournamentPlayer + (*TournamentTeam)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + (*TournamentEvent)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.TournamentEvent + (*GlobalStatistics)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.GlobalStatistics + (*OperationalStatisticDescription)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.OperationalStatisticDescription + (*OperationalStatisticElement)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.OperationalStatisticElement + (*OperationalStatisticsPacket)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.OperationalStatisticsPacket + (*PlayerRankingInfo)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.PlayerRankingInfo + (*PlayerCommendationInfo)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.PlayerCommendationInfo + (*PlayerMedalsInfo)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.PlayerMedalsInfo + (*AccountActivity)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.AccountActivity + (*TournamentMatchSetup)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.TournamentMatchSetup + (*ServerHltvInfo)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.ServerHltvInfo + (*IpAddressMask)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.IpAddressMask + (*CMsgCsgoSteamUserStatChange)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgCsgoSteamUserStatChange + (*XpProgressData)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.XpProgressData + (*MatchEndItemUpdates)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.MatchEndItemUpdates + (*ScoreLeaderboardData)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData + (*PlayerQuestData)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData + (*DeepPlayerStatsEntry)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.DeepPlayerStatsEntry + (*DeepPlayerMatchEvent)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.DeepPlayerMatchEvent + (*CMsgGC_ServerQuestUpdateData)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_ServerQuestUpdateData + (*CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm + (*CMsgGCCStrike15V2_GC2ServerReservationUpdate)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ServerReservationUpdate + (*CMsgGCCStrike15V2_MatchmakingStart)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingStart + (*CMsgGCCStrike15V2_MatchmakingStop)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingStop + (*CMsgGCCStrike15V2_MatchmakingClient2ServerPing)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingClient2ServerPing + (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate + (*CDataGCCStrike15V2_TournamentMatchDraft)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentMatchDraft + (*CPreMatchInfoData)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData + (*CMsgGCCStrike15V2_MatchmakingGC2ServerReserve)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve + (*CMsgGCCStrike15V2_MatchmakingServerReservationResponse)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerReservationResponse + (*CMsgGCCStrike15V2_MatchmakingGC2ClientReserve)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve + (*CMsgGCCStrike15V2_MatchmakingServerRoundStats)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats + (*CMsgGCCStrike15V2_MatchmakingClient2GCHello)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingClient2GCHello + (*CMsgGCCStrike15V2_MatchmakingGC2ClientHello)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello + (*CMsgGCCStrike15V2_AccountPrivacySettings)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_AccountPrivacySettings + (*CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon + (*CMsgGCCStrike15V2_ClientGCRankUpdate)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientGCRankUpdate + (*CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate + (*CMsgGCCStrike15V2_ServerNotificationForUserPenalty)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ServerNotificationForUserPenalty + (*CMsgGCCStrike15V2_ClientReportPlayer)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientReportPlayer + (*CMsgGCCStrike15V2_ClientCommendPlayer)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientCommendPlayer + (*CMsgGCCStrike15V2_ClientReportServer)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientReportServer + (*CMsgGCCStrike15V2_ClientReportResponse)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientReportResponse + (*CMsgGCCStrike15V2_ClientRequestWatchInfoFriends)(nil), // 52: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestWatchInfoFriends + (*WatchableMatchInfo)(nil), // 53: com.github.markus_wa.demoinfocs_golang.s2.WatchableMatchInfo + (*CMsgGCCStrike15V2_ClientRequestJoinFriendData)(nil), // 54: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestJoinFriendData + (*CMsgGCCStrike15V2_ClientRequestJoinServerData)(nil), // 55: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestJoinServerData + (*CMsgGCCstrike15V2_ClientRequestNewMission)(nil), // 56: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_ClientRequestNewMission + (*CMsgGCCstrike15V2_ClientRedeemMissionReward)(nil), // 57: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_ClientRedeemMissionReward + (*CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded)(nil), // 58: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded + (*CMsgGCCStrike15_ClientDeepStats)(nil), // 59: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats + (*CMsgGCCStrike15V2_WatchInfoUsers)(nil), // 60: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_WatchInfoUsers + (*CMsgGCCStrike15V2_ClientRequestPlayersProfile)(nil), // 61: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestPlayersProfile + (*CMsgGCCStrike15V2_PlayersProfile)(nil), // 62: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_PlayersProfile + (*CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate)(nil), // 63: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate + (*CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment)(nil), // 64: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment + (*CMsgGCCStrike15V2_PlayerOverwatchCaseStatus)(nil), // 65: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_PlayerOverwatchCaseStatus + (*CClientHeaderOverwatchEvidence)(nil), // 66: com.github.markus_wa.demoinfocs_golang.s2.CClientHeaderOverwatchEvidence + (*CMsgGCCStrike15V2_GC2ClientTextMsg)(nil), // 67: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientTextMsg + (*CMsgGCCStrike15V2_Client2GCTextMsg)(nil), // 68: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCTextMsg + (*CMsgGCCStrike15V2_MatchEndRunRewardDrops)(nil), // 69: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchEndRunRewardDrops + (*CEconItemPreviewDataBlock)(nil), // 70: com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + (*CMsgGCCStrike15V2_MatchEndRewardDropsNotification)(nil), // 71: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchEndRewardDropsNotification + (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest)(nil), // 72: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest + (*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse)(nil), // 73: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse + (*CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames)(nil), // 74: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames + (*CMsgGCCStrike15V2_MatchListRequestLiveGameForUser)(nil), // 75: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListRequestLiveGameForUser + (*CMsgGCCStrike15V2_MatchListRequestRecentUserGames)(nil), // 76: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListRequestRecentUserGames + (*CMsgGCCStrike15V2_MatchListRequestTournamentGames)(nil), // 77: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListRequestTournamentGames + (*CMsgGCCStrike15V2_MatchListRequestFullGameInfo)(nil), // 78: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListRequestFullGameInfo + (*CDataGCCStrike15V2_MatchInfo)(nil), // 79: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo + (*CDataGCCStrike15V2_TournamentGroupTeam)(nil), // 80: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroupTeam + (*CDataGCCStrike15V2_TournamentGroup)(nil), // 81: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup + (*CDataGCCStrike15V2_TournamentSection)(nil), // 82: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentSection + (*CDataGCCStrike15V2_TournamentInfo)(nil), // 83: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentInfo + (*CMsgGCCStrike15V2_MatchList)(nil), // 84: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchList + (*CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt)(nil), // 85: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt + (*CMsgGCCStrike15V2_Predictions)(nil), // 86: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Predictions + (*CMsgGCCStrike15V2_Fantasy)(nil), // 87: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy + (*CMsgLegacySource1ClientWelcome)(nil), // 88: com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome + (*CMsgCStrike15Welcome)(nil), // 89: com.github.markus_wa.demoinfocs_golang.s2.CMsgCStrike15Welcome + (*CMsgGCCStrike15V2_ClientVarValueNotificationInfo)(nil), // 90: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientVarValueNotificationInfo + (*CMsgGCCStrike15V2_ServerVarValueNotificationInfo)(nil), // 91: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ServerVarValueNotificationInfo + (*CMsgGCCStrike15V2_GiftsLeaderboardRequest)(nil), // 92: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GiftsLeaderboardRequest + (*CMsgGCCStrike15V2_GiftsLeaderboardResponse)(nil), // 93: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GiftsLeaderboardResponse + (*CMsgGCCStrike15V2_ClientSubmitSurveyVote)(nil), // 94: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientSubmitSurveyVote + (*CMsgGCCStrike15V2_Server2GCClientValidate)(nil), // 95: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Server2GCClientValidate + (*CMsgGCCStrike15V2_GC2ClientTournamentInfo)(nil), // 96: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientTournamentInfo + (*CSOEconCoupon)(nil), // 97: com.github.markus_wa.demoinfocs_golang.s2.CSOEconCoupon + (*CSOQuestProgress)(nil), // 98: com.github.markus_wa.demoinfocs_golang.s2.CSOQuestProgress + (*CSOAccountSeasonalOperation)(nil), // 99: com.github.markus_wa.demoinfocs_golang.s2.CSOAccountSeasonalOperation + (*CSOAccountRecurringSubscription)(nil), // 100: com.github.markus_wa.demoinfocs_golang.s2.CSOAccountRecurringSubscription + (*CSOPersonaDataPublic)(nil), // 101: com.github.markus_wa.demoinfocs_golang.s2.CSOPersonaDataPublic + (*CMsgGC_GlobalGame_Subscribe)(nil), // 102: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_GlobalGame_Subscribe + (*CMsgGC_GlobalGame_Unsubscribe)(nil), // 103: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_GlobalGame_Unsubscribe + (*CMsgGC_GlobalGame_Play)(nil), // 104: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_GlobalGame_Play + (*CMsgGCCStrike15V2_AcknowledgePenalty)(nil), // 105: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_AcknowledgePenalty + (*CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin)(nil), // 106: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin + (*CMsgGCCStrike15V2_Client2GCStreamUnlock)(nil), // 107: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCStreamUnlock + (*CMsgGCCStrike15V2_ClientToGCRequestElevate)(nil), // 108: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientToGCRequestElevate + (*CMsgGCCStrike15V2_ClientToGCChat)(nil), // 109: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientToGCChat + (*CMsgGCCStrike15V2_GCToClientChat)(nil), // 110: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GCToClientChat + (*CMsgGCCStrike15V2_ClientAuthKeyCode)(nil), // 111: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientAuthKeyCode + (*CMsgGCCStrike15_GotvSyncPacket)(nil), // 112: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_GotvSyncPacket + (*PlayerDecalDigitalSignature)(nil), // 113: com.github.markus_wa.demoinfocs_golang.s2.PlayerDecalDigitalSignature + (*CMsgGCCStrike15V2_ClientPlayerDecalSign)(nil), // 114: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPlayerDecalSign + (*CMsgGCCStrike15V2_ClientLogonFatalError)(nil), // 115: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientLogonFatalError + (*CMsgGCCStrike15V2_ClientPollState)(nil), // 116: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPollState + (*CMsgGCCStrike15V2_Party_Register)(nil), // 117: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_Register + (*CMsgGCCStrike15V2_Party_Search)(nil), // 118: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_Search + (*CMsgGCCStrike15V2_Party_SearchResults)(nil), // 119: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_SearchResults + (*CMsgGCCStrike15V2_Party_Invite)(nil), // 120: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_Invite + (*CMsgGCCStrike15V2_Account_RequestCoPlays)(nil), // 121: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Account_RequestCoPlays + (*CMsgGCCStrike15V2_ClientToGCRequestTicket)(nil), // 122: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientToGCRequestTicket + (*CMsgGCToClientSteamDatagramTicket)(nil), // 123: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCToClientSteamDatagramTicket + (*CMsgGCCStrike15V2_ClientRequestOffers)(nil), // 124: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestOffers + (*CMsgGCCStrike15V2_ClientRequestSouvenir)(nil), // 125: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestSouvenir + (*CMsgGCCStrike15V2_ClientAccountBalance)(nil), // 126: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientAccountBalance + (*CMsgGCCStrike15V2_ClientPartyJoinRelay)(nil), // 127: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPartyJoinRelay + (*CMsgGCCStrike15V2_ClientPartyWarning)(nil), // 128: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPartyWarning + (*CMsgGCCStrike15V2_SetEventFavorite)(nil), // 129: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_SetEventFavorite + (*CMsgGCCStrike15V2_GetEventFavorites_Request)(nil), // 130: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GetEventFavorites_Request + (*CMsgGCCStrike15V2_GetEventFavorites_Response)(nil), // 131: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GetEventFavorites_Response + (*CMsgGCCStrike15V2_ClientPerfReport)(nil), // 132: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPerfReport + (*CVDiagnostic)(nil), // 133: com.github.markus_wa.demoinfocs_golang.s2.CVDiagnostic + (*CMsgGCCStrike15V2_ClientReportValidation)(nil), // 134: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientReportValidation + (*CMsgGCCStrike15V2_GC2ClientRefuseSecureMode)(nil), // 135: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientRefuseSecureMode + (*CMsgGCCStrike15V2_GC2ClientRequestValidation)(nil), // 136: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientRequestValidation + (*CMsgGCCStrike15V2_GC2ClientInitSystem)(nil), // 137: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientInitSystem + (*CMsgGCCStrike15V2_GC2ClientInitSystem_Response)(nil), // 138: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientInitSystem_Response + (*ScoreLeaderboardData_Entry)(nil), // 139: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.Entry + (*ScoreLeaderboardData_AccountEntries)(nil), // 140: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.AccountEntries + (*PlayerQuestData_QuestItemData)(nil), // 141: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.QuestItemData + (*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note)(nil), // 142: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.Note + (*CDataGCCStrike15V2_TournamentMatchDraft_Entry)(nil), // 143: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentMatchDraft.Entry + (*CPreMatchInfoData_TeamStats)(nil), // 144: com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData.TeamStats + (*CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo)(nil), // 145: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats.DropInfo + (*CMsgGCCStrike15V2_AccountPrivacySettings_Setting)(nil), // 146: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_AccountPrivacySettings.Setting + (*CMsgGCCStrike15_ClientDeepStats_DeepStatsRange)(nil), // 147: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsRange + (*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch)(nil), // 148: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch + (*CEconItemPreviewDataBlock_Sticker)(nil), // 149: com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock.Sticker + (*CDataGCCStrike15V2_TournamentGroup_Picks)(nil), // 150: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup.Picks + (*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick)(nil), // 151: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Predictions.GroupMatchTeamPick + (*CMsgGCCStrike15V2_Fantasy_FantasySlot)(nil), // 152: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.FantasySlot + (*CMsgGCCStrike15V2_Fantasy_FantasyTeam)(nil), // 153: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.FantasyTeam + (*CMsgLegacySource1ClientWelcome_Location)(nil), // 154: com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome.Location + (*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry)(nil), // 155: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GiftsLeaderboardResponse.GiftLeaderboardEntry + (*CMsgGCCStrike15V2_Party_SearchResults_Entry)(nil), // 156: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_SearchResults.Entry + (*CMsgGCCStrike15V2_Account_RequestCoPlays_Player)(nil), // 157: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Account_RequestCoPlays.Player + (*CMsgGCCStrike15V2_ClientPartyWarning_Entry)(nil), // 158: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPartyWarning.Entry + (*CMsgGCCStrike15V2_ClientPerfReport_Entry)(nil), // 159: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPerfReport.Entry + (*CMsgSOCacheSubscribed)(nil), // 160: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed + (*CMsgSOCacheSubscriptionCheck)(nil), // 161: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionCheck + (*CEngineGotvSyncPacket)(nil), // 162: com.github.markus_wa.demoinfocs_golang.s2.CEngineGotvSyncPacket +} +var file_s2_cstrike15_gcmessages_proto_depIdxs = []int32{ + 7, // 0: com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam.players:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentPlayer + 6, // 1: com.github.markus_wa.demoinfocs_golang.s2.GlobalStatistics.search_statistics:type_name -> com.github.markus_wa.demoinfocs_golang.s2.DetailedSearchStatistic + 12, // 2: com.github.markus_wa.demoinfocs_golang.s2.OperationalStatisticsPacket.values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.OperationalStatisticElement + 140, // 3: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.accountentries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.AccountEntries + 139, // 4: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.matchentries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.Entry + 141, // 5: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.quest_item_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.QuestItemData + 22, // 6: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.xp_progress_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.XpProgressData + 23, // 7: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.item_updates:type_name -> com.github.markus_wa.demoinfocs_golang.s2.MatchEndItemUpdates + 21, // 8: com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData.userstatchanges:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgCsgoSteamUserStatChange + 25, // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_ServerQuestUpdateData.player_quest_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerQuestData + 24, // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_ServerQuestUpdateData.missionlbsdata:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData + 18, // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingStart.tournament_match:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentMatchSetup + 4, // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingClient2ServerPing.gameserverpings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.GameServerPing + 5, // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingClient2ServerPing.data_center_pings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.DataCenterPing + 10, // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.global_stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.GlobalStatistics + 20, // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.server_ipaddress_mask:type_name -> com.github.markus_wa.demoinfocs_golang.s2.IpAddressMask + 142, // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.notes:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.Note + 143, // 17: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentMatchDraft.drafts:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentMatchDraft.Entry + 35, // 18: com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData.draft:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentMatchDraft + 144, // 19: com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData.stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData.TeamStats + 14, // 20: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve.rankings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerRankingInfo + 20, // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve.whitelist:type_name -> com.github.markus_wa.demoinfocs_golang.s2.IpAddressMask + 9, // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve.tournament_event:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentEvent + 8, // 23: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve.tournament_teams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + 36, // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve.pre_match_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CPreMatchInfoData + 37, // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerReservationResponse.reservation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve + 19, // 26: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerReservationResponse.tv_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ServerHltvInfo + 37, // 27: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve.reservation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve + 37, // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats.reservation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve + 29, // 29: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats.confirm:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm + 145, // 30: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats.drop_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats.DropInfo + 39, // 31: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.ongoingmatch:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve + 10, // 32: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.global_stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.GlobalStatistics + 14, // 33: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.ranking:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerRankingInfo + 15, // 34: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.commendation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerCommendationInfo + 16, // 35: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.medals:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerMedalsInfo + 9, // 36: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.my_current_event:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentEvent + 8, // 37: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.my_current_event_teams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + 8, // 38: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.my_current_team:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + 9, // 39: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.my_current_event_stages:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentEvent + 17, // 40: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.activity:type_name -> com.github.markus_wa.demoinfocs_golang.s2.AccountActivity + 14, // 41: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello.rankings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerRankingInfo + 146, // 42: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_AccountPrivacySettings.settings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_AccountPrivacySettings.Setting + 39, // 43: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon.abandoned_match:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve + 14, // 44: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientGCRankUpdate.rankings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerRankingInfo + 15, // 45: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientCommendPlayer.commendation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerCommendationInfo + 5, // 46: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestWatchInfoFriends.data_center_pings:type_name -> com.github.markus_wa.demoinfocs_golang.s2.DataCenterPing + 39, // 47: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestJoinFriendData.res:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve + 39, // 48: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientRequestJoinServerData.res:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve + 22, // 49: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded.xp_progress_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.XpProgressData + 147, // 50: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.range:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsRange + 148, // 51: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.matches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch + 53, // 52: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_WatchInfoUsers.watchable_match_infos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.WatchableMatchInfo + 42, // 53: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_PlayersProfile.account_profiles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello + 38, // 54: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchEndRunRewardDrops.serverinfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerReservationResponse + 28, // 55: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchEndRunRewardDrops.match_end_quest_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGC_ServerQuestUpdateData + 149, // 56: com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock.stickers:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock.Sticker + 70, // 57: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchEndRewardDropsNotification.iteminfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + 70, // 58: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse.iteminfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + 53, // 59: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo.watchablematchinfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.WatchableMatchInfo + 40, // 60: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo.roundstats_legacy:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats + 40, // 61: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo.roundstatsall:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingServerRoundStats + 80, // 62: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup.teams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroupTeam + 150, // 63: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup.picks:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup.Picks + 81, // 64: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentSection.groups:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentGroup + 82, // 65: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentInfo.sections:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentSection + 9, // 66: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentInfo.tournament_event:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentEvent + 8, // 67: com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentInfo.tournament_teams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + 79, // 68: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchList.matches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo + 8, // 69: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchList.streams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.TournamentTeam + 83, // 70: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchList.tournamentinfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_TournamentInfo + 79, // 71: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt.matches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDataGCCStrike15_v2_MatchInfo + 151, // 72: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Predictions.group_match_team_picks:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Predictions.GroupMatchTeamPick + 153, // 73: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.teams:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.FantasyTeam + 160, // 74: com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome.outofdate_subscribed_caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed + 161, // 75: com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome.uptodate_subscribed_caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionCheck + 154, // 76: com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome.location:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgLegacySource1ClientWelcome.Location + 155, // 77: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GiftsLeaderboardResponse.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GiftsLeaderboardResponse.GiftLeaderboardEntry + 15, // 78: com.github.markus_wa.demoinfocs_golang.s2.CSOPersonaDataPublic.commendation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerCommendationInfo + 162, // 79: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_GotvSyncPacket.data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEngineGotvSyncPacket + 113, // 80: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPlayerDecalSign.data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerDecalDigitalSignature + 156, // 81: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_SearchResults.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Party_SearchResults.Entry + 157, // 82: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Account_RequestCoPlays.players:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Account_RequestCoPlays.Player + 158, // 83: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPartyWarning.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPartyWarning.Entry + 159, // 84: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPerfReport.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientPerfReport.Entry + 133, // 85: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_ClientReportValidation.diagnostics:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CVDiagnostic + 3, // 86: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_GC2ClientInitSystem_Response.einit_result:type_name -> com.github.markus_wa.demoinfocs_golang.s2.EInitSystemResult + 139, // 87: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.AccountEntries.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData.Entry + 26, // 88: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch.player:type_name -> com.github.markus_wa.demoinfocs_golang.s2.DeepPlayerStatsEntry + 27, // 89: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch.events:type_name -> com.github.markus_wa.demoinfocs_golang.s2.DeepPlayerMatchEvent + 152, // 90: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.FantasyTeam.slots:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_Fantasy.FantasySlot + 91, // [91:91] is the sub-list for method output_type + 91, // [91:91] is the sub-list for method input_type + 91, // [91:91] is the sub-list for extension type_name + 91, // [91:91] is the sub-list for extension extendee + 0, // [0:91] is the sub-list for field type_name +} + +func init() { file_s2_cstrike15_gcmessages_proto_init() } +func file_s2_cstrike15_gcmessages_proto_init() { + if File_s2_cstrike15_gcmessages_proto != nil { + return + } + file_s2_steammessages_proto_init() + file_s2_engine_gcmessages_proto_init() + file_s2_gcsdk_gcmessages_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_cstrike15_gcmessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameServerPing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataCenterPing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetailedSearchStatistic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TournamentPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TournamentTeam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TournamentEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GlobalStatistics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationalStatisticDescription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationalStatisticElement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationalStatisticsPacket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerRankingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerCommendationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerMedalsInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountActivity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TournamentMatchSetup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerHltvInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpAddressMask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgCsgoSteamUserStatChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*XpProgressData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MatchEndItemUpdates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoreLeaderboardData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerQuestData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeepPlayerStatsEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeepPlayerMatchEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGC_ServerQuestUpdateData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ServerConfirm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ServerReservationUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingClient2ServerPing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentMatchDraft); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CPreMatchInfoData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ServerReserve); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingServerReservationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ClientReserve); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingServerRoundStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingClient2GCHello); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ClientHello); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_AccountPrivacySettings); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ClientAbandon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientGCRankUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingOperator2GCBlogUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ServerNotificationForUserPenalty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientReportPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientCommendPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientReportServer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientReportResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestWatchInfoFriends); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WatchableMatchInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestJoinFriendData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestJoinServerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCstrike15V2_ClientRequestNewMission); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCstrike15V2_ClientRedeemMissionReward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15_ClientDeepStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_WatchInfoUsers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestPlayersProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_PlayersProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_PlayerOverwatchCaseUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_PlayerOverwatchCaseAssignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_PlayerOverwatchCaseStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CClientHeaderOverwatchEvidence); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientTextMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Client2GCTextMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchEndRunRewardDrops); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEconItemPreviewDataBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchEndRewardDropsNotification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Client2GCEconPreviewDataBlockResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListRequestCurrentLiveGames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListRequestLiveGameForUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListRequestRecentUserGames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListRequestTournamentGames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListRequestFullGameInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_MatchInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentGroupTeam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentSection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchListTournamentOperatorMgmt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Predictions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Fantasy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgLegacySource1ClientWelcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgCStrike15Welcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientVarValueNotificationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ServerVarValueNotificationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GiftsLeaderboardRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GiftsLeaderboardResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientSubmitSurveyVote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Server2GCClientValidate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientTournamentInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSOEconCoupon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSOQuestProgress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSOAccountSeasonalOperation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSOAccountRecurringSubscription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSOPersonaDataPublic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGC_GlobalGame_Subscribe); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGC_GlobalGame_Unsubscribe); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGC_GlobalGame_Play); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_AcknowledgePenalty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Client2GCRequestPrestigeCoin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Client2GCStreamUnlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientToGCRequestElevate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientToGCChat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GCToClientChat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientAuthKeyCode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15_GotvSyncPacket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerDecalDigitalSignature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPlayerDecalSign); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientLogonFatalError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPollState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Party_Register); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Party_Search); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Party_SearchResults); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Party_Invite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Account_RequestCoPlays); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientToGCRequestTicket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCToClientSteamDatagramTicket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestOffers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientRequestSouvenir); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientAccountBalance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPartyJoinRelay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPartyWarning); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_SetEventFavorite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GetEventFavorites_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GetEventFavorites_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPerfReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CVDiagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientReportValidation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientRefuseSecureMode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientRequestValidation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientInitSystem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GC2ClientInitSystem_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoreLeaderboardData_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoreLeaderboardData_AccountEntries); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerQuestData_QuestItemData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingGC2ClientUpdate_Note); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentMatchDraft_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CPreMatchInfoData_TeamStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_MatchmakingServerRoundStats_DropInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_AccountPrivacySettings_Setting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15_ClientDeepStats_DeepStatsRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15_ClientDeepStats_DeepStatsMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEconItemPreviewDataBlock_Sticker); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDataGCCStrike15V2_TournamentGroup_Picks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Predictions_GroupMatchTeamPick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Fantasy_FantasySlot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Fantasy_FantasyTeam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgLegacySource1ClientWelcome_Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_GiftsLeaderboardResponse_GiftLeaderboardEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Party_SearchResults_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_Account_RequestCoPlays_Player); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPartyWarning_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_gcmessages_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCStrike15V2_ClientPerfReport_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_cstrike15_gcmessages_proto_rawDesc, + NumEnums: 4, + NumMessages: 156, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_cstrike15_gcmessages_proto_goTypes, + DependencyIndexes: file_s2_cstrike15_gcmessages_proto_depIdxs, + EnumInfos: file_s2_cstrike15_gcmessages_proto_enumTypes, + MessageInfos: file_s2_cstrike15_gcmessages_proto_msgTypes, + }.Build() + File_s2_cstrike15_gcmessages_proto = out.File + file_s2_cstrike15_gcmessages_proto_rawDesc = nil + file_s2_cstrike15_gcmessages_proto_goTypes = nil + file_s2_cstrike15_gcmessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/cstrike15_usermessages.pb.go b/pkg/demoinfocs/msgs2/cstrike15_usermessages.pb.go new file mode 100644 index 00000000..34b81650 --- /dev/null +++ b/pkg/demoinfocs/msgs2/cstrike15_usermessages.pb.go @@ -0,0 +1,7822 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/cstrike15_usermessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ECstrike15UserMessages int32 + +const ( + ECstrike15UserMessages_CS_UM_VGUIMenu ECstrike15UserMessages = 301 + ECstrike15UserMessages_CS_UM_Geiger ECstrike15UserMessages = 302 + ECstrike15UserMessages_CS_UM_Train ECstrike15UserMessages = 303 + ECstrike15UserMessages_CS_UM_HudText ECstrike15UserMessages = 304 + ECstrike15UserMessages_CS_UM_SayText ECstrike15UserMessages = 305 + ECstrike15UserMessages_CS_UM_SayText2 ECstrike15UserMessages = 306 + ECstrike15UserMessages_CS_UM_TextMsg ECstrike15UserMessages = 307 + ECstrike15UserMessages_CS_UM_HudMsg ECstrike15UserMessages = 308 + ECstrike15UserMessages_CS_UM_ResetHud ECstrike15UserMessages = 309 + ECstrike15UserMessages_CS_UM_GameTitle ECstrike15UserMessages = 310 + ECstrike15UserMessages_CS_UM_Shake ECstrike15UserMessages = 312 + ECstrike15UserMessages_CS_UM_Fade ECstrike15UserMessages = 313 + ECstrike15UserMessages_CS_UM_Rumble ECstrike15UserMessages = 314 + ECstrike15UserMessages_CS_UM_CloseCaption ECstrike15UserMessages = 315 + ECstrike15UserMessages_CS_UM_CloseCaptionDirect ECstrike15UserMessages = 316 + ECstrike15UserMessages_CS_UM_SendAudio ECstrike15UserMessages = 317 + ECstrike15UserMessages_CS_UM_RawAudio ECstrike15UserMessages = 318 + ECstrike15UserMessages_CS_UM_VoiceMask ECstrike15UserMessages = 319 + ECstrike15UserMessages_CS_UM_RequestState ECstrike15UserMessages = 320 + ECstrike15UserMessages_CS_UM_Damage ECstrike15UserMessages = 321 + ECstrike15UserMessages_CS_UM_RadioText ECstrike15UserMessages = 322 + ECstrike15UserMessages_CS_UM_HintText ECstrike15UserMessages = 323 + ECstrike15UserMessages_CS_UM_KeyHintText ECstrike15UserMessages = 324 + ECstrike15UserMessages_CS_UM_ProcessSpottedEntityUpdate ECstrike15UserMessages = 325 + ECstrike15UserMessages_CS_UM_ReloadEffect ECstrike15UserMessages = 326 + ECstrike15UserMessages_CS_UM_AdjustMoney ECstrike15UserMessages = 327 + ECstrike15UserMessages_CS_UM_UpdateTeamMoney ECstrike15UserMessages = 328 + ECstrike15UserMessages_CS_UM_StopSpectatorMode ECstrike15UserMessages = 329 + ECstrike15UserMessages_CS_UM_KillCam ECstrike15UserMessages = 330 + ECstrike15UserMessages_CS_UM_DesiredTimescale ECstrike15UserMessages = 331 + ECstrike15UserMessages_CS_UM_CurrentTimescale ECstrike15UserMessages = 332 + ECstrike15UserMessages_CS_UM_AchievementEvent ECstrike15UserMessages = 333 + ECstrike15UserMessages_CS_UM_MatchEndConditions ECstrike15UserMessages = 334 + ECstrike15UserMessages_CS_UM_DisconnectToLobby ECstrike15UserMessages = 335 + ECstrike15UserMessages_CS_UM_PlayerStatsUpdate ECstrike15UserMessages = 336 + ECstrike15UserMessages_CS_UM_WarmupHasEnded ECstrike15UserMessages = 338 + ECstrike15UserMessages_CS_UM_ClientInfo ECstrike15UserMessages = 339 + ECstrike15UserMessages_CS_UM_XRankGet ECstrike15UserMessages = 340 + ECstrike15UserMessages_CS_UM_XRankUpd ECstrike15UserMessages = 341 + ECstrike15UserMessages_CS_UM_CallVoteFailed ECstrike15UserMessages = 345 + ECstrike15UserMessages_CS_UM_VoteStart ECstrike15UserMessages = 346 + ECstrike15UserMessages_CS_UM_VotePass ECstrike15UserMessages = 347 + ECstrike15UserMessages_CS_UM_VoteFailed ECstrike15UserMessages = 348 + ECstrike15UserMessages_CS_UM_VoteSetup ECstrike15UserMessages = 349 + ECstrike15UserMessages_CS_UM_ServerRankRevealAll ECstrike15UserMessages = 350 + ECstrike15UserMessages_CS_UM_SendLastKillerDamageToClient ECstrike15UserMessages = 351 + ECstrike15UserMessages_CS_UM_ServerRankUpdate ECstrike15UserMessages = 352 + ECstrike15UserMessages_CS_UM_ItemPickup ECstrike15UserMessages = 353 + ECstrike15UserMessages_CS_UM_ShowMenu ECstrike15UserMessages = 354 + ECstrike15UserMessages_CS_UM_BarTime ECstrike15UserMessages = 355 + ECstrike15UserMessages_CS_UM_AmmoDenied ECstrike15UserMessages = 356 + ECstrike15UserMessages_CS_UM_MarkAchievement ECstrike15UserMessages = 357 + ECstrike15UserMessages_CS_UM_MatchStatsUpdate ECstrike15UserMessages = 358 + ECstrike15UserMessages_CS_UM_ItemDrop ECstrike15UserMessages = 359 + ECstrike15UserMessages_CS_UM_GlowPropTurnOff ECstrike15UserMessages = 360 + ECstrike15UserMessages_CS_UM_SendPlayerItemDrops ECstrike15UserMessages = 361 + ECstrike15UserMessages_CS_UM_RoundBackupFilenames ECstrike15UserMessages = 362 + ECstrike15UserMessages_CS_UM_SendPlayerItemFound ECstrike15UserMessages = 363 + ECstrike15UserMessages_CS_UM_ReportHit ECstrike15UserMessages = 364 + ECstrike15UserMessages_CS_UM_XpUpdate ECstrike15UserMessages = 365 + ECstrike15UserMessages_CS_UM_QuestProgress ECstrike15UserMessages = 366 + ECstrike15UserMessages_CS_UM_ScoreLeaderboardData ECstrike15UserMessages = 367 + ECstrike15UserMessages_CS_UM_PlayerDecalDigitalSignature ECstrike15UserMessages = 368 + ECstrike15UserMessages_CS_UM_WeaponSound ECstrike15UserMessages = 369 + ECstrike15UserMessages_CS_UM_UpdateScreenHealthBar ECstrike15UserMessages = 370 + ECstrike15UserMessages_CS_UM_EntityOutlineHighlight ECstrike15UserMessages = 371 + ECstrike15UserMessages_CS_UM_SSUI ECstrike15UserMessages = 372 + ECstrike15UserMessages_CS_UM_SurvivalStats ECstrike15UserMessages = 373 + ECstrike15UserMessages_CS_UM_DisconnectToLobby2 ECstrike15UserMessages = 374 + ECstrike15UserMessages_CS_UM_EndOfMatchAllPlayersData ECstrike15UserMessages = 375 + ECstrike15UserMessages_CS_UM_PostRoundDamageReport ECstrike15UserMessages = 376 + ECstrike15UserMessages_CS_UM_RoundEndReportData ECstrike15UserMessages = 379 + ECstrike15UserMessages_CS_UM_CurrentRoundOdds ECstrike15UserMessages = 380 + ECstrike15UserMessages_CS_UM_DeepStats ECstrike15UserMessages = 381 + ECstrike15UserMessages_CS_UM_UtilMsg ECstrike15UserMessages = 382 + ECstrike15UserMessages_CS_UM_ShootInfo ECstrike15UserMessages = 383 +) + +// Enum value maps for ECstrike15UserMessages. +var ( + ECstrike15UserMessages_name = map[int32]string{ + 301: "CS_UM_VGUIMenu", + 302: "CS_UM_Geiger", + 303: "CS_UM_Train", + 304: "CS_UM_HudText", + 305: "CS_UM_SayText", + 306: "CS_UM_SayText2", + 307: "CS_UM_TextMsg", + 308: "CS_UM_HudMsg", + 309: "CS_UM_ResetHud", + 310: "CS_UM_GameTitle", + 312: "CS_UM_Shake", + 313: "CS_UM_Fade", + 314: "CS_UM_Rumble", + 315: "CS_UM_CloseCaption", + 316: "CS_UM_CloseCaptionDirect", + 317: "CS_UM_SendAudio", + 318: "CS_UM_RawAudio", + 319: "CS_UM_VoiceMask", + 320: "CS_UM_RequestState", + 321: "CS_UM_Damage", + 322: "CS_UM_RadioText", + 323: "CS_UM_HintText", + 324: "CS_UM_KeyHintText", + 325: "CS_UM_ProcessSpottedEntityUpdate", + 326: "CS_UM_ReloadEffect", + 327: "CS_UM_AdjustMoney", + 328: "CS_UM_UpdateTeamMoney", + 329: "CS_UM_StopSpectatorMode", + 330: "CS_UM_KillCam", + 331: "CS_UM_DesiredTimescale", + 332: "CS_UM_CurrentTimescale", + 333: "CS_UM_AchievementEvent", + 334: "CS_UM_MatchEndConditions", + 335: "CS_UM_DisconnectToLobby", + 336: "CS_UM_PlayerStatsUpdate", + 338: "CS_UM_WarmupHasEnded", + 339: "CS_UM_ClientInfo", + 340: "CS_UM_XRankGet", + 341: "CS_UM_XRankUpd", + 345: "CS_UM_CallVoteFailed", + 346: "CS_UM_VoteStart", + 347: "CS_UM_VotePass", + 348: "CS_UM_VoteFailed", + 349: "CS_UM_VoteSetup", + 350: "CS_UM_ServerRankRevealAll", + 351: "CS_UM_SendLastKillerDamageToClient", + 352: "CS_UM_ServerRankUpdate", + 353: "CS_UM_ItemPickup", + 354: "CS_UM_ShowMenu", + 355: "CS_UM_BarTime", + 356: "CS_UM_AmmoDenied", + 357: "CS_UM_MarkAchievement", + 358: "CS_UM_MatchStatsUpdate", + 359: "CS_UM_ItemDrop", + 360: "CS_UM_GlowPropTurnOff", + 361: "CS_UM_SendPlayerItemDrops", + 362: "CS_UM_RoundBackupFilenames", + 363: "CS_UM_SendPlayerItemFound", + 364: "CS_UM_ReportHit", + 365: "CS_UM_XpUpdate", + 366: "CS_UM_QuestProgress", + 367: "CS_UM_ScoreLeaderboardData", + 368: "CS_UM_PlayerDecalDigitalSignature", + 369: "CS_UM_WeaponSound", + 370: "CS_UM_UpdateScreenHealthBar", + 371: "CS_UM_EntityOutlineHighlight", + 372: "CS_UM_SSUI", + 373: "CS_UM_SurvivalStats", + 374: "CS_UM_DisconnectToLobby2", + 375: "CS_UM_EndOfMatchAllPlayersData", + 376: "CS_UM_PostRoundDamageReport", + 379: "CS_UM_RoundEndReportData", + 380: "CS_UM_CurrentRoundOdds", + 381: "CS_UM_DeepStats", + 382: "CS_UM_UtilMsg", + 383: "CS_UM_ShootInfo", + } + ECstrike15UserMessages_value = map[string]int32{ + "CS_UM_VGUIMenu": 301, + "CS_UM_Geiger": 302, + "CS_UM_Train": 303, + "CS_UM_HudText": 304, + "CS_UM_SayText": 305, + "CS_UM_SayText2": 306, + "CS_UM_TextMsg": 307, + "CS_UM_HudMsg": 308, + "CS_UM_ResetHud": 309, + "CS_UM_GameTitle": 310, + "CS_UM_Shake": 312, + "CS_UM_Fade": 313, + "CS_UM_Rumble": 314, + "CS_UM_CloseCaption": 315, + "CS_UM_CloseCaptionDirect": 316, + "CS_UM_SendAudio": 317, + "CS_UM_RawAudio": 318, + "CS_UM_VoiceMask": 319, + "CS_UM_RequestState": 320, + "CS_UM_Damage": 321, + "CS_UM_RadioText": 322, + "CS_UM_HintText": 323, + "CS_UM_KeyHintText": 324, + "CS_UM_ProcessSpottedEntityUpdate": 325, + "CS_UM_ReloadEffect": 326, + "CS_UM_AdjustMoney": 327, + "CS_UM_UpdateTeamMoney": 328, + "CS_UM_StopSpectatorMode": 329, + "CS_UM_KillCam": 330, + "CS_UM_DesiredTimescale": 331, + "CS_UM_CurrentTimescale": 332, + "CS_UM_AchievementEvent": 333, + "CS_UM_MatchEndConditions": 334, + "CS_UM_DisconnectToLobby": 335, + "CS_UM_PlayerStatsUpdate": 336, + "CS_UM_WarmupHasEnded": 338, + "CS_UM_ClientInfo": 339, + "CS_UM_XRankGet": 340, + "CS_UM_XRankUpd": 341, + "CS_UM_CallVoteFailed": 345, + "CS_UM_VoteStart": 346, + "CS_UM_VotePass": 347, + "CS_UM_VoteFailed": 348, + "CS_UM_VoteSetup": 349, + "CS_UM_ServerRankRevealAll": 350, + "CS_UM_SendLastKillerDamageToClient": 351, + "CS_UM_ServerRankUpdate": 352, + "CS_UM_ItemPickup": 353, + "CS_UM_ShowMenu": 354, + "CS_UM_BarTime": 355, + "CS_UM_AmmoDenied": 356, + "CS_UM_MarkAchievement": 357, + "CS_UM_MatchStatsUpdate": 358, + "CS_UM_ItemDrop": 359, + "CS_UM_GlowPropTurnOff": 360, + "CS_UM_SendPlayerItemDrops": 361, + "CS_UM_RoundBackupFilenames": 362, + "CS_UM_SendPlayerItemFound": 363, + "CS_UM_ReportHit": 364, + "CS_UM_XpUpdate": 365, + "CS_UM_QuestProgress": 366, + "CS_UM_ScoreLeaderboardData": 367, + "CS_UM_PlayerDecalDigitalSignature": 368, + "CS_UM_WeaponSound": 369, + "CS_UM_UpdateScreenHealthBar": 370, + "CS_UM_EntityOutlineHighlight": 371, + "CS_UM_SSUI": 372, + "CS_UM_SurvivalStats": 373, + "CS_UM_DisconnectToLobby2": 374, + "CS_UM_EndOfMatchAllPlayersData": 375, + "CS_UM_PostRoundDamageReport": 376, + "CS_UM_RoundEndReportData": 379, + "CS_UM_CurrentRoundOdds": 380, + "CS_UM_DeepStats": 381, + "CS_UM_UtilMsg": 382, + "CS_UM_ShootInfo": 383, + } +) + +func (x ECstrike15UserMessages) Enum() *ECstrike15UserMessages { + p := new(ECstrike15UserMessages) + *p = x + return p +} + +func (x ECstrike15UserMessages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ECstrike15UserMessages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_usermessages_proto_enumTypes[0].Descriptor() +} + +func (ECstrike15UserMessages) Type() protoreflect.EnumType { + return &file_s2_cstrike15_usermessages_proto_enumTypes[0] +} + +func (x ECstrike15UserMessages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ECstrike15UserMessages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ECstrike15UserMessages(num) + return nil +} + +// Deprecated: Use ECstrike15UserMessages.Descriptor instead. +func (ECstrike15UserMessages) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{0} +} + +type ECSUsrMsg_DisconnectToLobby_Action int32 + +const ( + ECSUsrMsg_DisconnectToLobby_Action_k_ECSUsrMsg_DisconnectToLobby_Action_Default ECSUsrMsg_DisconnectToLobby_Action = 0 + ECSUsrMsg_DisconnectToLobby_Action_k_ECSUsrMsg_DisconnectToLobby_Action_GoQueue ECSUsrMsg_DisconnectToLobby_Action = 1 +) + +// Enum value maps for ECSUsrMsg_DisconnectToLobby_Action. +var ( + ECSUsrMsg_DisconnectToLobby_Action_name = map[int32]string{ + 0: "k_ECSUsrMsg_DisconnectToLobby_Action_Default", + 1: "k_ECSUsrMsg_DisconnectToLobby_Action_GoQueue", + } + ECSUsrMsg_DisconnectToLobby_Action_value = map[string]int32{ + "k_ECSUsrMsg_DisconnectToLobby_Action_Default": 0, + "k_ECSUsrMsg_DisconnectToLobby_Action_GoQueue": 1, + } +) + +func (x ECSUsrMsg_DisconnectToLobby_Action) Enum() *ECSUsrMsg_DisconnectToLobby_Action { + p := new(ECSUsrMsg_DisconnectToLobby_Action) + *p = x + return p +} + +func (x ECSUsrMsg_DisconnectToLobby_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ECSUsrMsg_DisconnectToLobby_Action) Descriptor() protoreflect.EnumDescriptor { + return file_s2_cstrike15_usermessages_proto_enumTypes[1].Descriptor() +} + +func (ECSUsrMsg_DisconnectToLobby_Action) Type() protoreflect.EnumType { + return &file_s2_cstrike15_usermessages_proto_enumTypes[1] +} + +func (x ECSUsrMsg_DisconnectToLobby_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ECSUsrMsg_DisconnectToLobby_Action) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ECSUsrMsg_DisconnectToLobby_Action(num) + return nil +} + +// Deprecated: Use ECSUsrMsg_DisconnectToLobby_Action.Descriptor instead. +func (ECSUsrMsg_DisconnectToLobby_Action) EnumDescriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{1} +} + +type CCSUsrMsg_VGUIMenu struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Show *bool `protobuf:"varint,2,opt,name=show" json:"show,omitempty"` + Keys []*CCSUsrMsg_VGUIMenu_Keys `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CCSUsrMsg_VGUIMenu) Reset() { + *x = CCSUsrMsg_VGUIMenu{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VGUIMenu) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VGUIMenu) ProtoMessage() {} + +func (x *CCSUsrMsg_VGUIMenu) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VGUIMenu.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VGUIMenu) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CCSUsrMsg_VGUIMenu) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CCSUsrMsg_VGUIMenu) GetShow() bool { + if x != nil && x.Show != nil { + return *x.Show + } + return false +} + +func (x *CCSUsrMsg_VGUIMenu) GetKeys() []*CCSUsrMsg_VGUIMenu_Keys { + if x != nil { + return x.Keys + } + return nil +} + +type CCSUsrMsg_Geiger struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Range *int32 `protobuf:"varint,1,opt,name=range" json:"range,omitempty"` +} + +func (x *CCSUsrMsg_Geiger) Reset() { + *x = CCSUsrMsg_Geiger{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Geiger) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Geiger) ProtoMessage() {} + +func (x *CCSUsrMsg_Geiger) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Geiger.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Geiger) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{1} +} + +func (x *CCSUsrMsg_Geiger) GetRange() int32 { + if x != nil && x.Range != nil { + return *x.Range + } + return 0 +} + +type CCSUsrMsg_Train struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Train *int32 `protobuf:"varint,1,opt,name=train" json:"train,omitempty"` +} + +func (x *CCSUsrMsg_Train) Reset() { + *x = CCSUsrMsg_Train{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Train) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Train) ProtoMessage() {} + +func (x *CCSUsrMsg_Train) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Train.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Train) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{2} +} + +func (x *CCSUsrMsg_Train) GetTrain() int32 { + if x != nil && x.Train != nil { + return *x.Train + } + return 0 +} + +type CCSUsrMsg_HudText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` +} + +func (x *CCSUsrMsg_HudText) Reset() { + *x = CCSUsrMsg_HudText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_HudText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_HudText) ProtoMessage() {} + +func (x *CCSUsrMsg_HudText) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_HudText.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_HudText) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{3} +} + +func (x *CCSUsrMsg_HudText) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CCSUsrMsg_HudMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channel *int32 `protobuf:"varint,1,opt,name=channel" json:"channel,omitempty"` + Pos *CMsgVector2D `protobuf:"bytes,2,opt,name=pos" json:"pos,omitempty"` + Clr1 *CMsgRGBA `protobuf:"bytes,3,opt,name=clr1" json:"clr1,omitempty"` + Clr2 *CMsgRGBA `protobuf:"bytes,4,opt,name=clr2" json:"clr2,omitempty"` + Effect *int32 `protobuf:"varint,5,opt,name=effect" json:"effect,omitempty"` + FadeInTime *float32 `protobuf:"fixed32,6,opt,name=fade_in_time,json=fadeInTime" json:"fade_in_time,omitempty"` + FadeOutTime *float32 `protobuf:"fixed32,7,opt,name=fade_out_time,json=fadeOutTime" json:"fade_out_time,omitempty"` + HoldTime *float32 `protobuf:"fixed32,9,opt,name=hold_time,json=holdTime" json:"hold_time,omitempty"` + FxTime *float32 `protobuf:"fixed32,10,opt,name=fx_time,json=fxTime" json:"fx_time,omitempty"` + Text *string `protobuf:"bytes,11,opt,name=text" json:"text,omitempty"` +} + +func (x *CCSUsrMsg_HudMsg) Reset() { + *x = CCSUsrMsg_HudMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_HudMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_HudMsg) ProtoMessage() {} + +func (x *CCSUsrMsg_HudMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_HudMsg.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_HudMsg) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{4} +} + +func (x *CCSUsrMsg_HudMsg) GetChannel() int32 { + if x != nil && x.Channel != nil { + return *x.Channel + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetPos() *CMsgVector2D { + if x != nil { + return x.Pos + } + return nil +} + +func (x *CCSUsrMsg_HudMsg) GetClr1() *CMsgRGBA { + if x != nil { + return x.Clr1 + } + return nil +} + +func (x *CCSUsrMsg_HudMsg) GetClr2() *CMsgRGBA { + if x != nil { + return x.Clr2 + } + return nil +} + +func (x *CCSUsrMsg_HudMsg) GetEffect() int32 { + if x != nil && x.Effect != nil { + return *x.Effect + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetFadeInTime() float32 { + if x != nil && x.FadeInTime != nil { + return *x.FadeInTime + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetFadeOutTime() float32 { + if x != nil && x.FadeOutTime != nil { + return *x.FadeOutTime + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetHoldTime() float32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetFxTime() float32 { + if x != nil && x.FxTime != nil { + return *x.FxTime + } + return 0 +} + +func (x *CCSUsrMsg_HudMsg) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CCSUsrMsg_Shake struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command *int32 `protobuf:"varint,1,opt,name=command" json:"command,omitempty"` + LocalAmplitude *float32 `protobuf:"fixed32,2,opt,name=local_amplitude,json=localAmplitude" json:"local_amplitude,omitempty"` + Frequency *float32 `protobuf:"fixed32,3,opt,name=frequency" json:"frequency,omitempty"` + Duration *float32 `protobuf:"fixed32,4,opt,name=duration" json:"duration,omitempty"` +} + +func (x *CCSUsrMsg_Shake) Reset() { + *x = CCSUsrMsg_Shake{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Shake) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Shake) ProtoMessage() {} + +func (x *CCSUsrMsg_Shake) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Shake.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Shake) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{5} +} + +func (x *CCSUsrMsg_Shake) GetCommand() int32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *CCSUsrMsg_Shake) GetLocalAmplitude() float32 { + if x != nil && x.LocalAmplitude != nil { + return *x.LocalAmplitude + } + return 0 +} + +func (x *CCSUsrMsg_Shake) GetFrequency() float32 { + if x != nil && x.Frequency != nil { + return *x.Frequency + } + return 0 +} + +func (x *CCSUsrMsg_Shake) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +type CCSUsrMsg_Fade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Duration *int32 `protobuf:"varint,1,opt,name=duration" json:"duration,omitempty"` + HoldTime *int32 `protobuf:"varint,2,opt,name=hold_time,json=holdTime" json:"hold_time,omitempty"` + Flags *int32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` + Clr *CMsgRGBA `protobuf:"bytes,4,opt,name=clr" json:"clr,omitempty"` +} + +func (x *CCSUsrMsg_Fade) Reset() { + *x = CCSUsrMsg_Fade{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Fade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Fade) ProtoMessage() {} + +func (x *CCSUsrMsg_Fade) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Fade.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Fade) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{6} +} + +func (x *CCSUsrMsg_Fade) GetDuration() int32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CCSUsrMsg_Fade) GetHoldTime() int32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime + } + return 0 +} + +func (x *CCSUsrMsg_Fade) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CCSUsrMsg_Fade) GetClr() *CMsgRGBA { + if x != nil { + return x.Clr + } + return nil +} + +type CCSUsrMsg_Rumble struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Data *int32 `protobuf:"varint,2,opt,name=data" json:"data,omitempty"` + Flags *int32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` +} + +func (x *CCSUsrMsg_Rumble) Reset() { + *x = CCSUsrMsg_Rumble{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Rumble) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Rumble) ProtoMessage() {} + +func (x *CCSUsrMsg_Rumble) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Rumble.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Rumble) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{7} +} + +func (x *CCSUsrMsg_Rumble) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CCSUsrMsg_Rumble) GetData() int32 { + if x != nil && x.Data != nil { + return *x.Data + } + return 0 +} + +func (x *CCSUsrMsg_Rumble) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type CCSUsrMsg_CloseCaption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash *uint32 `protobuf:"varint,1,opt,name=hash" json:"hash,omitempty"` + Duration *int32 `protobuf:"varint,2,opt,name=duration" json:"duration,omitempty"` + FromPlayer *bool `protobuf:"varint,3,opt,name=from_player,json=fromPlayer" json:"from_player,omitempty"` + Cctoken *string `protobuf:"bytes,4,opt,name=cctoken" json:"cctoken,omitempty"` +} + +func (x *CCSUsrMsg_CloseCaption) Reset() { + *x = CCSUsrMsg_CloseCaption{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_CloseCaption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_CloseCaption) ProtoMessage() {} + +func (x *CCSUsrMsg_CloseCaption) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_CloseCaption.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_CloseCaption) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{8} +} + +func (x *CCSUsrMsg_CloseCaption) GetHash() uint32 { + if x != nil && x.Hash != nil { + return *x.Hash + } + return 0 +} + +func (x *CCSUsrMsg_CloseCaption) GetDuration() int32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CCSUsrMsg_CloseCaption) GetFromPlayer() bool { + if x != nil && x.FromPlayer != nil { + return *x.FromPlayer + } + return false +} + +func (x *CCSUsrMsg_CloseCaption) GetCctoken() string { + if x != nil && x.Cctoken != nil { + return *x.Cctoken + } + return "" +} + +type CCSUsrMsg_CloseCaptionDirect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash *uint32 `protobuf:"varint,1,opt,name=hash" json:"hash,omitempty"` + Duration *int32 `protobuf:"varint,2,opt,name=duration" json:"duration,omitempty"` + FromPlayer *bool `protobuf:"varint,3,opt,name=from_player,json=fromPlayer" json:"from_player,omitempty"` +} + +func (x *CCSUsrMsg_CloseCaptionDirect) Reset() { + *x = CCSUsrMsg_CloseCaptionDirect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_CloseCaptionDirect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_CloseCaptionDirect) ProtoMessage() {} + +func (x *CCSUsrMsg_CloseCaptionDirect) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_CloseCaptionDirect.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_CloseCaptionDirect) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{9} +} + +func (x *CCSUsrMsg_CloseCaptionDirect) GetHash() uint32 { + if x != nil && x.Hash != nil { + return *x.Hash + } + return 0 +} + +func (x *CCSUsrMsg_CloseCaptionDirect) GetDuration() int32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CCSUsrMsg_CloseCaptionDirect) GetFromPlayer() bool { + if x != nil && x.FromPlayer != nil { + return *x.FromPlayer + } + return false +} + +type CCSUsrMsg_SendAudio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RadioSound *string `protobuf:"bytes,1,opt,name=radio_sound,json=radioSound" json:"radio_sound,omitempty"` +} + +func (x *CCSUsrMsg_SendAudio) Reset() { + *x = CCSUsrMsg_SendAudio{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SendAudio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SendAudio) ProtoMessage() {} + +func (x *CCSUsrMsg_SendAudio) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SendAudio.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SendAudio) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{10} +} + +func (x *CCSUsrMsg_SendAudio) GetRadioSound() string { + if x != nil && x.RadioSound != nil { + return *x.RadioSound + } + return "" +} + +type CCSUsrMsg_RawAudio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pitch *int32 `protobuf:"varint,1,opt,name=pitch" json:"pitch,omitempty"` + Entidx *int32 `protobuf:"varint,2,opt,name=entidx,def=-1" json:"entidx,omitempty"` + Duration *float32 `protobuf:"fixed32,3,opt,name=duration" json:"duration,omitempty"` + VoiceFilename *string `protobuf:"bytes,4,opt,name=voice_filename,json=voiceFilename" json:"voice_filename,omitempty"` +} + +// Default values for CCSUsrMsg_RawAudio fields. +const ( + Default_CCSUsrMsg_RawAudio_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_RawAudio) Reset() { + *x = CCSUsrMsg_RawAudio{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RawAudio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RawAudio) ProtoMessage() {} + +func (x *CCSUsrMsg_RawAudio) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RawAudio.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RawAudio) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CCSUsrMsg_RawAudio) GetPitch() int32 { + if x != nil && x.Pitch != nil { + return *x.Pitch + } + return 0 +} + +func (x *CCSUsrMsg_RawAudio) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_RawAudio_Entidx +} + +func (x *CCSUsrMsg_RawAudio) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CCSUsrMsg_RawAudio) GetVoiceFilename() string { + if x != nil && x.VoiceFilename != nil { + return *x.VoiceFilename + } + return "" +} + +type CCSUsrMsg_VoiceMask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerMasks []*CCSUsrMsg_VoiceMask_PlayerMask `protobuf:"bytes,1,rep,name=player_masks,json=playerMasks" json:"player_masks,omitempty"` + PlayerModEnable *bool `protobuf:"varint,2,opt,name=player_mod_enable,json=playerModEnable" json:"player_mod_enable,omitempty"` +} + +func (x *CCSUsrMsg_VoiceMask) Reset() { + *x = CCSUsrMsg_VoiceMask{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VoiceMask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VoiceMask) ProtoMessage() {} + +func (x *CCSUsrMsg_VoiceMask) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VoiceMask.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VoiceMask) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CCSUsrMsg_VoiceMask) GetPlayerMasks() []*CCSUsrMsg_VoiceMask_PlayerMask { + if x != nil { + return x.PlayerMasks + } + return nil +} + +func (x *CCSUsrMsg_VoiceMask) GetPlayerModEnable() bool { + if x != nil && x.PlayerModEnable != nil { + return *x.PlayerModEnable + } + return false +} + +type CCSUsrMsg_Damage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *int32 `protobuf:"varint,1,opt,name=amount" json:"amount,omitempty"` + InflictorWorldPos *CMsgVector `protobuf:"bytes,2,opt,name=inflictor_world_pos,json=inflictorWorldPos" json:"inflictor_world_pos,omitempty"` + VictimEntindex *int32 `protobuf:"varint,3,opt,name=victim_entindex,json=victimEntindex,def=-1" json:"victim_entindex,omitempty"` +} + +// Default values for CCSUsrMsg_Damage fields. +const ( + Default_CCSUsrMsg_Damage_VictimEntindex = int32(-1) +) + +func (x *CCSUsrMsg_Damage) Reset() { + *x = CCSUsrMsg_Damage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_Damage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_Damage) ProtoMessage() {} + +func (x *CCSUsrMsg_Damage) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_Damage.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_Damage) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{13} +} + +func (x *CCSUsrMsg_Damage) GetAmount() int32 { + if x != nil && x.Amount != nil { + return *x.Amount + } + return 0 +} + +func (x *CCSUsrMsg_Damage) GetInflictorWorldPos() *CMsgVector { + if x != nil { + return x.InflictorWorldPos + } + return nil +} + +func (x *CCSUsrMsg_Damage) GetVictimEntindex() int32 { + if x != nil && x.VictimEntindex != nil { + return *x.VictimEntindex + } + return Default_CCSUsrMsg_Damage_VictimEntindex +} + +type CCSUsrMsg_RadioText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgDst *int32 `protobuf:"varint,1,opt,name=msg_dst,json=msgDst" json:"msg_dst,omitempty"` + Client *int32 `protobuf:"varint,2,opt,name=client,def=-1" json:"client,omitempty"` + MsgName *string `protobuf:"bytes,3,opt,name=msg_name,json=msgName" json:"msg_name,omitempty"` + Params []string `protobuf:"bytes,4,rep,name=params" json:"params,omitempty"` +} + +// Default values for CCSUsrMsg_RadioText fields. +const ( + Default_CCSUsrMsg_RadioText_Client = int32(-1) +) + +func (x *CCSUsrMsg_RadioText) Reset() { + *x = CCSUsrMsg_RadioText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RadioText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RadioText) ProtoMessage() {} + +func (x *CCSUsrMsg_RadioText) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RadioText.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RadioText) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{14} +} + +func (x *CCSUsrMsg_RadioText) GetMsgDst() int32 { + if x != nil && x.MsgDst != nil { + return *x.MsgDst + } + return 0 +} + +func (x *CCSUsrMsg_RadioText) GetClient() int32 { + if x != nil && x.Client != nil { + return *x.Client + } + return Default_CCSUsrMsg_RadioText_Client +} + +func (x *CCSUsrMsg_RadioText) GetMsgName() string { + if x != nil && x.MsgName != nil { + return *x.MsgName + } + return "" +} + +func (x *CCSUsrMsg_RadioText) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} + +type CCSUsrMsg_HintText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` +} + +func (x *CCSUsrMsg_HintText) Reset() { + *x = CCSUsrMsg_HintText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_HintText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_HintText) ProtoMessage() {} + +func (x *CCSUsrMsg_HintText) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_HintText.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_HintText) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{15} +} + +func (x *CCSUsrMsg_HintText) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type CCSUsrMsg_KeyHintText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []string `protobuf:"bytes,1,rep,name=messages" json:"messages,omitempty"` +} + +func (x *CCSUsrMsg_KeyHintText) Reset() { + *x = CCSUsrMsg_KeyHintText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_KeyHintText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_KeyHintText) ProtoMessage() {} + +func (x *CCSUsrMsg_KeyHintText) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_KeyHintText.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_KeyHintText) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{16} +} + +func (x *CCSUsrMsg_KeyHintText) GetMessages() []string { + if x != nil { + return x.Messages + } + return nil +} + +type CCSUsrMsg_ProcessSpottedEntityUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NewUpdate *bool `protobuf:"varint,1,opt,name=new_update,json=newUpdate" json:"new_update,omitempty"` + EntityUpdates []*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate `protobuf:"bytes,2,rep,name=entity_updates,json=entityUpdates" json:"entity_updates,omitempty"` +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate) Reset() { + *x = CCSUsrMsg_ProcessSpottedEntityUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ProcessSpottedEntityUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ProcessSpottedEntityUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ProcessSpottedEntityUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate) GetNewUpdate() bool { + if x != nil && x.NewUpdate != nil { + return *x.NewUpdate + } + return false +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate) GetEntityUpdates() []*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate { + if x != nil { + return x.EntityUpdates + } + return nil +} + +type CCSUsrMsg_SendPlayerItemDrops struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityUpdates []*CEconItemPreviewDataBlock `protobuf:"bytes,1,rep,name=entity_updates,json=entityUpdates" json:"entity_updates,omitempty"` +} + +func (x *CCSUsrMsg_SendPlayerItemDrops) Reset() { + *x = CCSUsrMsg_SendPlayerItemDrops{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SendPlayerItemDrops) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SendPlayerItemDrops) ProtoMessage() {} + +func (x *CCSUsrMsg_SendPlayerItemDrops) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SendPlayerItemDrops.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SendPlayerItemDrops) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{18} +} + +func (x *CCSUsrMsg_SendPlayerItemDrops) GetEntityUpdates() []*CEconItemPreviewDataBlock { + if x != nil { + return x.EntityUpdates + } + return nil +} + +type CCSUsrMsg_SendPlayerItemFound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Iteminfo *CEconItemPreviewDataBlock `protobuf:"bytes,1,opt,name=iteminfo" json:"iteminfo,omitempty"` + Playerslot *int32 `protobuf:"varint,2,opt,name=playerslot,def=-1" json:"playerslot,omitempty"` +} + +// Default values for CCSUsrMsg_SendPlayerItemFound fields. +const ( + Default_CCSUsrMsg_SendPlayerItemFound_Playerslot = int32(-1) +) + +func (x *CCSUsrMsg_SendPlayerItemFound) Reset() { + *x = CCSUsrMsg_SendPlayerItemFound{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SendPlayerItemFound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SendPlayerItemFound) ProtoMessage() {} + +func (x *CCSUsrMsg_SendPlayerItemFound) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SendPlayerItemFound.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SendPlayerItemFound) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{19} +} + +func (x *CCSUsrMsg_SendPlayerItemFound) GetIteminfo() *CEconItemPreviewDataBlock { + if x != nil { + return x.Iteminfo + } + return nil +} + +func (x *CCSUsrMsg_SendPlayerItemFound) GetPlayerslot() int32 { + if x != nil && x.Playerslot != nil { + return *x.Playerslot + } + return Default_CCSUsrMsg_SendPlayerItemFound_Playerslot +} + +type CCSUsrMsg_ReloadEffect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entidx *int32 `protobuf:"varint,1,opt,name=entidx,def=-1" json:"entidx,omitempty"` + Actanim *int32 `protobuf:"varint,2,opt,name=actanim" json:"actanim,omitempty"` + OriginX *float32 `protobuf:"fixed32,3,opt,name=origin_x,json=originX" json:"origin_x,omitempty"` + OriginY *float32 `protobuf:"fixed32,4,opt,name=origin_y,json=originY" json:"origin_y,omitempty"` + OriginZ *float32 `protobuf:"fixed32,5,opt,name=origin_z,json=originZ" json:"origin_z,omitempty"` +} + +// Default values for CCSUsrMsg_ReloadEffect fields. +const ( + Default_CCSUsrMsg_ReloadEffect_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_ReloadEffect) Reset() { + *x = CCSUsrMsg_ReloadEffect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ReloadEffect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ReloadEffect) ProtoMessage() {} + +func (x *CCSUsrMsg_ReloadEffect) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ReloadEffect.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ReloadEffect) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{20} +} + +func (x *CCSUsrMsg_ReloadEffect) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_ReloadEffect_Entidx +} + +func (x *CCSUsrMsg_ReloadEffect) GetActanim() int32 { + if x != nil && x.Actanim != nil { + return *x.Actanim + } + return 0 +} + +func (x *CCSUsrMsg_ReloadEffect) GetOriginX() float32 { + if x != nil && x.OriginX != nil { + return *x.OriginX + } + return 0 +} + +func (x *CCSUsrMsg_ReloadEffect) GetOriginY() float32 { + if x != nil && x.OriginY != nil { + return *x.OriginY + } + return 0 +} + +func (x *CCSUsrMsg_ReloadEffect) GetOriginZ() float32 { + if x != nil && x.OriginZ != nil { + return *x.OriginZ + } + return 0 +} + +type CCSUsrMsg_WeaponSound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entidx *int32 `protobuf:"varint,1,opt,name=entidx,def=-1" json:"entidx,omitempty"` + OriginX *float32 `protobuf:"fixed32,2,opt,name=origin_x,json=originX" json:"origin_x,omitempty"` + OriginY *float32 `protobuf:"fixed32,3,opt,name=origin_y,json=originY" json:"origin_y,omitempty"` + OriginZ *float32 `protobuf:"fixed32,4,opt,name=origin_z,json=originZ" json:"origin_z,omitempty"` + Sound *string `protobuf:"bytes,5,opt,name=sound" json:"sound,omitempty"` + GameTimestamp *float32 `protobuf:"fixed32,6,opt,name=game_timestamp,json=gameTimestamp" json:"game_timestamp,omitempty"` + SourceSoundscapeid *uint32 `protobuf:"fixed32,7,opt,name=source_soundscapeid,json=sourceSoundscapeid" json:"source_soundscapeid,omitempty"` +} + +// Default values for CCSUsrMsg_WeaponSound fields. +const ( + Default_CCSUsrMsg_WeaponSound_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_WeaponSound) Reset() { + *x = CCSUsrMsg_WeaponSound{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_WeaponSound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_WeaponSound) ProtoMessage() {} + +func (x *CCSUsrMsg_WeaponSound) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_WeaponSound.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_WeaponSound) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{21} +} + +func (x *CCSUsrMsg_WeaponSound) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_WeaponSound_Entidx +} + +func (x *CCSUsrMsg_WeaponSound) GetOriginX() float32 { + if x != nil && x.OriginX != nil { + return *x.OriginX + } + return 0 +} + +func (x *CCSUsrMsg_WeaponSound) GetOriginY() float32 { + if x != nil && x.OriginY != nil { + return *x.OriginY + } + return 0 +} + +func (x *CCSUsrMsg_WeaponSound) GetOriginZ() float32 { + if x != nil && x.OriginZ != nil { + return *x.OriginZ + } + return 0 +} + +func (x *CCSUsrMsg_WeaponSound) GetSound() string { + if x != nil && x.Sound != nil { + return *x.Sound + } + return "" +} + +func (x *CCSUsrMsg_WeaponSound) GetGameTimestamp() float32 { + if x != nil && x.GameTimestamp != nil { + return *x.GameTimestamp + } + return 0 +} + +func (x *CCSUsrMsg_WeaponSound) GetSourceSoundscapeid() uint32 { + if x != nil && x.SourceSoundscapeid != nil { + return *x.SourceSoundscapeid + } + return 0 +} + +type CCSUsrMsg_UpdateScreenHealthBar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entidx *int32 `protobuf:"varint,1,opt,name=entidx,def=-1" json:"entidx,omitempty"` + HealthratioOld *float32 `protobuf:"fixed32,2,opt,name=healthratio_old,json=healthratioOld" json:"healthratio_old,omitempty"` + HealthratioNew *float32 `protobuf:"fixed32,3,opt,name=healthratio_new,json=healthratioNew" json:"healthratio_new,omitempty"` + Style *int32 `protobuf:"varint,4,opt,name=style" json:"style,omitempty"` +} + +// Default values for CCSUsrMsg_UpdateScreenHealthBar fields. +const ( + Default_CCSUsrMsg_UpdateScreenHealthBar_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_UpdateScreenHealthBar) Reset() { + *x = CCSUsrMsg_UpdateScreenHealthBar{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_UpdateScreenHealthBar) ProtoMessage() {} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_UpdateScreenHealthBar.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_UpdateScreenHealthBar) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{22} +} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_UpdateScreenHealthBar_Entidx +} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) GetHealthratioOld() float32 { + if x != nil && x.HealthratioOld != nil { + return *x.HealthratioOld + } + return 0 +} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) GetHealthratioNew() float32 { + if x != nil && x.HealthratioNew != nil { + return *x.HealthratioNew + } + return 0 +} + +func (x *CCSUsrMsg_UpdateScreenHealthBar) GetStyle() int32 { + if x != nil && x.Style != nil { + return *x.Style + } + return 0 +} + +type CCSUsrMsg_EntityOutlineHighlight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entidx *int32 `protobuf:"varint,1,opt,name=entidx,def=-1" json:"entidx,omitempty"` + Removehighlight *bool `protobuf:"varint,2,opt,name=removehighlight" json:"removehighlight,omitempty"` +} + +// Default values for CCSUsrMsg_EntityOutlineHighlight fields. +const ( + Default_CCSUsrMsg_EntityOutlineHighlight_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_EntityOutlineHighlight) Reset() { + *x = CCSUsrMsg_EntityOutlineHighlight{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_EntityOutlineHighlight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_EntityOutlineHighlight) ProtoMessage() {} + +func (x *CCSUsrMsg_EntityOutlineHighlight) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_EntityOutlineHighlight.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_EntityOutlineHighlight) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{23} +} + +func (x *CCSUsrMsg_EntityOutlineHighlight) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_EntityOutlineHighlight_Entidx +} + +func (x *CCSUsrMsg_EntityOutlineHighlight) GetRemovehighlight() bool { + if x != nil && x.Removehighlight != nil { + return *x.Removehighlight + } + return false +} + +type CCSUsrMsg_AdjustMoney struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *int32 `protobuf:"varint,1,opt,name=amount" json:"amount,omitempty"` +} + +func (x *CCSUsrMsg_AdjustMoney) Reset() { + *x = CCSUsrMsg_AdjustMoney{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_AdjustMoney) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_AdjustMoney) ProtoMessage() {} + +func (x *CCSUsrMsg_AdjustMoney) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_AdjustMoney.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_AdjustMoney) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CCSUsrMsg_AdjustMoney) GetAmount() int32 { + if x != nil && x.Amount != nil { + return *x.Amount + } + return 0 +} + +type CCSUsrMsg_ReportHit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PosX *float32 `protobuf:"fixed32,1,opt,name=pos_x,json=posX" json:"pos_x,omitempty"` + PosY *float32 `protobuf:"fixed32,2,opt,name=pos_y,json=posY" json:"pos_y,omitempty"` + Timestamp *float32 `protobuf:"fixed32,4,opt,name=timestamp" json:"timestamp,omitempty"` + PosZ *float32 `protobuf:"fixed32,3,opt,name=pos_z,json=posZ" json:"pos_z,omitempty"` +} + +func (x *CCSUsrMsg_ReportHit) Reset() { + *x = CCSUsrMsg_ReportHit{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ReportHit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ReportHit) ProtoMessage() {} + +func (x *CCSUsrMsg_ReportHit) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ReportHit.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ReportHit) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CCSUsrMsg_ReportHit) GetPosX() float32 { + if x != nil && x.PosX != nil { + return *x.PosX + } + return 0 +} + +func (x *CCSUsrMsg_ReportHit) GetPosY() float32 { + if x != nil && x.PosY != nil { + return *x.PosY + } + return 0 +} + +func (x *CCSUsrMsg_ReportHit) GetTimestamp() float32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *CCSUsrMsg_ReportHit) GetPosZ() float32 { + if x != nil && x.PosZ != nil { + return *x.PosZ + } + return 0 +} + +type CCSUsrMsg_KillCam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ObsMode *int32 `protobuf:"varint,1,opt,name=obs_mode,json=obsMode" json:"obs_mode,omitempty"` + FirstTarget *int32 `protobuf:"varint,2,opt,name=first_target,json=firstTarget,def=-1" json:"first_target,omitempty"` + SecondTarget *int32 `protobuf:"varint,3,opt,name=second_target,json=secondTarget,def=-1" json:"second_target,omitempty"` +} + +// Default values for CCSUsrMsg_KillCam fields. +const ( + Default_CCSUsrMsg_KillCam_FirstTarget = int32(-1) + Default_CCSUsrMsg_KillCam_SecondTarget = int32(-1) +) + +func (x *CCSUsrMsg_KillCam) Reset() { + *x = CCSUsrMsg_KillCam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_KillCam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_KillCam) ProtoMessage() {} + +func (x *CCSUsrMsg_KillCam) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_KillCam.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_KillCam) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CCSUsrMsg_KillCam) GetObsMode() int32 { + if x != nil && x.ObsMode != nil { + return *x.ObsMode + } + return 0 +} + +func (x *CCSUsrMsg_KillCam) GetFirstTarget() int32 { + if x != nil && x.FirstTarget != nil { + return *x.FirstTarget + } + return Default_CCSUsrMsg_KillCam_FirstTarget +} + +func (x *CCSUsrMsg_KillCam) GetSecondTarget() int32 { + if x != nil && x.SecondTarget != nil { + return *x.SecondTarget + } + return Default_CCSUsrMsg_KillCam_SecondTarget +} + +type CCSUsrMsg_DesiredTimescale struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DesiredTimescale *float32 `protobuf:"fixed32,1,opt,name=desired_timescale,json=desiredTimescale" json:"desired_timescale,omitempty"` + DurationRealtimeSec *float32 `protobuf:"fixed32,2,opt,name=duration_realtime_sec,json=durationRealtimeSec" json:"duration_realtime_sec,omitempty"` + InterpolatorType *int32 `protobuf:"varint,3,opt,name=interpolator_type,json=interpolatorType" json:"interpolator_type,omitempty"` + StartBlendTime *float32 `protobuf:"fixed32,4,opt,name=start_blend_time,json=startBlendTime" json:"start_blend_time,omitempty"` +} + +func (x *CCSUsrMsg_DesiredTimescale) Reset() { + *x = CCSUsrMsg_DesiredTimescale{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_DesiredTimescale) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_DesiredTimescale) ProtoMessage() {} + +func (x *CCSUsrMsg_DesiredTimescale) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_DesiredTimescale.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_DesiredTimescale) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CCSUsrMsg_DesiredTimescale) GetDesiredTimescale() float32 { + if x != nil && x.DesiredTimescale != nil { + return *x.DesiredTimescale + } + return 0 +} + +func (x *CCSUsrMsg_DesiredTimescale) GetDurationRealtimeSec() float32 { + if x != nil && x.DurationRealtimeSec != nil { + return *x.DurationRealtimeSec + } + return 0 +} + +func (x *CCSUsrMsg_DesiredTimescale) GetInterpolatorType() int32 { + if x != nil && x.InterpolatorType != nil { + return *x.InterpolatorType + } + return 0 +} + +func (x *CCSUsrMsg_DesiredTimescale) GetStartBlendTime() float32 { + if x != nil && x.StartBlendTime != nil { + return *x.StartBlendTime + } + return 0 +} + +type CCSUsrMsg_CurrentTimescale struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CurTimescale *float32 `protobuf:"fixed32,1,opt,name=cur_timescale,json=curTimescale" json:"cur_timescale,omitempty"` +} + +func (x *CCSUsrMsg_CurrentTimescale) Reset() { + *x = CCSUsrMsg_CurrentTimescale{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_CurrentTimescale) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_CurrentTimescale) ProtoMessage() {} + +func (x *CCSUsrMsg_CurrentTimescale) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_CurrentTimescale.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_CurrentTimescale) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{28} +} + +func (x *CCSUsrMsg_CurrentTimescale) GetCurTimescale() float32 { + if x != nil && x.CurTimescale != nil { + return *x.CurTimescale + } + return 0 +} + +type CCSUsrMsg_AchievementEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Achievement *int32 `protobuf:"varint,1,opt,name=achievement" json:"achievement,omitempty"` + Count *int32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"` + UserId *int32 `protobuf:"varint,3,opt,name=user_id,json=userId" json:"user_id,omitempty"` +} + +func (x *CCSUsrMsg_AchievementEvent) Reset() { + *x = CCSUsrMsg_AchievementEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_AchievementEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_AchievementEvent) ProtoMessage() {} + +func (x *CCSUsrMsg_AchievementEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_AchievementEvent.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_AchievementEvent) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{29} +} + +func (x *CCSUsrMsg_AchievementEvent) GetAchievement() int32 { + if x != nil && x.Achievement != nil { + return *x.Achievement + } + return 0 +} + +func (x *CCSUsrMsg_AchievementEvent) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +func (x *CCSUsrMsg_AchievementEvent) GetUserId() int32 { + if x != nil && x.UserId != nil { + return *x.UserId + } + return 0 +} + +type CCSUsrMsg_MatchEndConditions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fraglimit *int32 `protobuf:"varint,1,opt,name=fraglimit" json:"fraglimit,omitempty"` + MpMaxrounds *int32 `protobuf:"varint,2,opt,name=mp_maxrounds,json=mpMaxrounds" json:"mp_maxrounds,omitempty"` + MpWinlimit *int32 `protobuf:"varint,3,opt,name=mp_winlimit,json=mpWinlimit" json:"mp_winlimit,omitempty"` + MpTimelimit *float32 `protobuf:"fixed32,4,opt,name=mp_timelimit,json=mpTimelimit" json:"mp_timelimit,omitempty"` +} + +func (x *CCSUsrMsg_MatchEndConditions) Reset() { + *x = CCSUsrMsg_MatchEndConditions{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_MatchEndConditions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_MatchEndConditions) ProtoMessage() {} + +func (x *CCSUsrMsg_MatchEndConditions) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_MatchEndConditions.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_MatchEndConditions) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CCSUsrMsg_MatchEndConditions) GetFraglimit() int32 { + if x != nil && x.Fraglimit != nil { + return *x.Fraglimit + } + return 0 +} + +func (x *CCSUsrMsg_MatchEndConditions) GetMpMaxrounds() int32 { + if x != nil && x.MpMaxrounds != nil { + return *x.MpMaxrounds + } + return 0 +} + +func (x *CCSUsrMsg_MatchEndConditions) GetMpWinlimit() int32 { + if x != nil && x.MpWinlimit != nil { + return *x.MpWinlimit + } + return 0 +} + +func (x *CCSUsrMsg_MatchEndConditions) GetMpTimelimit() float32 { + if x != nil && x.MpTimelimit != nil { + return *x.MpTimelimit + } + return 0 +} + +type CCSUsrMsg_PlayerStatsUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + Stats []*CCSUsrMsg_PlayerStatsUpdate_Stat `protobuf:"bytes,4,rep,name=stats" json:"stats,omitempty"` + Ehandle *uint32 `protobuf:"varint,5,opt,name=ehandle" json:"ehandle,omitempty"` + Crc *int32 `protobuf:"varint,6,opt,name=crc" json:"crc,omitempty"` +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) Reset() { + *x = CCSUsrMsg_PlayerStatsUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_PlayerStatsUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_PlayerStatsUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_PlayerStatsUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_PlayerStatsUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) GetStats() []*CCSUsrMsg_PlayerStatsUpdate_Stat { + if x != nil { + return x.Stats + } + return nil +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) GetEhandle() uint32 { + if x != nil && x.Ehandle != nil { + return *x.Ehandle + } + return 0 +} + +func (x *CCSUsrMsg_PlayerStatsUpdate) GetCrc() int32 { + if x != nil && x.Crc != nil { + return *x.Crc + } + return 0 +} + +type CCSUsrMsg_QuestProgress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuestId *uint32 `protobuf:"varint,1,opt,name=quest_id,json=questId" json:"quest_id,omitempty"` + NormalPoints *uint32 `protobuf:"varint,2,opt,name=normal_points,json=normalPoints" json:"normal_points,omitempty"` + BonusPoints *uint32 `protobuf:"varint,3,opt,name=bonus_points,json=bonusPoints" json:"bonus_points,omitempty"` + IsEventQuest *bool `protobuf:"varint,4,opt,name=is_event_quest,json=isEventQuest" json:"is_event_quest,omitempty"` +} + +func (x *CCSUsrMsg_QuestProgress) Reset() { + *x = CCSUsrMsg_QuestProgress{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_QuestProgress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_QuestProgress) ProtoMessage() {} + +func (x *CCSUsrMsg_QuestProgress) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_QuestProgress.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_QuestProgress) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{32} +} + +func (x *CCSUsrMsg_QuestProgress) GetQuestId() uint32 { + if x != nil && x.QuestId != nil { + return *x.QuestId + } + return 0 +} + +func (x *CCSUsrMsg_QuestProgress) GetNormalPoints() uint32 { + if x != nil && x.NormalPoints != nil { + return *x.NormalPoints + } + return 0 +} + +func (x *CCSUsrMsg_QuestProgress) GetBonusPoints() uint32 { + if x != nil && x.BonusPoints != nil { + return *x.BonusPoints + } + return 0 +} + +func (x *CCSUsrMsg_QuestProgress) GetIsEventQuest() bool { + if x != nil && x.IsEventQuest != nil { + return *x.IsEventQuest + } + return false +} + +type CCSUsrMsg_ScoreLeaderboardData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *ScoreLeaderboardData `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CCSUsrMsg_ScoreLeaderboardData) Reset() { + *x = CCSUsrMsg_ScoreLeaderboardData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ScoreLeaderboardData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ScoreLeaderboardData) ProtoMessage() {} + +func (x *CCSUsrMsg_ScoreLeaderboardData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ScoreLeaderboardData.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ScoreLeaderboardData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CCSUsrMsg_ScoreLeaderboardData) GetData() *ScoreLeaderboardData { + if x != nil { + return x.Data + } + return nil +} + +type CCSUsrMsg_PlayerDecalDigitalSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *PlayerDecalDigitalSignature `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CCSUsrMsg_PlayerDecalDigitalSignature) Reset() { + *x = CCSUsrMsg_PlayerDecalDigitalSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_PlayerDecalDigitalSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_PlayerDecalDigitalSignature) ProtoMessage() {} + +func (x *CCSUsrMsg_PlayerDecalDigitalSignature) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_PlayerDecalDigitalSignature.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_PlayerDecalDigitalSignature) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{34} +} + +func (x *CCSUsrMsg_PlayerDecalDigitalSignature) GetData() *PlayerDecalDigitalSignature { + if x != nil { + return x.Data + } + return nil +} + +type CCSUsrMsg_XRankGet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModeIdx *int32 `protobuf:"varint,1,opt,name=mode_idx,json=modeIdx" json:"mode_idx,omitempty"` + Controller *int32 `protobuf:"varint,2,opt,name=controller" json:"controller,omitempty"` +} + +func (x *CCSUsrMsg_XRankGet) Reset() { + *x = CCSUsrMsg_XRankGet{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_XRankGet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_XRankGet) ProtoMessage() {} + +func (x *CCSUsrMsg_XRankGet) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_XRankGet.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_XRankGet) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CCSUsrMsg_XRankGet) GetModeIdx() int32 { + if x != nil && x.ModeIdx != nil { + return *x.ModeIdx + } + return 0 +} + +func (x *CCSUsrMsg_XRankGet) GetController() int32 { + if x != nil && x.Controller != nil { + return *x.Controller + } + return 0 +} + +type CCSUsrMsg_XRankUpd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModeIdx *int32 `protobuf:"varint,1,opt,name=mode_idx,json=modeIdx" json:"mode_idx,omitempty"` + Controller *int32 `protobuf:"varint,2,opt,name=controller" json:"controller,omitempty"` + Ranking *int32 `protobuf:"varint,3,opt,name=ranking" json:"ranking,omitempty"` +} + +func (x *CCSUsrMsg_XRankUpd) Reset() { + *x = CCSUsrMsg_XRankUpd{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_XRankUpd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_XRankUpd) ProtoMessage() {} + +func (x *CCSUsrMsg_XRankUpd) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_XRankUpd.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_XRankUpd) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{36} +} + +func (x *CCSUsrMsg_XRankUpd) GetModeIdx() int32 { + if x != nil && x.ModeIdx != nil { + return *x.ModeIdx + } + return 0 +} + +func (x *CCSUsrMsg_XRankUpd) GetController() int32 { + if x != nil && x.Controller != nil { + return *x.Controller + } + return 0 +} + +func (x *CCSUsrMsg_XRankUpd) GetRanking() int32 { + if x != nil && x.Ranking != nil { + return *x.Ranking + } + return 0 +} + +type CCSUsrMsg_CallVoteFailed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reason *int32 `protobuf:"varint,1,opt,name=reason" json:"reason,omitempty"` + Time *int32 `protobuf:"varint,2,opt,name=time" json:"time,omitempty"` +} + +func (x *CCSUsrMsg_CallVoteFailed) Reset() { + *x = CCSUsrMsg_CallVoteFailed{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_CallVoteFailed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_CallVoteFailed) ProtoMessage() {} + +func (x *CCSUsrMsg_CallVoteFailed) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_CallVoteFailed.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_CallVoteFailed) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{37} +} + +func (x *CCSUsrMsg_CallVoteFailed) GetReason() int32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +func (x *CCSUsrMsg_CallVoteFailed) GetTime() int32 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +type CCSUsrMsg_VoteStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Team *int32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"` + PlayerSlot *int32 `protobuf:"varint,2,opt,name=player_slot,json=playerSlot,def=-1" json:"player_slot,omitempty"` + VoteType *int32 `protobuf:"varint,3,opt,name=vote_type,json=voteType" json:"vote_type,omitempty"` + DispStr *string `protobuf:"bytes,4,opt,name=disp_str,json=dispStr" json:"disp_str,omitempty"` + DetailsStr *string `protobuf:"bytes,5,opt,name=details_str,json=detailsStr" json:"details_str,omitempty"` + OtherTeamStr *string `protobuf:"bytes,6,opt,name=other_team_str,json=otherTeamStr" json:"other_team_str,omitempty"` + IsYesNoVote *bool `protobuf:"varint,7,opt,name=is_yes_no_vote,json=isYesNoVote" json:"is_yes_no_vote,omitempty"` + PlayerSlotTarget *int32 `protobuf:"varint,8,opt,name=player_slot_target,json=playerSlotTarget,def=-1" json:"player_slot_target,omitempty"` +} + +// Default values for CCSUsrMsg_VoteStart fields. +const ( + Default_CCSUsrMsg_VoteStart_PlayerSlot = int32(-1) + Default_CCSUsrMsg_VoteStart_PlayerSlotTarget = int32(-1) +) + +func (x *CCSUsrMsg_VoteStart) Reset() { + *x = CCSUsrMsg_VoteStart{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VoteStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VoteStart) ProtoMessage() {} + +func (x *CCSUsrMsg_VoteStart) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VoteStart.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VoteStart) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{38} +} + +func (x *CCSUsrMsg_VoteStart) GetTeam() int32 { + if x != nil && x.Team != nil { + return *x.Team + } + return 0 +} + +func (x *CCSUsrMsg_VoteStart) GetPlayerSlot() int32 { + if x != nil && x.PlayerSlot != nil { + return *x.PlayerSlot + } + return Default_CCSUsrMsg_VoteStart_PlayerSlot +} + +func (x *CCSUsrMsg_VoteStart) GetVoteType() int32 { + if x != nil && x.VoteType != nil { + return *x.VoteType + } + return 0 +} + +func (x *CCSUsrMsg_VoteStart) GetDispStr() string { + if x != nil && x.DispStr != nil { + return *x.DispStr + } + return "" +} + +func (x *CCSUsrMsg_VoteStart) GetDetailsStr() string { + if x != nil && x.DetailsStr != nil { + return *x.DetailsStr + } + return "" +} + +func (x *CCSUsrMsg_VoteStart) GetOtherTeamStr() string { + if x != nil && x.OtherTeamStr != nil { + return *x.OtherTeamStr + } + return "" +} + +func (x *CCSUsrMsg_VoteStart) GetIsYesNoVote() bool { + if x != nil && x.IsYesNoVote != nil { + return *x.IsYesNoVote + } + return false +} + +func (x *CCSUsrMsg_VoteStart) GetPlayerSlotTarget() int32 { + if x != nil && x.PlayerSlotTarget != nil { + return *x.PlayerSlotTarget + } + return Default_CCSUsrMsg_VoteStart_PlayerSlotTarget +} + +type CCSUsrMsg_VotePass struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Team *int32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"` + VoteType *int32 `protobuf:"varint,2,opt,name=vote_type,json=voteType" json:"vote_type,omitempty"` + DispStr *string `protobuf:"bytes,3,opt,name=disp_str,json=dispStr" json:"disp_str,omitempty"` + DetailsStr *string `protobuf:"bytes,4,opt,name=details_str,json=detailsStr" json:"details_str,omitempty"` +} + +func (x *CCSUsrMsg_VotePass) Reset() { + *x = CCSUsrMsg_VotePass{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VotePass) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VotePass) ProtoMessage() {} + +func (x *CCSUsrMsg_VotePass) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VotePass.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VotePass) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{39} +} + +func (x *CCSUsrMsg_VotePass) GetTeam() int32 { + if x != nil && x.Team != nil { + return *x.Team + } + return 0 +} + +func (x *CCSUsrMsg_VotePass) GetVoteType() int32 { + if x != nil && x.VoteType != nil { + return *x.VoteType + } + return 0 +} + +func (x *CCSUsrMsg_VotePass) GetDispStr() string { + if x != nil && x.DispStr != nil { + return *x.DispStr + } + return "" +} + +func (x *CCSUsrMsg_VotePass) GetDetailsStr() string { + if x != nil && x.DetailsStr != nil { + return *x.DetailsStr + } + return "" +} + +type CCSUsrMsg_VoteFailed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Team *int32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"` + Reason *int32 `protobuf:"varint,2,opt,name=reason" json:"reason,omitempty"` +} + +func (x *CCSUsrMsg_VoteFailed) Reset() { + *x = CCSUsrMsg_VoteFailed{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VoteFailed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VoteFailed) ProtoMessage() {} + +func (x *CCSUsrMsg_VoteFailed) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VoteFailed.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VoteFailed) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{40} +} + +func (x *CCSUsrMsg_VoteFailed) GetTeam() int32 { + if x != nil && x.Team != nil { + return *x.Team + } + return 0 +} + +func (x *CCSUsrMsg_VoteFailed) GetReason() int32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +type CCSUsrMsg_VoteSetup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PotentialIssues []string `protobuf:"bytes,1,rep,name=potential_issues,json=potentialIssues" json:"potential_issues,omitempty"` +} + +func (x *CCSUsrMsg_VoteSetup) Reset() { + *x = CCSUsrMsg_VoteSetup{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VoteSetup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VoteSetup) ProtoMessage() {} + +func (x *CCSUsrMsg_VoteSetup) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VoteSetup.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VoteSetup) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{41} +} + +func (x *CCSUsrMsg_VoteSetup) GetPotentialIssues() []string { + if x != nil { + return x.PotentialIssues + } + return nil +} + +type CCSUsrMsg_SendLastKillerDamageToClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NumHitsGiven *int32 `protobuf:"varint,1,opt,name=num_hits_given,json=numHitsGiven" json:"num_hits_given,omitempty"` + DamageGiven *int32 `protobuf:"varint,2,opt,name=damage_given,json=damageGiven" json:"damage_given,omitempty"` + NumHitsTaken *int32 `protobuf:"varint,3,opt,name=num_hits_taken,json=numHitsTaken" json:"num_hits_taken,omitempty"` + DamageTaken *int32 `protobuf:"varint,4,opt,name=damage_taken,json=damageTaken" json:"damage_taken,omitempty"` + ActualDamageGiven *int32 `protobuf:"varint,5,opt,name=actual_damage_given,json=actualDamageGiven" json:"actual_damage_given,omitempty"` + ActualDamageTaken *int32 `protobuf:"varint,6,opt,name=actual_damage_taken,json=actualDamageTaken" json:"actual_damage_taken,omitempty"` +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) Reset() { + *x = CCSUsrMsg_SendLastKillerDamageToClient{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SendLastKillerDamageToClient) ProtoMessage() {} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SendLastKillerDamageToClient.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SendLastKillerDamageToClient) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{42} +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetNumHitsGiven() int32 { + if x != nil && x.NumHitsGiven != nil { + return *x.NumHitsGiven + } + return 0 +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetDamageGiven() int32 { + if x != nil && x.DamageGiven != nil { + return *x.DamageGiven + } + return 0 +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetNumHitsTaken() int32 { + if x != nil && x.NumHitsTaken != nil { + return *x.NumHitsTaken + } + return 0 +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetDamageTaken() int32 { + if x != nil && x.DamageTaken != nil { + return *x.DamageTaken + } + return 0 +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetActualDamageGiven() int32 { + if x != nil && x.ActualDamageGiven != nil { + return *x.ActualDamageGiven + } + return 0 +} + +func (x *CCSUsrMsg_SendLastKillerDamageToClient) GetActualDamageTaken() int32 { + if x != nil && x.ActualDamageTaken != nil { + return *x.ActualDamageTaken + } + return 0 +} + +type CCSUsrMsg_ServerRankUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RankUpdate []*CCSUsrMsg_ServerRankUpdate_RankUpdate `protobuf:"bytes,1,rep,name=rank_update,json=rankUpdate" json:"rank_update,omitempty"` +} + +func (x *CCSUsrMsg_ServerRankUpdate) Reset() { + *x = CCSUsrMsg_ServerRankUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ServerRankUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ServerRankUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_ServerRankUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ServerRankUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ServerRankUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{43} +} + +func (x *CCSUsrMsg_ServerRankUpdate) GetRankUpdate() []*CCSUsrMsg_ServerRankUpdate_RankUpdate { + if x != nil { + return x.RankUpdate + } + return nil +} + +type CCSUsrMsg_XpUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CCSUsrMsg_XpUpdate) Reset() { + *x = CCSUsrMsg_XpUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_XpUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_XpUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_XpUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_XpUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_XpUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{44} +} + +func (x *CCSUsrMsg_XpUpdate) GetData() *CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded { + if x != nil { + return x.Data + } + return nil +} + +type CCSUsrMsg_ItemPickup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item *string `protobuf:"bytes,1,opt,name=item" json:"item,omitempty"` +} + +func (x *CCSUsrMsg_ItemPickup) Reset() { + *x = CCSUsrMsg_ItemPickup{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ItemPickup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ItemPickup) ProtoMessage() {} + +func (x *CCSUsrMsg_ItemPickup) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ItemPickup.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ItemPickup) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{45} +} + +func (x *CCSUsrMsg_ItemPickup) GetItem() string { + if x != nil && x.Item != nil { + return *x.Item + } + return "" +} + +type CCSUsrMsg_ShowMenu struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BitsValidSlots *int32 `protobuf:"varint,1,opt,name=bits_valid_slots,json=bitsValidSlots" json:"bits_valid_slots,omitempty"` + DisplayTime *int32 `protobuf:"varint,2,opt,name=display_time,json=displayTime" json:"display_time,omitempty"` + MenuString *string `protobuf:"bytes,3,opt,name=menu_string,json=menuString" json:"menu_string,omitempty"` +} + +func (x *CCSUsrMsg_ShowMenu) Reset() { + *x = CCSUsrMsg_ShowMenu{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ShowMenu) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ShowMenu) ProtoMessage() {} + +func (x *CCSUsrMsg_ShowMenu) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ShowMenu.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ShowMenu) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{46} +} + +func (x *CCSUsrMsg_ShowMenu) GetBitsValidSlots() int32 { + if x != nil && x.BitsValidSlots != nil { + return *x.BitsValidSlots + } + return 0 +} + +func (x *CCSUsrMsg_ShowMenu) GetDisplayTime() int32 { + if x != nil && x.DisplayTime != nil { + return *x.DisplayTime + } + return 0 +} + +func (x *CCSUsrMsg_ShowMenu) GetMenuString() string { + if x != nil && x.MenuString != nil { + return *x.MenuString + } + return "" +} + +type CCSUsrMsg_BarTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Time *string `protobuf:"bytes,1,opt,name=time" json:"time,omitempty"` +} + +func (x *CCSUsrMsg_BarTime) Reset() { + *x = CCSUsrMsg_BarTime{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_BarTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_BarTime) ProtoMessage() {} + +func (x *CCSUsrMsg_BarTime) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_BarTime.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_BarTime) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{47} +} + +func (x *CCSUsrMsg_BarTime) GetTime() string { + if x != nil && x.Time != nil { + return *x.Time + } + return "" +} + +type CCSUsrMsg_AmmoDenied struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ammoidx *int32 `protobuf:"varint,1,opt,name=ammoidx" json:"ammoidx,omitempty"` +} + +func (x *CCSUsrMsg_AmmoDenied) Reset() { + *x = CCSUsrMsg_AmmoDenied{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_AmmoDenied) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_AmmoDenied) ProtoMessage() {} + +func (x *CCSUsrMsg_AmmoDenied) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_AmmoDenied.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_AmmoDenied) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{48} +} + +func (x *CCSUsrMsg_AmmoDenied) GetAmmoidx() int32 { + if x != nil && x.Ammoidx != nil { + return *x.Ammoidx + } + return 0 +} + +type CCSUsrMsg_MarkAchievement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Achievement *string `protobuf:"bytes,1,opt,name=achievement" json:"achievement,omitempty"` +} + +func (x *CCSUsrMsg_MarkAchievement) Reset() { + *x = CCSUsrMsg_MarkAchievement{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_MarkAchievement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_MarkAchievement) ProtoMessage() {} + +func (x *CCSUsrMsg_MarkAchievement) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_MarkAchievement.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_MarkAchievement) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{49} +} + +func (x *CCSUsrMsg_MarkAchievement) GetAchievement() string { + if x != nil && x.Achievement != nil { + return *x.Achievement + } + return "" +} + +type CCSUsrMsg_MatchStatsUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Update *string `protobuf:"bytes,1,opt,name=update" json:"update,omitempty"` +} + +func (x *CCSUsrMsg_MatchStatsUpdate) Reset() { + *x = CCSUsrMsg_MatchStatsUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_MatchStatsUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_MatchStatsUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_MatchStatsUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_MatchStatsUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_MatchStatsUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{50} +} + +func (x *CCSUsrMsg_MatchStatsUpdate) GetUpdate() string { + if x != nil && x.Update != nil { + return *x.Update + } + return "" +} + +type CCSUsrMsg_ItemDrop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Itemid *int64 `protobuf:"varint,1,opt,name=itemid" json:"itemid,omitempty"` + Death *bool `protobuf:"varint,2,opt,name=death" json:"death,omitempty"` +} + +func (x *CCSUsrMsg_ItemDrop) Reset() { + *x = CCSUsrMsg_ItemDrop{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ItemDrop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ItemDrop) ProtoMessage() {} + +func (x *CCSUsrMsg_ItemDrop) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ItemDrop.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ItemDrop) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{51} +} + +func (x *CCSUsrMsg_ItemDrop) GetItemid() int64 { + if x != nil && x.Itemid != nil { + return *x.Itemid + } + return 0 +} + +func (x *CCSUsrMsg_ItemDrop) GetDeath() bool { + if x != nil && x.Death != nil { + return *x.Death + } + return false +} + +type CCSUsrMsg_GlowPropTurnOff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entidx *int32 `protobuf:"varint,1,opt,name=entidx,def=-1" json:"entidx,omitempty"` +} + +// Default values for CCSUsrMsg_GlowPropTurnOff fields. +const ( + Default_CCSUsrMsg_GlowPropTurnOff_Entidx = int32(-1) +) + +func (x *CCSUsrMsg_GlowPropTurnOff) Reset() { + *x = CCSUsrMsg_GlowPropTurnOff{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_GlowPropTurnOff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_GlowPropTurnOff) ProtoMessage() {} + +func (x *CCSUsrMsg_GlowPropTurnOff) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_GlowPropTurnOff.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_GlowPropTurnOff) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{52} +} + +func (x *CCSUsrMsg_GlowPropTurnOff) GetEntidx() int32 { + if x != nil && x.Entidx != nil { + return *x.Entidx + } + return Default_CCSUsrMsg_GlowPropTurnOff_Entidx +} + +type CCSUsrMsg_RoundBackupFilenames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count *int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"` + Index *int32 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"` + Filename *string `protobuf:"bytes,3,opt,name=filename" json:"filename,omitempty"` + Nicename *string `protobuf:"bytes,4,opt,name=nicename" json:"nicename,omitempty"` +} + +func (x *CCSUsrMsg_RoundBackupFilenames) Reset() { + *x = CCSUsrMsg_RoundBackupFilenames{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundBackupFilenames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundBackupFilenames) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundBackupFilenames) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundBackupFilenames.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundBackupFilenames) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{53} +} + +func (x *CCSUsrMsg_RoundBackupFilenames) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +func (x *CCSUsrMsg_RoundBackupFilenames) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CCSUsrMsg_RoundBackupFilenames) GetFilename() string { + if x != nil && x.Filename != nil { + return *x.Filename + } + return "" +} + +func (x *CCSUsrMsg_RoundBackupFilenames) GetNicename() string { + if x != nil && x.Nicename != nil { + return *x.Nicename + } + return "" +} + +type CCSUsrMsg_SSUI struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Show *bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"` + StartTime *float32 `protobuf:"fixed32,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"` + EndTime *float32 `protobuf:"fixed32,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"` +} + +func (x *CCSUsrMsg_SSUI) Reset() { + *x = CCSUsrMsg_SSUI{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SSUI) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SSUI) ProtoMessage() {} + +func (x *CCSUsrMsg_SSUI) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SSUI.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SSUI) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{54} +} + +func (x *CCSUsrMsg_SSUI) GetShow() bool { + if x != nil && x.Show != nil { + return *x.Show + } + return false +} + +func (x *CCSUsrMsg_SSUI) GetStartTime() float32 { + if x != nil && x.StartTime != nil { + return *x.StartTime + } + return 0 +} + +func (x *CCSUsrMsg_SSUI) GetEndTime() float32 { + if x != nil && x.EndTime != nil { + return *x.EndTime + } + return 0 +} + +type CCSUsrMsg_SurvivalStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Xuid *uint64 `protobuf:"varint,1,opt,name=xuid" json:"xuid,omitempty"` + Facts []*CCSUsrMsg_SurvivalStats_Fact `protobuf:"bytes,2,rep,name=facts" json:"facts,omitempty"` + Users []*CCSUsrMsg_SurvivalStats_Placement `protobuf:"bytes,3,rep,name=users" json:"users,omitempty"` + Damages []*CCSUsrMsg_SurvivalStats_Damage `protobuf:"bytes,5,rep,name=damages" json:"damages,omitempty"` + Ticknumber *int32 `protobuf:"varint,4,opt,name=ticknumber" json:"ticknumber,omitempty"` +} + +func (x *CCSUsrMsg_SurvivalStats) Reset() { + *x = CCSUsrMsg_SurvivalStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SurvivalStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SurvivalStats) ProtoMessage() {} + +func (x *CCSUsrMsg_SurvivalStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SurvivalStats.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SurvivalStats) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{55} +} + +func (x *CCSUsrMsg_SurvivalStats) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats) GetFacts() []*CCSUsrMsg_SurvivalStats_Fact { + if x != nil { + return x.Facts + } + return nil +} + +func (x *CCSUsrMsg_SurvivalStats) GetUsers() []*CCSUsrMsg_SurvivalStats_Placement { + if x != nil { + return x.Users + } + return nil +} + +func (x *CCSUsrMsg_SurvivalStats) GetDamages() []*CCSUsrMsg_SurvivalStats_Damage { + if x != nil { + return x.Damages + } + return nil +} + +func (x *CCSUsrMsg_SurvivalStats) GetTicknumber() int32 { + if x != nil && x.Ticknumber != nil { + return *x.Ticknumber + } + return 0 +} + +type CCSUsrMsg_EndOfMatchAllPlayersData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Allplayerdata []*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData `protobuf:"bytes,1,rep,name=allplayerdata" json:"allplayerdata,omitempty"` + Scene *int32 `protobuf:"varint,2,opt,name=scene" json:"scene,omitempty"` +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData) Reset() { + *x = CCSUsrMsg_EndOfMatchAllPlayersData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_EndOfMatchAllPlayersData) ProtoMessage() {} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_EndOfMatchAllPlayersData.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_EndOfMatchAllPlayersData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{56} +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData) GetAllplayerdata() []*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData { + if x != nil { + return x.Allplayerdata + } + return nil +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData) GetScene() int32 { + if x != nil && x.Scene != nil { + return *x.Scene + } + return 0 +} + +type CCSUsrMsg_RoundEndReportData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InitConditions *CCSUsrMsg_RoundEndReportData_InitialConditions `protobuf:"bytes,1,opt,name=init_conditions,json=initConditions" json:"init_conditions,omitempty"` + AllRerEventData []*CCSUsrMsg_RoundEndReportData_RerEvent `protobuf:"bytes,2,rep,name=all_rer_event_data,json=allRerEventData" json:"all_rer_event_data,omitempty"` +} + +func (x *CCSUsrMsg_RoundEndReportData) Reset() { + *x = CCSUsrMsg_RoundEndReportData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57} +} + +func (x *CCSUsrMsg_RoundEndReportData) GetInitConditions() *CCSUsrMsg_RoundEndReportData_InitialConditions { + if x != nil { + return x.InitConditions + } + return nil +} + +func (x *CCSUsrMsg_RoundEndReportData) GetAllRerEventData() []*CCSUsrMsg_RoundEndReportData_RerEvent { + if x != nil { + return x.AllRerEventData + } + return nil +} + +type CCSUsrMsg_PostRoundDamageReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OtherXuid *uint64 `protobuf:"varint,1,opt,name=other_xuid,json=otherXuid" json:"other_xuid,omitempty"` + GivenKillType *int32 `protobuf:"varint,2,opt,name=given_kill_type,json=givenKillType" json:"given_kill_type,omitempty"` + GivenHealthRemoved *int32 `protobuf:"varint,3,opt,name=given_health_removed,json=givenHealthRemoved" json:"given_health_removed,omitempty"` + GivenNumHits *int32 `protobuf:"varint,4,opt,name=given_num_hits,json=givenNumHits" json:"given_num_hits,omitempty"` + TakenKillType *int32 `protobuf:"varint,5,opt,name=taken_kill_type,json=takenKillType" json:"taken_kill_type,omitempty"` + TakenHealthRemoved *int32 `protobuf:"varint,6,opt,name=taken_health_removed,json=takenHealthRemoved" json:"taken_health_removed,omitempty"` + TakenNumHits *int32 `protobuf:"varint,7,opt,name=taken_num_hits,json=takenNumHits" json:"taken_num_hits,omitempty"` +} + +func (x *CCSUsrMsg_PostRoundDamageReport) Reset() { + *x = CCSUsrMsg_PostRoundDamageReport{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_PostRoundDamageReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_PostRoundDamageReport) ProtoMessage() {} + +func (x *CCSUsrMsg_PostRoundDamageReport) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_PostRoundDamageReport.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_PostRoundDamageReport) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{58} +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetOtherXuid() uint64 { + if x != nil && x.OtherXuid != nil { + return *x.OtherXuid + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetGivenKillType() int32 { + if x != nil && x.GivenKillType != nil { + return *x.GivenKillType + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetGivenHealthRemoved() int32 { + if x != nil && x.GivenHealthRemoved != nil { + return *x.GivenHealthRemoved + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetGivenNumHits() int32 { + if x != nil && x.GivenNumHits != nil { + return *x.GivenNumHits + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetTakenKillType() int32 { + if x != nil && x.TakenKillType != nil { + return *x.TakenKillType + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetTakenHealthRemoved() int32 { + if x != nil && x.TakenHealthRemoved != nil { + return *x.TakenHealthRemoved + } + return 0 +} + +func (x *CCSUsrMsg_PostRoundDamageReport) GetTakenNumHits() int32 { + if x != nil && x.TakenNumHits != nil { + return *x.TakenNumHits + } + return 0 +} + +type CCSUsrMsg_CurrentRoundOdds struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Odds *int32 `protobuf:"varint,1,opt,name=odds" json:"odds,omitempty"` +} + +func (x *CCSUsrMsg_CurrentRoundOdds) Reset() { + *x = CCSUsrMsg_CurrentRoundOdds{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_CurrentRoundOdds) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_CurrentRoundOdds) ProtoMessage() {} + +func (x *CCSUsrMsg_CurrentRoundOdds) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_CurrentRoundOdds.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_CurrentRoundOdds) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{59} +} + +func (x *CCSUsrMsg_CurrentRoundOdds) GetOdds() int32 { + if x != nil && x.Odds != nil { + return *x.Odds + } + return 0 +} + +type CCSUsrMsg_DeepStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stats *CMsgGCCStrike15_ClientDeepStats `protobuf:"bytes,1,opt,name=stats" json:"stats,omitempty"` +} + +func (x *CCSUsrMsg_DeepStats) Reset() { + *x = CCSUsrMsg_DeepStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_DeepStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_DeepStats) ProtoMessage() {} + +func (x *CCSUsrMsg_DeepStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_DeepStats.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_DeepStats) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{60} +} + +func (x *CCSUsrMsg_DeepStats) GetStats() *CMsgGCCStrike15_ClientDeepStats { + if x != nil { + return x.Stats + } + return nil +} + +type CCSUsrMsg_ShootInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrameNumber *int32 `protobuf:"varint,1,opt,name=frame_number,json=frameNumber" json:"frame_number,omitempty"` + HitboxTransforms []*CMsgTransform `protobuf:"bytes,2,rep,name=hitbox_transforms,json=hitboxTransforms" json:"hitbox_transforms,omitempty"` + ShootPos *CMsgVector `protobuf:"bytes,3,opt,name=shoot_pos,json=shootPos" json:"shoot_pos,omitempty"` + ShootDir *CMsgQAngle `protobuf:"bytes,4,opt,name=shoot_dir,json=shootDir" json:"shoot_dir,omitempty"` +} + +func (x *CCSUsrMsg_ShootInfo) Reset() { + *x = CCSUsrMsg_ShootInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ShootInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ShootInfo) ProtoMessage() {} + +func (x *CCSUsrMsg_ShootInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ShootInfo.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ShootInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{61} +} + +func (x *CCSUsrMsg_ShootInfo) GetFrameNumber() int32 { + if x != nil && x.FrameNumber != nil { + return *x.FrameNumber + } + return 0 +} + +func (x *CCSUsrMsg_ShootInfo) GetHitboxTransforms() []*CMsgTransform { + if x != nil { + return x.HitboxTransforms + } + return nil +} + +func (x *CCSUsrMsg_ShootInfo) GetShootPos() *CMsgVector { + if x != nil { + return x.ShootPos + } + return nil +} + +func (x *CCSUsrMsg_ShootInfo) GetShootDir() *CMsgQAngle { + if x != nil { + return x.ShootDir + } + return nil +} + +type CCSUsrMsg_ResetHud struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reset_ *bool `protobuf:"varint,1,opt,name=reset" json:"reset,omitempty"` +} + +func (x *CCSUsrMsg_ResetHud) Reset() { + *x = CCSUsrMsg_ResetHud{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ResetHud) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ResetHud) ProtoMessage() {} + +func (x *CCSUsrMsg_ResetHud) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ResetHud.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ResetHud) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{62} +} + +func (x *CCSUsrMsg_ResetHud) GetReset_() bool { + if x != nil && x.Reset_ != nil { + return *x.Reset_ + } + return false +} + +type CCSUsrMsg_GameTitle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_GameTitle) Reset() { + *x = CCSUsrMsg_GameTitle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_GameTitle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_GameTitle) ProtoMessage() {} + +func (x *CCSUsrMsg_GameTitle) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_GameTitle.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_GameTitle) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{63} +} + +func (x *CCSUsrMsg_GameTitle) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_RequestState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_RequestState) Reset() { + *x = CCSUsrMsg_RequestState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RequestState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RequestState) ProtoMessage() {} + +func (x *CCSUsrMsg_RequestState) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RequestState.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RequestState) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{64} +} + +func (x *CCSUsrMsg_RequestState) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_StopSpectatorMode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_StopSpectatorMode) Reset() { + *x = CCSUsrMsg_StopSpectatorMode{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_StopSpectatorMode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_StopSpectatorMode) ProtoMessage() {} + +func (x *CCSUsrMsg_StopSpectatorMode) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_StopSpectatorMode.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_StopSpectatorMode) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{65} +} + +func (x *CCSUsrMsg_StopSpectatorMode) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_DisconnectToLobby struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_DisconnectToLobby) Reset() { + *x = CCSUsrMsg_DisconnectToLobby{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_DisconnectToLobby) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_DisconnectToLobby) ProtoMessage() {} + +func (x *CCSUsrMsg_DisconnectToLobby) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_DisconnectToLobby.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_DisconnectToLobby) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{66} +} + +func (x *CCSUsrMsg_DisconnectToLobby) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_WarmupHasEnded struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_WarmupHasEnded) Reset() { + *x = CCSUsrMsg_WarmupHasEnded{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_WarmupHasEnded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_WarmupHasEnded) ProtoMessage() {} + +func (x *CCSUsrMsg_WarmupHasEnded) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_WarmupHasEnded.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_WarmupHasEnded) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{67} +} + +func (x *CCSUsrMsg_WarmupHasEnded) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_ClientInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dummy *int32 `protobuf:"varint,1,opt,name=dummy" json:"dummy,omitempty"` +} + +func (x *CCSUsrMsg_ClientInfo) Reset() { + *x = CCSUsrMsg_ClientInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ClientInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ClientInfo) ProtoMessage() {} + +func (x *CCSUsrMsg_ClientInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ClientInfo.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ClientInfo) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{68} +} + +func (x *CCSUsrMsg_ClientInfo) GetDummy() int32 { + if x != nil && x.Dummy != nil { + return *x.Dummy + } + return 0 +} + +type CCSUsrMsg_ServerRankRevealAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecondsTillShutdown *int32 `protobuf:"varint,1,opt,name=seconds_till_shutdown,json=secondsTillShutdown" json:"seconds_till_shutdown,omitempty"` + Reservation *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve `protobuf:"bytes,2,opt,name=reservation" json:"reservation,omitempty"` +} + +func (x *CCSUsrMsg_ServerRankRevealAll) Reset() { + *x = CCSUsrMsg_ServerRankRevealAll{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ServerRankRevealAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ServerRankRevealAll) ProtoMessage() {} + +func (x *CCSUsrMsg_ServerRankRevealAll) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ServerRankRevealAll.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ServerRankRevealAll) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{69} +} + +func (x *CCSUsrMsg_ServerRankRevealAll) GetSecondsTillShutdown() int32 { + if x != nil && x.SecondsTillShutdown != nil { + return *x.SecondsTillShutdown + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankRevealAll) GetReservation() *CMsgGCCStrike15V2_MatchmakingGC2ServerReserve { + if x != nil { + return x.Reservation + } + return nil +} + +type CCSUsrMsg_VGUIMenu_Keys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CCSUsrMsg_VGUIMenu_Keys) Reset() { + *x = CCSUsrMsg_VGUIMenu_Keys{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VGUIMenu_Keys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VGUIMenu_Keys) ProtoMessage() {} + +func (x *CCSUsrMsg_VGUIMenu_Keys) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VGUIMenu_Keys.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VGUIMenu_Keys) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *CCSUsrMsg_VGUIMenu_Keys) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CCSUsrMsg_VGUIMenu_Keys) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CCSUsrMsg_VoiceMask_PlayerMask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GameRulesMask *int32 `protobuf:"varint,1,opt,name=game_rules_mask,json=gameRulesMask" json:"game_rules_mask,omitempty"` + BanMasks *int32 `protobuf:"varint,2,opt,name=ban_masks,json=banMasks" json:"ban_masks,omitempty"` +} + +func (x *CCSUsrMsg_VoiceMask_PlayerMask) Reset() { + *x = CCSUsrMsg_VoiceMask_PlayerMask{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_VoiceMask_PlayerMask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_VoiceMask_PlayerMask) ProtoMessage() {} + +func (x *CCSUsrMsg_VoiceMask_PlayerMask) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_VoiceMask_PlayerMask.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_VoiceMask_PlayerMask) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *CCSUsrMsg_VoiceMask_PlayerMask) GetGameRulesMask() int32 { + if x != nil && x.GameRulesMask != nil { + return *x.GameRulesMask + } + return 0 +} + +func (x *CCSUsrMsg_VoiceMask_PlayerMask) GetBanMasks() int32 { + if x != nil && x.BanMasks != nil { + return *x.BanMasks + } + return 0 +} + +type CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityIdx *int32 `protobuf:"varint,1,opt,name=entity_idx,json=entityIdx,def=-1" json:"entity_idx,omitempty"` + ClassId *int32 `protobuf:"varint,2,opt,name=class_id,json=classId" json:"class_id,omitempty"` + OriginX *int32 `protobuf:"varint,3,opt,name=origin_x,json=originX" json:"origin_x,omitempty"` + OriginY *int32 `protobuf:"varint,4,opt,name=origin_y,json=originY" json:"origin_y,omitempty"` + OriginZ *int32 `protobuf:"varint,5,opt,name=origin_z,json=originZ" json:"origin_z,omitempty"` + AngleY *int32 `protobuf:"varint,6,opt,name=angle_y,json=angleY" json:"angle_y,omitempty"` + Defuser *bool `protobuf:"varint,7,opt,name=defuser" json:"defuser,omitempty"` + PlayerHasDefuser *bool `protobuf:"varint,8,opt,name=player_has_defuser,json=playerHasDefuser" json:"player_has_defuser,omitempty"` + PlayerHasC4 *bool `protobuf:"varint,9,opt,name=player_has_c4,json=playerHasC4" json:"player_has_c4,omitempty"` +} + +// Default values for CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate fields. +const ( + Default_CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate_EntityIdx = int32(-1) +) + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) Reset() { + *x = CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetEntityIdx() int32 { + if x != nil && x.EntityIdx != nil { + return *x.EntityIdx + } + return Default_CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate_EntityIdx +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetClassId() int32 { + if x != nil && x.ClassId != nil { + return *x.ClassId + } + return 0 +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetOriginX() int32 { + if x != nil && x.OriginX != nil { + return *x.OriginX + } + return 0 +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetOriginY() int32 { + if x != nil && x.OriginY != nil { + return *x.OriginY + } + return 0 +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetOriginZ() int32 { + if x != nil && x.OriginZ != nil { + return *x.OriginZ + } + return 0 +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetAngleY() int32 { + if x != nil && x.AngleY != nil { + return *x.AngleY + } + return 0 +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetDefuser() bool { + if x != nil && x.Defuser != nil { + return *x.Defuser + } + return false +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetPlayerHasDefuser() bool { + if x != nil && x.PlayerHasDefuser != nil { + return *x.PlayerHasDefuser + } + return false +} + +func (x *CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate) GetPlayerHasC4() bool { + if x != nil && x.PlayerHasC4 != nil { + return *x.PlayerHasC4 + } + return false +} + +type CCSUsrMsg_PlayerStatsUpdate_Stat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Idx *int32 `protobuf:"varint,1,opt,name=idx" json:"idx,omitempty"` + Delta *int32 `protobuf:"varint,2,opt,name=delta" json:"delta,omitempty"` +} + +func (x *CCSUsrMsg_PlayerStatsUpdate_Stat) Reset() { + *x = CCSUsrMsg_PlayerStatsUpdate_Stat{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_PlayerStatsUpdate_Stat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_PlayerStatsUpdate_Stat) ProtoMessage() {} + +func (x *CCSUsrMsg_PlayerStatsUpdate_Stat) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_PlayerStatsUpdate_Stat.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_PlayerStatsUpdate_Stat) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{31, 0} +} + +func (x *CCSUsrMsg_PlayerStatsUpdate_Stat) GetIdx() int32 { + if x != nil && x.Idx != nil { + return *x.Idx + } + return 0 +} + +func (x *CCSUsrMsg_PlayerStatsUpdate_Stat) GetDelta() int32 { + if x != nil && x.Delta != nil { + return *x.Delta + } + return 0 +} + +type CCSUsrMsg_ServerRankUpdate_RankUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *int32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + RankOld *int32 `protobuf:"varint,2,opt,name=rank_old,json=rankOld" json:"rank_old,omitempty"` + RankNew *int32 `protobuf:"varint,3,opt,name=rank_new,json=rankNew" json:"rank_new,omitempty"` + NumWins *int32 `protobuf:"varint,4,opt,name=num_wins,json=numWins" json:"num_wins,omitempty"` + RankChange *float32 `protobuf:"fixed32,5,opt,name=rank_change,json=rankChange" json:"rank_change,omitempty"` + RankTypeId *int32 `protobuf:"varint,6,opt,name=rank_type_id,json=rankTypeId" json:"rank_type_id,omitempty"` +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) Reset() { + *x = CCSUsrMsg_ServerRankUpdate_RankUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_ServerRankUpdate_RankUpdate) ProtoMessage() {} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_ServerRankUpdate_RankUpdate.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_ServerRankUpdate_RankUpdate) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{43, 0} +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetAccountId() int32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetRankOld() int32 { + if x != nil && x.RankOld != nil { + return *x.RankOld + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetRankNew() int32 { + if x != nil && x.RankNew != nil { + return *x.RankNew + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetNumWins() int32 { + if x != nil && x.NumWins != nil { + return *x.NumWins + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetRankChange() float32 { + if x != nil && x.RankChange != nil { + return *x.RankChange + } + return 0 +} + +func (x *CCSUsrMsg_ServerRankUpdate_RankUpdate) GetRankTypeId() int32 { + if x != nil && x.RankTypeId != nil { + return *x.RankTypeId + } + return 0 +} + +type CCSUsrMsg_SurvivalStats_Fact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Display *int32 `protobuf:"varint,2,opt,name=display" json:"display,omitempty"` + Value *int32 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"` + Interestingness *float32 `protobuf:"fixed32,4,opt,name=interestingness" json:"interestingness,omitempty"` +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) Reset() { + *x = CCSUsrMsg_SurvivalStats_Fact{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SurvivalStats_Fact) ProtoMessage() {} + +func (x *CCSUsrMsg_SurvivalStats_Fact) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SurvivalStats_Fact.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SurvivalStats_Fact) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{55, 0} +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) GetDisplay() int32 { + if x != nil && x.Display != nil { + return *x.Display + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) GetValue() int32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Fact) GetInterestingness() float32 { + if x != nil && x.Interestingness != nil { + return *x.Interestingness + } + return 0 +} + +type CCSUsrMsg_SurvivalStats_Placement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Xuid *uint64 `protobuf:"varint,1,opt,name=xuid" json:"xuid,omitempty"` + Teamnumber *int32 `protobuf:"varint,2,opt,name=teamnumber" json:"teamnumber,omitempty"` + Placement *int32 `protobuf:"varint,3,opt,name=placement" json:"placement,omitempty"` +} + +func (x *CCSUsrMsg_SurvivalStats_Placement) Reset() { + *x = CCSUsrMsg_SurvivalStats_Placement{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SurvivalStats_Placement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SurvivalStats_Placement) ProtoMessage() {} + +func (x *CCSUsrMsg_SurvivalStats_Placement) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SurvivalStats_Placement.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SurvivalStats_Placement) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{55, 1} +} + +func (x *CCSUsrMsg_SurvivalStats_Placement) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Placement) GetTeamnumber() int32 { + if x != nil && x.Teamnumber != nil { + return *x.Teamnumber + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Placement) GetPlacement() int32 { + if x != nil && x.Placement != nil { + return *x.Placement + } + return 0 +} + +type CCSUsrMsg_SurvivalStats_Damage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Xuid *uint64 `protobuf:"varint,1,opt,name=xuid" json:"xuid,omitempty"` + To *int32 `protobuf:"varint,2,opt,name=to" json:"to,omitempty"` + ToHits *int32 `protobuf:"varint,3,opt,name=to_hits,json=toHits" json:"to_hits,omitempty"` + From *int32 `protobuf:"varint,4,opt,name=from" json:"from,omitempty"` + FromHits *int32 `protobuf:"varint,5,opt,name=from_hits,json=fromHits" json:"from_hits,omitempty"` +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) Reset() { + *x = CCSUsrMsg_SurvivalStats_Damage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_SurvivalStats_Damage) ProtoMessage() {} + +func (x *CCSUsrMsg_SurvivalStats_Damage) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_SurvivalStats_Damage.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_SurvivalStats_Damage) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{55, 2} +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) GetTo() int32 { + if x != nil && x.To != nil { + return *x.To + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) GetToHits() int32 { + if x != nil && x.ToHits != nil { + return *x.ToHits + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) GetFrom() int32 { + if x != nil && x.From != nil { + return *x.From + } + return 0 +} + +func (x *CCSUsrMsg_SurvivalStats_Damage) GetFromHits() int32 { + if x != nil && x.FromHits != nil { + return *x.FromHits + } + return 0 +} + +type CCSUsrMsg_EndOfMatchAllPlayersData_Accolade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eaccolade *int32 `protobuf:"varint,1,opt,name=eaccolade" json:"eaccolade,omitempty"` + Value *float32 `protobuf:"fixed32,2,opt,name=value" json:"value,omitempty"` + Position *int32 `protobuf:"varint,3,opt,name=position" json:"position,omitempty"` +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) Reset() { + *x = CCSUsrMsg_EndOfMatchAllPlayersData_Accolade{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) ProtoMessage() {} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_EndOfMatchAllPlayersData_Accolade.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{56, 0} +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) GetEaccolade() int32 { + if x != nil && x.Eaccolade != nil { + return *x.Eaccolade + } + return 0 +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade) GetPosition() int32 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +type CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *int32 `protobuf:"varint,1,opt,name=slot,def=-1" json:"slot,omitempty"` + Xuid *uint64 `protobuf:"varint,2,opt,name=xuid" json:"xuid,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Teamnumber *int32 `protobuf:"varint,4,opt,name=teamnumber" json:"teamnumber,omitempty"` + Nomination *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade `protobuf:"bytes,5,opt,name=nomination" json:"nomination,omitempty"` + Items []*CEconItemPreviewDataBlock `protobuf:"bytes,6,rep,name=items" json:"items,omitempty"` + Playercolor *int32 `protobuf:"varint,7,opt,name=playercolor" json:"playercolor,omitempty"` + Isbot *bool `protobuf:"varint,8,opt,name=isbot" json:"isbot,omitempty"` +} + +// Default values for CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData fields. +const ( + Default_CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData_Slot = int32(-1) +) + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) Reset() { + *x = CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) ProtoMessage() {} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{56, 1} +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return Default_CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData_Slot +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetTeamnumber() int32 { + if x != nil && x.Teamnumber != nil { + return *x.Teamnumber + } + return 0 +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetNomination() *CCSUsrMsg_EndOfMatchAllPlayersData_Accolade { + if x != nil { + return x.Nomination + } + return nil +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetItems() []*CEconItemPreviewDataBlock { + if x != nil { + return x.Items + } + return nil +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetPlayercolor() int32 { + if x != nil && x.Playercolor != nil { + return *x.Playercolor + } + return 0 +} + +func (x *CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData) GetIsbot() bool { + if x != nil && x.Isbot != nil { + return *x.Isbot + } + return false +} + +type CCSUsrMsg_RoundEndReportData_RerEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp *float32 `protobuf:"fixed32,1,opt,name=timestamp" json:"timestamp,omitempty"` + TerroristOdds *int32 `protobuf:"varint,2,opt,name=terrorist_odds,json=terroristOdds" json:"terrorist_odds,omitempty"` + CtAlive *int32 `protobuf:"varint,3,opt,name=ct_alive,json=ctAlive" json:"ct_alive,omitempty"` + TAlive *int32 `protobuf:"varint,4,opt,name=t_alive,json=tAlive" json:"t_alive,omitempty"` + VictimData *CCSUsrMsg_RoundEndReportData_RerEvent_Victim `protobuf:"bytes,5,opt,name=victim_data,json=victimData" json:"victim_data,omitempty"` + ObjectiveData *CCSUsrMsg_RoundEndReportData_RerEvent_Objective `protobuf:"bytes,6,opt,name=objective_data,json=objectiveData" json:"objective_data,omitempty"` + AllDamageData []*CCSUsrMsg_RoundEndReportData_RerEvent_Damage `protobuf:"bytes,7,rep,name=all_damage_data,json=allDamageData" json:"all_damage_data,omitempty"` +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) Reset() { + *x = CCSUsrMsg_RoundEndReportData_RerEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData_RerEvent) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData_RerEvent.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData_RerEvent) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57, 0} +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetTimestamp() float32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetTerroristOdds() int32 { + if x != nil && x.TerroristOdds != nil { + return *x.TerroristOdds + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetCtAlive() int32 { + if x != nil && x.CtAlive != nil { + return *x.CtAlive + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetTAlive() int32 { + if x != nil && x.TAlive != nil { + return *x.TAlive + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetVictimData() *CCSUsrMsg_RoundEndReportData_RerEvent_Victim { + if x != nil { + return x.VictimData + } + return nil +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetObjectiveData() *CCSUsrMsg_RoundEndReportData_RerEvent_Objective { + if x != nil { + return x.ObjectiveData + } + return nil +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent) GetAllDamageData() []*CCSUsrMsg_RoundEndReportData_RerEvent_Damage { + if x != nil { + return x.AllDamageData + } + return nil +} + +type CCSUsrMsg_RoundEndReportData_InitialConditions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CtEquipValue *int32 `protobuf:"varint,1,opt,name=ct_equip_value,json=ctEquipValue" json:"ct_equip_value,omitempty"` + TEquipValue *int32 `protobuf:"varint,2,opt,name=t_equip_value,json=tEquipValue" json:"t_equip_value,omitempty"` + TerroristOdds *int32 `protobuf:"varint,3,opt,name=terrorist_odds,json=terroristOdds" json:"terrorist_odds,omitempty"` +} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) Reset() { + *x = CCSUsrMsg_RoundEndReportData_InitialConditions{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData_InitialConditions) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData_InitialConditions.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData_InitialConditions) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57, 1} +} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) GetCtEquipValue() int32 { + if x != nil && x.CtEquipValue != nil { + return *x.CtEquipValue + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) GetTEquipValue() int32 { + if x != nil && x.TEquipValue != nil { + return *x.TEquipValue + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_InitialConditions) GetTerroristOdds() int32 { + if x != nil && x.TerroristOdds != nil { + return *x.TerroristOdds + } + return 0 +} + +type CCSUsrMsg_RoundEndReportData_RerEvent_Victim struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TeamNumber *int32 `protobuf:"varint,1,opt,name=team_number,json=teamNumber" json:"team_number,omitempty"` + Playerslot *int32 `protobuf:"varint,2,opt,name=playerslot,def=-1" json:"playerslot,omitempty"` + Xuid *uint64 `protobuf:"varint,3,opt,name=xuid" json:"xuid,omitempty"` + Color *int32 `protobuf:"varint,4,opt,name=color" json:"color,omitempty"` + IsBot *bool `protobuf:"varint,5,opt,name=is_bot,json=isBot" json:"is_bot,omitempty"` + IsDead *bool `protobuf:"varint,6,opt,name=is_dead,json=isDead" json:"is_dead,omitempty"` +} + +// Default values for CCSUsrMsg_RoundEndReportData_RerEvent_Victim fields. +const ( + Default_CCSUsrMsg_RoundEndReportData_RerEvent_Victim_Playerslot = int32(-1) +) + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) Reset() { + *x = CCSUsrMsg_RoundEndReportData_RerEvent_Victim{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Victim) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData_RerEvent_Victim.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Victim) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57, 0, 0} +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetTeamNumber() int32 { + if x != nil && x.TeamNumber != nil { + return *x.TeamNumber + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetPlayerslot() int32 { + if x != nil && x.Playerslot != nil { + return *x.Playerslot + } + return Default_CCSUsrMsg_RoundEndReportData_RerEvent_Victim_Playerslot +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetColor() int32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetIsBot() bool { + if x != nil && x.IsBot != nil { + return *x.IsBot + } + return false +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Victim) GetIsDead() bool { + if x != nil && x.IsDead != nil { + return *x.IsDead + } + return false +} + +type CCSUsrMsg_RoundEndReportData_RerEvent_Objective struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Objective) Reset() { + *x = CCSUsrMsg_RoundEndReportData_RerEvent_Objective{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Objective) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Objective) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Objective) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData_RerEvent_Objective.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Objective) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57, 0, 1} +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Objective) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +type CCSUsrMsg_RoundEndReportData_RerEvent_Damage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OtherPlayerslot *int32 `protobuf:"varint,1,opt,name=other_playerslot,json=otherPlayerslot,def=-1" json:"other_playerslot,omitempty"` + OtherXuid *uint64 `protobuf:"varint,2,opt,name=other_xuid,json=otherXuid" json:"other_xuid,omitempty"` + HealthRemoved *int32 `protobuf:"varint,3,opt,name=health_removed,json=healthRemoved" json:"health_removed,omitempty"` + NumHits *int32 `protobuf:"varint,4,opt,name=num_hits,json=numHits" json:"num_hits,omitempty"` + ReturnHealthRemoved *int32 `protobuf:"varint,5,opt,name=return_health_removed,json=returnHealthRemoved" json:"return_health_removed,omitempty"` + ReturnNumHits *int32 `protobuf:"varint,6,opt,name=return_num_hits,json=returnNumHits" json:"return_num_hits,omitempty"` +} + +// Default values for CCSUsrMsg_RoundEndReportData_RerEvent_Damage fields. +const ( + Default_CCSUsrMsg_RoundEndReportData_RerEvent_Damage_OtherPlayerslot = int32(-1) +) + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) Reset() { + *x = CCSUsrMsg_RoundEndReportData_RerEvent_Damage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Damage) ProtoMessage() {} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) ProtoReflect() protoreflect.Message { + mi := &file_s2_cstrike15_usermessages_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCSUsrMsg_RoundEndReportData_RerEvent_Damage.ProtoReflect.Descriptor instead. +func (*CCSUsrMsg_RoundEndReportData_RerEvent_Damage) Descriptor() ([]byte, []int) { + return file_s2_cstrike15_usermessages_proto_rawDescGZIP(), []int{57, 0, 2} +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetOtherPlayerslot() int32 { + if x != nil && x.OtherPlayerslot != nil { + return *x.OtherPlayerslot + } + return Default_CCSUsrMsg_RoundEndReportData_RerEvent_Damage_OtherPlayerslot +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetOtherXuid() uint64 { + if x != nil && x.OtherXuid != nil { + return *x.OtherXuid + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetHealthRemoved() int32 { + if x != nil && x.HealthRemoved != nil { + return *x.HealthRemoved + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetNumHits() int32 { + if x != nil && x.NumHits != nil { + return *x.NumHits + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetReturnHealthRemoved() int32 { + if x != nil && x.ReturnHealthRemoved != nil { + return *x.ReturnHealthRemoved + } + return 0 +} + +func (x *CCSUsrMsg_RoundEndReportData_RerEvent_Damage) GetReturnNumHits() int32 { + if x != nil && x.ReturnNumHits != nil { + return *x.ReturnNumHits + } + return 0 +} + +var File_s2_cstrike15_usermessages_proto protoreflect.FileDescriptor + +var file_s2_cstrike15_usermessages_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x73, 0x32, 0x2f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x19, 0x73, 0x32, + 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x32, 0x2f, 0x63, 0x73, 0x74, 0x72, + 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x47, 0x55, 0x49, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x56, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x47, 0x55, 0x49, 0x4d, 0x65, + 0x6e, 0x75, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x1a, 0x30, 0x0a, + 0x04, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x28, 0x0a, 0x10, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x69, + 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x11, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xb1, 0x03, 0x0a, 0x10, + 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x75, 0x64, 0x4d, 0x73, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x49, 0x0a, 0x03, 0x70, 0x6f, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x44, + 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x63, 0x6c, 0x72, 0x31, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x52, 0x47, 0x42, 0x41, 0x52, 0x04, 0x63, 0x6c, 0x72, 0x31, 0x12, 0x47, + 0x0a, 0x04, 0x63, 0x6c, 0x72, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x47, 0x42, + 0x41, 0x52, 0x04, 0x63, 0x6c, 0x72, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, + 0x20, 0x0a, 0x0c, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x64, 0x65, 0x4f, 0x75, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x06, 0x66, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x8e, 0x01, 0x0a, 0x0f, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, + 0x61, 0x6b, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x27, 0x0a, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x6d, 0x70, + 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xa6, 0x01, 0x0a, 0x0e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, + 0x61, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x12, 0x45, 0x0a, 0x03, 0x63, 0x6c, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x52, 0x47, 0x42, 0x41, 0x52, 0x03, 0x63, 0x6c, 0x72, 0x22, 0x52, 0x0a, 0x10, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x75, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x83, 0x01, + 0x0a, 0x16, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, + 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x63, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x63, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x6f, 0x0a, 0x1c, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x89, 0x01, 0x0a, + 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x61, 0x77, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, + 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x13, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x6c, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, + 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x73, + 0x6b, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2a, + 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4d, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x51, 0x0a, 0x0a, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x61, 0x6d, 0x65, + 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x22, 0xbe, 0x01, + 0x0a, 0x10, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x13, 0x69, 0x6e, + 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x70, 0x6f, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, + 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, + 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, + 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7d, + 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x61, 0x64, 0x69, + 0x6f, 0x54, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x5f, 0x64, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x44, 0x73, 0x74, 0x12, 0x1a, + 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, + 0x2d, 0x31, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x2e, 0x0a, + 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x33, 0x0a, + 0x15, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4b, 0x65, 0x79, 0x48, 0x69, + 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x22, 0xfe, 0x03, 0x0a, 0x24, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, + 0x65, 0x77, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0e, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x53, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0xa9, 0x02, 0x0a, 0x13, 0x53, 0x70, 0x6f, 0x74, + 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x21, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, + 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x7a, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5a, 0x12, 0x17, + 0x0a, 0x07, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x59, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x5f, + 0x64, 0x65, 0x66, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, 0x73, 0x44, 0x65, 0x66, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x22, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x34, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x43, 0x34, 0x22, 0x8c, 0x01, 0x0a, 0x1d, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, + 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x6b, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x60, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x69, 0x74, + 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x16, 0x43, + 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x45, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, + 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x61, 0x6e, 0x69, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x61, 0x63, 0x74, 0x61, 0x6e, 0x69, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x7a, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5a, 0x22, 0xf2, 0x01, 0x0a, + 0x15, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x65, 0x61, 0x70, 0x6f, + 0x6e, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, + 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5a, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x61, 0x6d, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x63, 0x61, 0x70, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x12, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x63, 0x61, 0x70, 0x65, 0x69, + 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x1f, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x42, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, + 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x5f, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x4f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x68, 0x0a, 0x20, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4f, 0x75, 0x74, + 0x6c, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, + 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, + 0x67, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x69, 0x74, 0x12, 0x13, 0x0a, 0x05, 0x70, + 0x6f, 0x73, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x58, + 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x04, 0x70, 0x6f, 0x73, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x5a, 0x22, 0x7e, 0x0a, 0x11, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x6d, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x62, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6f, 0x62, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, + 0x2d, 0x31, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x27, 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xd4, 0x01, 0x0a, 0x1a, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x10, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x13, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, + 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, + 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x41, 0x0a, 0x1a, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x75, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x22, 0x6d, 0x0a, 0x1a, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x1c, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x67, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x61, 0x67, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x70, 0x5f, 0x77, 0x69, 0x6e, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x70, 0x57, 0x69, 0x6e, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x70, 0x54, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x1b, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x61, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x4b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x72, 0x63, + 0x1a, 0x2e, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x22, 0xa2, 0x01, 0x0a, 0x17, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, + 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x1e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x53, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, + 0x25, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x67, 0x69, + 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x58, 0x52, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x58, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x46, + 0x0a, 0x18, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x61, 0x6c, 0x6c, + 0x56, 0x6f, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x6f, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x70, 0x5f, 0x73, 0x74, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x53, 0x74, 0x72, 0x12, + 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x53, 0x74, 0x72, + 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x73, + 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, + 0x65, 0x61, 0x6d, 0x53, 0x74, 0x72, 0x12, 0x23, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x79, 0x65, 0x73, + 0x5f, 0x6e, 0x6f, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x73, 0x59, 0x65, 0x73, 0x4e, 0x6f, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x10, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x81, 0x01, + 0x0a, 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, + 0x50, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x74, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x6f, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x70, 0x5f, 0x73, 0x74, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x53, 0x74, 0x72, + 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x53, 0x74, + 0x72, 0x22, 0x42, 0x0a, 0x14, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, + 0x6f, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x40, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x29, 0x0a, 0x10, + 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x26, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x4b, 0x69, + 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x5f, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x48, + 0x69, 0x74, 0x73, 0x47, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x5f, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6e, + 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x5f, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x74, 0x73, 0x54, 0x61, 0x6b, 0x65, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x6b, 0x65, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x11, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x47, + 0x69, 0x76, 0x65, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x11, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x6b, 0x65, 0x6e, 0x22, 0xd1, 0x02, 0x0a, 0x1a, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x71, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x6f, 0x6c, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x4f, 0x6c, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x77, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, + 0x6d, 0x5f, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, + 0x6d, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x61, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x58, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x6b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x43, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x76, 0x32, 0x5f, 0x47, 0x43, 0x32, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x58, 0x50, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, + 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x69, + 0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x65, 0x6e, 0x75, 0x12, + 0x28, 0x0a, 0x10, 0x62, 0x69, 0x74, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x69, 0x74, 0x73, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x6d, 0x65, 0x6e, 0x75, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6e, 0x75, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x27, 0x0a, + 0x11, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x61, 0x72, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x14, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6d, 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6d, 0x6d, 0x6f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x61, 0x6d, 0x6d, 0x6f, 0x69, 0x64, 0x78, 0x22, 0x3d, 0x0a, 0x19, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x68, 0x69, + 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x1a, 0x43, 0x43, 0x53, 0x55, 0x73, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x42, 0x0a, + 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x44, + 0x72, 0x6f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x65, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x61, 0x74, + 0x68, 0x22, 0x37, 0x0a, 0x19, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, + 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x54, 0x75, 0x72, 0x6e, 0x4f, 0x66, 0x66, 0x12, 0x1a, + 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, + 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x78, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x43, + 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x5e, 0x0a, 0x0e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x53, 0x55, 0x49, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0xc2, 0x05, 0x0a, 0x17, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x75, 0x69, + 0x64, 0x12, 0x5d, 0x0a, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x52, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x12, 0x62, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x07, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x72, 0x76, + 0x69, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x07, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x63, + 0x6b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, + 0x69, 0x63, 0x6b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x74, 0x0a, 0x04, 0x46, 0x61, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x6e, 0x65, 0x73, 0x73, 0x1a, + 0x5d, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x78, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x76, + 0x0a, 0x06, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x6f, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, + 0x6f, 0x48, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x72, + 0x6f, 0x6d, 0x48, 0x69, 0x74, 0x73, 0x22, 0x91, 0x05, 0x0a, 0x22, 0x43, 0x43, 0x53, 0x55, 0x73, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6e, 0x64, 0x4f, 0x66, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x7e, 0x0a, + 0x0d, 0x61, 0x6c, 0x6c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6e, 0x64, 0x4f, 0x66, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, + 0x61, 0x6c, 0x6c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, + 0x65, 0x6e, 0x65, 0x1a, 0x5a, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x6c, 0x61, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x6c, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x6c, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0xf8, 0x02, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x76, + 0x0a, 0x0a, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6e, 0x64, 0x4f, 0x66, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x6c, 0x61, 0x64, 0x65, 0x52, 0x0a, 0x6e, 0x6f, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x45, 0x63, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x62, 0x6f, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x62, 0x6f, 0x74, 0x22, 0xf0, 0x0a, 0x0a, 0x1c, 0x43, + 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, + 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x82, 0x01, 0x0a, 0x0f, + 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x7d, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0f, + 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0xc4, 0x07, 0x0a, 0x08, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x69, 0x73, 0x74, 0x5f, 0x6f, 0x64, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x73, 0x74, 0x4f, 0x64, 0x64, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x74, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, + 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x78, 0x0a, 0x0b, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x63, + 0x74, 0x69, 0x6d, 0x52, 0x0a, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x81, 0x01, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x7f, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x1a, 0xa7, 0x01, 0x0a, 0x06, 0x56, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x15, + 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x69, 0x73, 0x42, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x44, 0x65, 0x61, 0x64, 0x1a, 0x1f, + 0x0a, 0x09, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, + 0xf4, 0x01, 0x0a, 0x06, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x5f, 0x78, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x58, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x26, + 0x0a, 0x0f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4e, + 0x75, 0x6d, 0x48, 0x69, 0x74, 0x73, 0x1a, 0x84, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, + 0x63, 0x74, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x74, 0x45, 0x71, 0x75, 0x69, 0x70, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x45, 0x71, 0x75, 0x69, + 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x69, 0x73, 0x74, 0x5f, 0x6f, 0x64, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x74, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x73, 0x74, 0x4f, 0x64, 0x64, 0x73, 0x22, 0xc0, 0x02, + 0x0a, 0x1f, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6f, 0x73, 0x74, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x78, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x58, 0x75, 0x69, 0x64, + 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x4b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e, 0x75, 0x6d, 0x48, 0x69, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x61, 0x6b, 0x65, 0x6e, + 0x4b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x6b, 0x65, + 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, + 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x4e, 0x75, 0x6d, 0x48, 0x69, 0x74, 0x73, + 0x22, 0x30, 0x0a, 0x1a, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6f, 0x64, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6f, 0x64, + 0x64, 0x73, 0x22, 0x77, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x44, 0x65, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, + 0x6b, 0x65, 0x31, 0x35, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x65, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xc7, 0x02, 0x0a, 0x13, + 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x6f, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x11, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x10, 0x68, 0x69, 0x74, + 0x62, 0x6f, 0x78, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x52, 0x0a, + 0x09, 0x73, 0x68, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x6f, 0x74, 0x50, 0x6f, + 0x73, 0x12, 0x52, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x08, 0x73, 0x68, 0x6f, + 0x6f, 0x74, 0x44, 0x69, 0x72, 0x22, 0x2a, 0x0a, 0x12, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, 0x75, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x75, 0x6d, 0x6d, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x22, 0x2e, + 0x0a, 0x16, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x75, 0x6d, 0x6d, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x22, 0x33, + 0x0a, 0x1b, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x6f, 0x70, + 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x75, + 0x6d, 0x6d, 0x79, 0x22, 0x33, 0x0a, 0x1b, 0x43, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x62, + 0x62, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x43, 0x53, 0x55, + 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x61, 0x72, 0x6d, 0x75, 0x70, 0x48, 0x61, 0x73, 0x45, + 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x22, 0x2c, 0x0a, 0x14, 0x43, 0x43, + 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x22, 0xd0, 0x01, 0x0a, 0x1d, 0x43, 0x43, 0x53, + 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, 0x6e, + 0x6b, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x54, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x7b, + 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x5f, + 0x76, 0x32, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x47, 0x43, + 0x32, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0xa6, 0x0f, 0x0a, 0x16, + 0x45, 0x43, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x31, 0x35, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, + 0x56, 0x47, 0x55, 0x49, 0x4d, 0x65, 0x6e, 0x75, 0x10, 0xad, 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, + 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x65, 0x69, 0x67, 0x65, 0x72, 0x10, 0xae, 0x02, 0x12, 0x10, + 0x0a, 0x0b, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x10, 0xaf, 0x02, + 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, + 0x74, 0x10, 0xb0, 0x02, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x61, + 0x79, 0x54, 0x65, 0x78, 0x74, 0x10, 0xb1, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, + 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x32, 0x10, 0xb2, 0x02, 0x12, 0x12, 0x0a, + 0x0d, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x10, 0xb3, + 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x4d, 0x73, + 0x67, 0x10, 0xb4, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x48, 0x75, 0x64, 0x10, 0xb5, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x53, 0x5f, + 0x55, 0x4d, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x10, 0xb6, 0x02, 0x12, + 0x10, 0x0a, 0x0b, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0xb8, + 0x02, 0x12, 0x0f, 0x0a, 0x0a, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x64, 0x65, 0x10, + 0xb9, 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x75, 0x6d, 0x62, + 0x6c, 0x65, 0x10, 0xba, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x43, + 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xbb, 0x02, 0x12, 0x1d, + 0x0a, 0x18, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x10, 0xbc, 0x02, 0x12, 0x14, 0x0a, + 0x0f, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x10, 0xbd, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x61, 0x77, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x10, 0xbe, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x53, 0x5f, 0x55, + 0x4d, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x10, 0xbf, 0x02, 0x12, 0x17, + 0x0a, 0x12, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x10, 0xc0, 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xc1, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x54, 0x65, 0x78, 0x74, 0x10, 0xc2, 0x02, + 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x54, 0x65, + 0x78, 0x74, 0x10, 0xc3, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x4b, + 0x65, 0x79, 0x48, 0x69, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x10, 0xc4, 0x02, 0x12, 0x25, 0x0a, + 0x20, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x70, + 0x6f, 0x74, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x10, 0xc5, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, + 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x10, 0xc6, 0x02, 0x12, 0x16, 0x0a, + 0x11, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x6f, 0x6e, + 0x65, 0x79, 0x10, 0xc7, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x10, 0xc8, + 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x53, + 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xc9, 0x02, 0x12, + 0x12, 0x0a, 0x0d, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x6d, + 0x10, 0xca, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x10, 0xcb, 0x02, + 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x10, 0xcc, 0x02, 0x12, 0x1b, 0x0a, + 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xcd, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xce, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x53, 0x5f, + 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, + 0x6f, 0x62, 0x62, 0x79, 0x10, 0xcf, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x10, 0xd0, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x57, + 0x61, 0x72, 0x6d, 0x75, 0x70, 0x48, 0x61, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x10, 0xd2, 0x02, + 0x12, 0x15, 0x0a, 0x10, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd3, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x58, 0x52, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x10, 0xd4, 0x02, 0x12, 0x13, 0x0a, 0x0e, + 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x58, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x10, 0xd5, + 0x02, 0x12, 0x19, 0x0a, 0x14, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x61, 0x6c, 0x6c, 0x56, + 0x6f, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd9, 0x02, 0x12, 0x14, 0x0a, 0x0f, + 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, + 0xda, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, + 0x50, 0x61, 0x73, 0x73, 0x10, 0xdb, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdc, 0x02, 0x12, 0x14, + 0x0a, 0x0f, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65, 0x74, 0x75, + 0x70, 0x10, 0xdd, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x41, 0x6c, + 0x6c, 0x10, 0xde, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, + 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0xdf, 0x02, 0x12, 0x1b, 0x0a, + 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, 0x6e, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xe0, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x10, 0xe1, + 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x4d, + 0x65, 0x6e, 0x75, 0x10, 0xe2, 0x02, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, + 0x42, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xe3, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x6d, 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x10, 0xe4, + 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x72, 0x6b, 0x41, + 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xe5, 0x02, 0x12, 0x1b, 0x0a, + 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xe6, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x72, 0x6f, 0x70, 0x10, 0xe7, 0x02, 0x12, + 0x1a, 0x0a, 0x15, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x6f, + 0x70, 0x54, 0x75, 0x72, 0x6e, 0x4f, 0x66, 0x66, 0x10, 0xe8, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x43, + 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x74, 0x65, 0x6d, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x10, 0xe9, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x43, + 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x10, 0xea, 0x02, 0x12, 0x1e, 0x0a, 0x19, + 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xeb, 0x02, 0x12, 0x14, 0x0a, 0x0f, + 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x69, 0x74, 0x10, + 0xec, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x58, 0x70, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x10, 0xed, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xee, + 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x10, + 0xef, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0xf0, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0xf1, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x42, 0x61, + 0x72, 0x10, 0xf2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x67, 0x68, 0x6c, + 0x69, 0x67, 0x68, 0x74, 0x10, 0xf3, 0x02, 0x12, 0x0f, 0x0a, 0x0a, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x53, 0x53, 0x55, 0x49, 0x10, 0xf4, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x43, 0x53, 0x5f, 0x55, + 0x4d, 0x5f, 0x53, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x10, + 0xf5, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x32, 0x10, 0xf6, + 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6e, 0x64, 0x4f, 0x66, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x10, 0xf7, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, + 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0xf8, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x43, 0x53, 0x5f, 0x55, + 0x4d, 0x5f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xfb, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x53, 0x5f, 0x55, 0x4d, + 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4f, 0x64, 0x64, + 0x73, 0x10, 0xfc, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, + 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x10, 0xfd, 0x02, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x53, + 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x10, 0xfe, 0x02, 0x12, 0x14, + 0x0a, 0x0f, 0x43, 0x53, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xff, 0x02, 0x2a, 0x88, 0x01, 0x0a, 0x22, 0x45, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, + 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, + 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x2c, 0x6b, + 0x5f, 0x45, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x00, 0x12, 0x30, 0x0a, + 0x2c, 0x6b, 0x5f, 0x45, 0x43, 0x53, 0x55, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x5f, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x47, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, +} + +var ( + file_s2_cstrike15_usermessages_proto_rawDescOnce sync.Once + file_s2_cstrike15_usermessages_proto_rawDescData = file_s2_cstrike15_usermessages_proto_rawDesc +) + +func file_s2_cstrike15_usermessages_proto_rawDescGZIP() []byte { + file_s2_cstrike15_usermessages_proto_rawDescOnce.Do(func() { + file_s2_cstrike15_usermessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_cstrike15_usermessages_proto_rawDescData) + }) + return file_s2_cstrike15_usermessages_proto_rawDescData +} + +var file_s2_cstrike15_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_s2_cstrike15_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 85) +var file_s2_cstrike15_usermessages_proto_goTypes = []interface{}{ + (ECstrike15UserMessages)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.ECstrike15UserMessages + (ECSUsrMsg_DisconnectToLobby_Action)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.ECSUsrMsg_DisconnectToLobby_Action + (*CCSUsrMsg_VGUIMenu)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VGUIMenu + (*CCSUsrMsg_Geiger)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Geiger + (*CCSUsrMsg_Train)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Train + (*CCSUsrMsg_HudText)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HudText + (*CCSUsrMsg_HudMsg)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HudMsg + (*CCSUsrMsg_Shake)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Shake + (*CCSUsrMsg_Fade)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Fade + (*CCSUsrMsg_Rumble)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Rumble + (*CCSUsrMsg_CloseCaption)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_CloseCaption + (*CCSUsrMsg_CloseCaptionDirect)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_CloseCaptionDirect + (*CCSUsrMsg_SendAudio)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendAudio + (*CCSUsrMsg_RawAudio)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RawAudio + (*CCSUsrMsg_VoiceMask)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoiceMask + (*CCSUsrMsg_Damage)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Damage + (*CCSUsrMsg_RadioText)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RadioText + (*CCSUsrMsg_HintText)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HintText + (*CCSUsrMsg_KeyHintText)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_KeyHintText + (*CCSUsrMsg_ProcessSpottedEntityUpdate)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ProcessSpottedEntityUpdate + (*CCSUsrMsg_SendPlayerItemDrops)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendPlayerItemDrops + (*CCSUsrMsg_SendPlayerItemFound)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendPlayerItemFound + (*CCSUsrMsg_ReloadEffect)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ReloadEffect + (*CCSUsrMsg_WeaponSound)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_WeaponSound + (*CCSUsrMsg_UpdateScreenHealthBar)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_UpdateScreenHealthBar + (*CCSUsrMsg_EntityOutlineHighlight)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EntityOutlineHighlight + (*CCSUsrMsg_AdjustMoney)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_AdjustMoney + (*CCSUsrMsg_ReportHit)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ReportHit + (*CCSUsrMsg_KillCam)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_KillCam + (*CCSUsrMsg_DesiredTimescale)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_DesiredTimescale + (*CCSUsrMsg_CurrentTimescale)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_CurrentTimescale + (*CCSUsrMsg_AchievementEvent)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_AchievementEvent + (*CCSUsrMsg_MatchEndConditions)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_MatchEndConditions + (*CCSUsrMsg_PlayerStatsUpdate)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerStatsUpdate + (*CCSUsrMsg_QuestProgress)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_QuestProgress + (*CCSUsrMsg_ScoreLeaderboardData)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ScoreLeaderboardData + (*CCSUsrMsg_PlayerDecalDigitalSignature)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerDecalDigitalSignature + (*CCSUsrMsg_XRankGet)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_XRankGet + (*CCSUsrMsg_XRankUpd)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_XRankUpd + (*CCSUsrMsg_CallVoteFailed)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_CallVoteFailed + (*CCSUsrMsg_VoteStart)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoteStart + (*CCSUsrMsg_VotePass)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VotePass + (*CCSUsrMsg_VoteFailed)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoteFailed + (*CCSUsrMsg_VoteSetup)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoteSetup + (*CCSUsrMsg_SendLastKillerDamageToClient)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendLastKillerDamageToClient + (*CCSUsrMsg_ServerRankUpdate)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankUpdate + (*CCSUsrMsg_XpUpdate)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_XpUpdate + (*CCSUsrMsg_ItemPickup)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ItemPickup + (*CCSUsrMsg_ShowMenu)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ShowMenu + (*CCSUsrMsg_BarTime)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_BarTime + (*CCSUsrMsg_AmmoDenied)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_AmmoDenied + (*CCSUsrMsg_MarkAchievement)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_MarkAchievement + (*CCSUsrMsg_MatchStatsUpdate)(nil), // 52: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_MatchStatsUpdate + (*CCSUsrMsg_ItemDrop)(nil), // 53: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ItemDrop + (*CCSUsrMsg_GlowPropTurnOff)(nil), // 54: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_GlowPropTurnOff + (*CCSUsrMsg_RoundBackupFilenames)(nil), // 55: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundBackupFilenames + (*CCSUsrMsg_SSUI)(nil), // 56: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SSUI + (*CCSUsrMsg_SurvivalStats)(nil), // 57: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats + (*CCSUsrMsg_EndOfMatchAllPlayersData)(nil), // 58: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData + (*CCSUsrMsg_RoundEndReportData)(nil), // 59: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData + (*CCSUsrMsg_PostRoundDamageReport)(nil), // 60: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PostRoundDamageReport + (*CCSUsrMsg_CurrentRoundOdds)(nil), // 61: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_CurrentRoundOdds + (*CCSUsrMsg_DeepStats)(nil), // 62: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_DeepStats + (*CCSUsrMsg_ShootInfo)(nil), // 63: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ShootInfo + (*CCSUsrMsg_ResetHud)(nil), // 64: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ResetHud + (*CCSUsrMsg_GameTitle)(nil), // 65: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_GameTitle + (*CCSUsrMsg_RequestState)(nil), // 66: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RequestState + (*CCSUsrMsg_StopSpectatorMode)(nil), // 67: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_StopSpectatorMode + (*CCSUsrMsg_DisconnectToLobby)(nil), // 68: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_DisconnectToLobby + (*CCSUsrMsg_WarmupHasEnded)(nil), // 69: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_WarmupHasEnded + (*CCSUsrMsg_ClientInfo)(nil), // 70: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ClientInfo + (*CCSUsrMsg_ServerRankRevealAll)(nil), // 71: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankRevealAll + (*CCSUsrMsg_VGUIMenu_Keys)(nil), // 72: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VGUIMenu.Keys + (*CCSUsrMsg_VoiceMask_PlayerMask)(nil), // 73: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoiceMask.PlayerMask + (*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate)(nil), // 74: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ProcessSpottedEntityUpdate.SpottedEntityUpdate + (*CCSUsrMsg_PlayerStatsUpdate_Stat)(nil), // 75: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerStatsUpdate.Stat + (*CCSUsrMsg_ServerRankUpdate_RankUpdate)(nil), // 76: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankUpdate.RankUpdate + (*CCSUsrMsg_SurvivalStats_Fact)(nil), // 77: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Fact + (*CCSUsrMsg_SurvivalStats_Placement)(nil), // 78: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Placement + (*CCSUsrMsg_SurvivalStats_Damage)(nil), // 79: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Damage + (*CCSUsrMsg_EndOfMatchAllPlayersData_Accolade)(nil), // 80: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.Accolade + (*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData)(nil), // 81: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData + (*CCSUsrMsg_RoundEndReportData_RerEvent)(nil), // 82: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent + (*CCSUsrMsg_RoundEndReportData_InitialConditions)(nil), // 83: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.InitialConditions + (*CCSUsrMsg_RoundEndReportData_RerEvent_Victim)(nil), // 84: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Victim + (*CCSUsrMsg_RoundEndReportData_RerEvent_Objective)(nil), // 85: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Objective + (*CCSUsrMsg_RoundEndReportData_RerEvent_Damage)(nil), // 86: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Damage + (*CMsgVector2D)(nil), // 87: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector2D + (*CMsgRGBA)(nil), // 88: com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + (*CMsgVector)(nil), // 89: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + (*CEconItemPreviewDataBlock)(nil), // 90: com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + (*ScoreLeaderboardData)(nil), // 91: com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData + (*PlayerDecalDigitalSignature)(nil), // 92: com.github.markus_wa.demoinfocs_golang.s2.PlayerDecalDigitalSignature + (*CMsgGCCstrike15V2_GC2ServerNotifyXPRewarded)(nil), // 93: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded + (*CMsgGCCStrike15_ClientDeepStats)(nil), // 94: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats + (*CMsgTransform)(nil), // 95: com.github.markus_wa.demoinfocs_golang.s2.CMsgTransform + (*CMsgQAngle)(nil), // 96: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + (*CMsgGCCStrike15V2_MatchmakingGC2ServerReserve)(nil), // 97: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve +} +var file_s2_cstrike15_usermessages_proto_depIdxs = []int32{ + 72, // 0: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VGUIMenu.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VGUIMenu.Keys + 87, // 1: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HudMsg.pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector2D + 88, // 2: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HudMsg.clr1:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + 88, // 3: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_HudMsg.clr2:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + 88, // 4: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Fade.clr:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + 73, // 5: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoiceMask.player_masks:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_VoiceMask.PlayerMask + 89, // 6: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_Damage.inflictor_world_pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 74, // 7: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ProcessSpottedEntityUpdate.entity_updates:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ProcessSpottedEntityUpdate.SpottedEntityUpdate + 90, // 8: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendPlayerItemDrops.entity_updates:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + 90, // 9: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SendPlayerItemFound.iteminfo:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + 75, // 10: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerStatsUpdate.stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerStatsUpdate.Stat + 91, // 11: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ScoreLeaderboardData.data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ScoreLeaderboardData + 92, // 12: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_PlayerDecalDigitalSignature.data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PlayerDecalDigitalSignature + 76, // 13: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankUpdate.rank_update:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankUpdate.RankUpdate + 93, // 14: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_XpUpdate.data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded + 77, // 15: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.facts:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Fact + 78, // 16: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.users:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Placement + 79, // 17: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.damages:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_SurvivalStats.Damage + 81, // 18: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.allplayerdata:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData + 83, // 19: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.init_conditions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.InitialConditions + 82, // 20: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.all_rer_event_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent + 94, // 21: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_DeepStats.stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_ClientDeepStats + 95, // 22: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ShootInfo.hitbox_transforms:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgTransform + 89, // 23: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ShootInfo.shoot_pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 96, // 24: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ShootInfo.shoot_dir:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 97, // 25: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_ServerRankRevealAll.reservation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve + 80, // 26: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData.nomination:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.Accolade + 90, // 27: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData.items:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEconItemPreviewDataBlock + 84, // 28: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.victim_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Victim + 85, // 29: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.objective_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Objective + 86, // 30: com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.all_damage_data:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CCSUsrMsg_RoundEndReportData.RerEvent.Damage + 31, // [31:31] is the sub-list for method output_type + 31, // [31:31] is the sub-list for method input_type + 31, // [31:31] is the sub-list for extension type_name + 31, // [31:31] is the sub-list for extension extendee + 0, // [0:31] is the sub-list for field type_name +} + +func init() { file_s2_cstrike15_usermessages_proto_init() } +func file_s2_cstrike15_usermessages_proto_init() { + if File_s2_cstrike15_usermessages_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + file_s2_cstrike15_gcmessages_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_cstrike15_usermessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VGUIMenu); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Geiger); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Train); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_HudText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_HudMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Shake); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Fade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Rumble); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_CloseCaption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_CloseCaptionDirect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SendAudio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RawAudio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VoiceMask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_Damage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RadioText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_HintText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_KeyHintText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ProcessSpottedEntityUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SendPlayerItemDrops); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SendPlayerItemFound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ReloadEffect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_WeaponSound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_UpdateScreenHealthBar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_EntityOutlineHighlight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_AdjustMoney); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ReportHit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_KillCam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_DesiredTimescale); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_CurrentTimescale); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_AchievementEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_MatchEndConditions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_PlayerStatsUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_QuestProgress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ScoreLeaderboardData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_PlayerDecalDigitalSignature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_XRankGet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_XRankUpd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_CallVoteFailed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VoteStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VotePass); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VoteFailed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VoteSetup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SendLastKillerDamageToClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ServerRankUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_XpUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ItemPickup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ShowMenu); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_BarTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_AmmoDenied); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_MarkAchievement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_MatchStatsUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ItemDrop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_GlowPropTurnOff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundBackupFilenames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SSUI); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SurvivalStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_EndOfMatchAllPlayersData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_PostRoundDamageReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_CurrentRoundOdds); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_DeepStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ShootInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ResetHud); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_GameTitle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RequestState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_StopSpectatorMode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_DisconnectToLobby); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_WarmupHasEnded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ClientInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ServerRankRevealAll); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VGUIMenu_Keys); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_VoiceMask_PlayerMask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ProcessSpottedEntityUpdate_SpottedEntityUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_PlayerStatsUpdate_Stat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_ServerRankUpdate_RankUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SurvivalStats_Fact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SurvivalStats_Placement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_SurvivalStats_Damage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_EndOfMatchAllPlayersData_Accolade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_EndOfMatchAllPlayersData_PlayerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData_RerEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData_InitialConditions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData_RerEvent_Victim); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData_RerEvent_Objective); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_cstrike15_usermessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCSUsrMsg_RoundEndReportData_RerEvent_Damage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_cstrike15_usermessages_proto_rawDesc, + NumEnums: 2, + NumMessages: 85, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_cstrike15_usermessages_proto_goTypes, + DependencyIndexes: file_s2_cstrike15_usermessages_proto_depIdxs, + EnumInfos: file_s2_cstrike15_usermessages_proto_enumTypes, + MessageInfos: file_s2_cstrike15_usermessages_proto_msgTypes, + }.Build() + File_s2_cstrike15_usermessages_proto = out.File + file_s2_cstrike15_usermessages_proto_rawDesc = nil + file_s2_cstrike15_usermessages_proto_goTypes = nil + file_s2_cstrike15_usermessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/demo.pb.go b/pkg/demoinfocs/msgs2/demo.pb.go new file mode 100644 index 00000000..83ca8117 --- /dev/null +++ b/pkg/demoinfocs/msgs2/demo.pb.go @@ -0,0 +1,2166 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/demo.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EDemoCommands int32 + +const ( + EDemoCommands_DEM_Error EDemoCommands = -1 + EDemoCommands_DEM_Stop EDemoCommands = 0 + EDemoCommands_DEM_FileHeader EDemoCommands = 1 + EDemoCommands_DEM_FileInfo EDemoCommands = 2 + EDemoCommands_DEM_SyncTick EDemoCommands = 3 + EDemoCommands_DEM_SendTables EDemoCommands = 4 + EDemoCommands_DEM_ClassInfo EDemoCommands = 5 + EDemoCommands_DEM_StringTables EDemoCommands = 6 + EDemoCommands_DEM_Packet EDemoCommands = 7 + EDemoCommands_DEM_SignonPacket EDemoCommands = 8 + EDemoCommands_DEM_ConsoleCmd EDemoCommands = 9 + EDemoCommands_DEM_CustomData EDemoCommands = 10 + EDemoCommands_DEM_CustomDataCallbacks EDemoCommands = 11 + EDemoCommands_DEM_UserCmd EDemoCommands = 12 + EDemoCommands_DEM_FullPacket EDemoCommands = 13 + EDemoCommands_DEM_SaveGame EDemoCommands = 14 + EDemoCommands_DEM_SpawnGroups EDemoCommands = 15 + EDemoCommands_DEM_AnimationData EDemoCommands = 16 + EDemoCommands_DEM_Max EDemoCommands = 17 + EDemoCommands_DEM_IsCompressed EDemoCommands = 64 +) + +// Enum value maps for EDemoCommands. +var ( + EDemoCommands_name = map[int32]string{ + -1: "DEM_Error", + 0: "DEM_Stop", + 1: "DEM_FileHeader", + 2: "DEM_FileInfo", + 3: "DEM_SyncTick", + 4: "DEM_SendTables", + 5: "DEM_ClassInfo", + 6: "DEM_StringTables", + 7: "DEM_Packet", + 8: "DEM_SignonPacket", + 9: "DEM_ConsoleCmd", + 10: "DEM_CustomData", + 11: "DEM_CustomDataCallbacks", + 12: "DEM_UserCmd", + 13: "DEM_FullPacket", + 14: "DEM_SaveGame", + 15: "DEM_SpawnGroups", + 16: "DEM_AnimationData", + 17: "DEM_Max", + 64: "DEM_IsCompressed", + } + EDemoCommands_value = map[string]int32{ + "DEM_Error": -1, + "DEM_Stop": 0, + "DEM_FileHeader": 1, + "DEM_FileInfo": 2, + "DEM_SyncTick": 3, + "DEM_SendTables": 4, + "DEM_ClassInfo": 5, + "DEM_StringTables": 6, + "DEM_Packet": 7, + "DEM_SignonPacket": 8, + "DEM_ConsoleCmd": 9, + "DEM_CustomData": 10, + "DEM_CustomDataCallbacks": 11, + "DEM_UserCmd": 12, + "DEM_FullPacket": 13, + "DEM_SaveGame": 14, + "DEM_SpawnGroups": 15, + "DEM_AnimationData": 16, + "DEM_Max": 17, + "DEM_IsCompressed": 64, + } +) + +func (x EDemoCommands) Enum() *EDemoCommands { + p := new(EDemoCommands) + *p = x + return p +} + +func (x EDemoCommands) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EDemoCommands) Descriptor() protoreflect.EnumDescriptor { + return file_s2_demo_proto_enumTypes[0].Descriptor() +} + +func (EDemoCommands) Type() protoreflect.EnumType { + return &file_s2_demo_proto_enumTypes[0] +} + +func (x EDemoCommands) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EDemoCommands) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EDemoCommands(num) + return nil +} + +// Deprecated: Use EDemoCommands.Descriptor instead. +func (EDemoCommands) EnumDescriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{0} +} + +type CDemoFileHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DemoFileStamp *string `protobuf:"bytes,1,req,name=demo_file_stamp,json=demoFileStamp" json:"demo_file_stamp,omitempty"` + NetworkProtocol *int32 `protobuf:"varint,2,opt,name=network_protocol,json=networkProtocol" json:"network_protocol,omitempty"` + ServerName *string `protobuf:"bytes,3,opt,name=server_name,json=serverName" json:"server_name,omitempty"` + ClientName *string `protobuf:"bytes,4,opt,name=client_name,json=clientName" json:"client_name,omitempty"` + MapName *string `protobuf:"bytes,5,opt,name=map_name,json=mapName" json:"map_name,omitempty"` + GameDirectory *string `protobuf:"bytes,6,opt,name=game_directory,json=gameDirectory" json:"game_directory,omitempty"` + FullpacketsVersion *int32 `protobuf:"varint,7,opt,name=fullpackets_version,json=fullpacketsVersion" json:"fullpackets_version,omitempty"` + AllowClientsideEntities *bool `protobuf:"varint,8,opt,name=allow_clientside_entities,json=allowClientsideEntities" json:"allow_clientside_entities,omitempty"` + AllowClientsideParticles *bool `protobuf:"varint,9,opt,name=allow_clientside_particles,json=allowClientsideParticles" json:"allow_clientside_particles,omitempty"` + Addons *string `protobuf:"bytes,10,opt,name=addons" json:"addons,omitempty"` + DemoVersionName *string `protobuf:"bytes,11,opt,name=demo_version_name,json=demoVersionName" json:"demo_version_name,omitempty"` + DemoVersionGuid *string `protobuf:"bytes,12,opt,name=demo_version_guid,json=demoVersionGuid" json:"demo_version_guid,omitempty"` + BuildNum *int32 `protobuf:"varint,13,opt,name=build_num,json=buildNum" json:"build_num,omitempty"` + Game *string `protobuf:"bytes,14,opt,name=game" json:"game,omitempty"` +} + +func (x *CDemoFileHeader) Reset() { + *x = CDemoFileHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoFileHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoFileHeader) ProtoMessage() {} + +func (x *CDemoFileHeader) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoFileHeader.ProtoReflect.Descriptor instead. +func (*CDemoFileHeader) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{0} +} + +func (x *CDemoFileHeader) GetDemoFileStamp() string { + if x != nil && x.DemoFileStamp != nil { + return *x.DemoFileStamp + } + return "" +} + +func (x *CDemoFileHeader) GetNetworkProtocol() int32 { + if x != nil && x.NetworkProtocol != nil { + return *x.NetworkProtocol + } + return 0 +} + +func (x *CDemoFileHeader) GetServerName() string { + if x != nil && x.ServerName != nil { + return *x.ServerName + } + return "" +} + +func (x *CDemoFileHeader) GetClientName() string { + if x != nil && x.ClientName != nil { + return *x.ClientName + } + return "" +} + +func (x *CDemoFileHeader) GetMapName() string { + if x != nil && x.MapName != nil { + return *x.MapName + } + return "" +} + +func (x *CDemoFileHeader) GetGameDirectory() string { + if x != nil && x.GameDirectory != nil { + return *x.GameDirectory + } + return "" +} + +func (x *CDemoFileHeader) GetFullpacketsVersion() int32 { + if x != nil && x.FullpacketsVersion != nil { + return *x.FullpacketsVersion + } + return 0 +} + +func (x *CDemoFileHeader) GetAllowClientsideEntities() bool { + if x != nil && x.AllowClientsideEntities != nil { + return *x.AllowClientsideEntities + } + return false +} + +func (x *CDemoFileHeader) GetAllowClientsideParticles() bool { + if x != nil && x.AllowClientsideParticles != nil { + return *x.AllowClientsideParticles + } + return false +} + +func (x *CDemoFileHeader) GetAddons() string { + if x != nil && x.Addons != nil { + return *x.Addons + } + return "" +} + +func (x *CDemoFileHeader) GetDemoVersionName() string { + if x != nil && x.DemoVersionName != nil { + return *x.DemoVersionName + } + return "" +} + +func (x *CDemoFileHeader) GetDemoVersionGuid() string { + if x != nil && x.DemoVersionGuid != nil { + return *x.DemoVersionGuid + } + return "" +} + +func (x *CDemoFileHeader) GetBuildNum() int32 { + if x != nil && x.BuildNum != nil { + return *x.BuildNum + } + return 0 +} + +func (x *CDemoFileHeader) GetGame() string { + if x != nil && x.Game != nil { + return *x.Game + } + return "" +} + +type CGameInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dota *CGameInfo_CDotaGameInfo `protobuf:"bytes,4,opt,name=dota" json:"dota,omitempty"` +} + +func (x *CGameInfo) Reset() { + *x = CGameInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameInfo) ProtoMessage() {} + +func (x *CGameInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameInfo.ProtoReflect.Descriptor instead. +func (*CGameInfo) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{1} +} + +func (x *CGameInfo) GetDota() *CGameInfo_CDotaGameInfo { + if x != nil { + return x.Dota + } + return nil +} + +type CDemoFileInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlaybackTime *float32 `protobuf:"fixed32,1,opt,name=playback_time,json=playbackTime" json:"playback_time,omitempty"` + PlaybackTicks *int32 `protobuf:"varint,2,opt,name=playback_ticks,json=playbackTicks" json:"playback_ticks,omitempty"` + PlaybackFrames *int32 `protobuf:"varint,3,opt,name=playback_frames,json=playbackFrames" json:"playback_frames,omitempty"` + GameInfo *CGameInfo `protobuf:"bytes,4,opt,name=game_info,json=gameInfo" json:"game_info,omitempty"` +} + +func (x *CDemoFileInfo) Reset() { + *x = CDemoFileInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoFileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoFileInfo) ProtoMessage() {} + +func (x *CDemoFileInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoFileInfo.ProtoReflect.Descriptor instead. +func (*CDemoFileInfo) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{2} +} + +func (x *CDemoFileInfo) GetPlaybackTime() float32 { + if x != nil && x.PlaybackTime != nil { + return *x.PlaybackTime + } + return 0 +} + +func (x *CDemoFileInfo) GetPlaybackTicks() int32 { + if x != nil && x.PlaybackTicks != nil { + return *x.PlaybackTicks + } + return 0 +} + +func (x *CDemoFileInfo) GetPlaybackFrames() int32 { + if x != nil && x.PlaybackFrames != nil { + return *x.PlaybackFrames + } + return 0 +} + +func (x *CDemoFileInfo) GetGameInfo() *CGameInfo { + if x != nil { + return x.GameInfo + } + return nil +} + +type CDemoPacket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoPacket) Reset() { + *x = CDemoPacket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoPacket) ProtoMessage() {} + +func (x *CDemoPacket) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoPacket.ProtoReflect.Descriptor instead. +func (*CDemoPacket) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{3} +} + +func (x *CDemoPacket) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoFullPacket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StringTable *CDemoStringTables `protobuf:"bytes,1,opt,name=string_table,json=stringTable" json:"string_table,omitempty"` + Packet *CDemoPacket `protobuf:"bytes,2,opt,name=packet" json:"packet,omitempty"` +} + +func (x *CDemoFullPacket) Reset() { + *x = CDemoFullPacket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoFullPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoFullPacket) ProtoMessage() {} + +func (x *CDemoFullPacket) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoFullPacket.ProtoReflect.Descriptor instead. +func (*CDemoFullPacket) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{4} +} + +func (x *CDemoFullPacket) GetStringTable() *CDemoStringTables { + if x != nil { + return x.StringTable + } + return nil +} + +func (x *CDemoFullPacket) GetPacket() *CDemoPacket { + if x != nil { + return x.Packet + } + return nil +} + +type CDemoSaveGame struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` + SteamId *uint64 `protobuf:"fixed64,2,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + Signature *uint64 `protobuf:"fixed64,3,opt,name=signature" json:"signature,omitempty"` + Version *int32 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"` +} + +func (x *CDemoSaveGame) Reset() { + *x = CDemoSaveGame{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoSaveGame) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoSaveGame) ProtoMessage() {} + +func (x *CDemoSaveGame) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoSaveGame.ProtoReflect.Descriptor instead. +func (*CDemoSaveGame) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{5} +} + +func (x *CDemoSaveGame) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *CDemoSaveGame) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CDemoSaveGame) GetSignature() uint64 { + if x != nil && x.Signature != nil { + return *x.Signature + } + return 0 +} + +func (x *CDemoSaveGame) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +type CDemoSyncTick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CDemoSyncTick) Reset() { + *x = CDemoSyncTick{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoSyncTick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoSyncTick) ProtoMessage() {} + +func (x *CDemoSyncTick) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoSyncTick.ProtoReflect.Descriptor instead. +func (*CDemoSyncTick) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{6} +} + +type CDemoConsoleCmd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cmdstring *string `protobuf:"bytes,1,opt,name=cmdstring" json:"cmdstring,omitempty"` +} + +func (x *CDemoConsoleCmd) Reset() { + *x = CDemoConsoleCmd{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoConsoleCmd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoConsoleCmd) ProtoMessage() {} + +func (x *CDemoConsoleCmd) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoConsoleCmd.ProtoReflect.Descriptor instead. +func (*CDemoConsoleCmd) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{7} +} + +func (x *CDemoConsoleCmd) GetCmdstring() string { + if x != nil && x.Cmdstring != nil { + return *x.Cmdstring + } + return "" +} + +type CDemoSendTables struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoSendTables) Reset() { + *x = CDemoSendTables{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoSendTables) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoSendTables) ProtoMessage() {} + +func (x *CDemoSendTables) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoSendTables.ProtoReflect.Descriptor instead. +func (*CDemoSendTables) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{8} +} + +func (x *CDemoSendTables) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoClassInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Classes []*CDemoClassInfoClassT `protobuf:"bytes,1,rep,name=classes" json:"classes,omitempty"` +} + +func (x *CDemoClassInfo) Reset() { + *x = CDemoClassInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoClassInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoClassInfo) ProtoMessage() {} + +func (x *CDemoClassInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoClassInfo.ProtoReflect.Descriptor instead. +func (*CDemoClassInfo) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{9} +} + +func (x *CDemoClassInfo) GetClasses() []*CDemoClassInfoClassT { + if x != nil { + return x.Classes + } + return nil +} + +type CDemoCustomData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CallbackIndex *int32 `protobuf:"varint,1,opt,name=callback_index,json=callbackIndex" json:"callback_index,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoCustomData) Reset() { + *x = CDemoCustomData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoCustomData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoCustomData) ProtoMessage() {} + +func (x *CDemoCustomData) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoCustomData.ProtoReflect.Descriptor instead. +func (*CDemoCustomData) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{10} +} + +func (x *CDemoCustomData) GetCallbackIndex() int32 { + if x != nil && x.CallbackIndex != nil { + return *x.CallbackIndex + } + return 0 +} + +func (x *CDemoCustomData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoCustomDataCallbacks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SaveId []string `protobuf:"bytes,1,rep,name=save_id,json=saveId" json:"save_id,omitempty"` +} + +func (x *CDemoCustomDataCallbacks) Reset() { + *x = CDemoCustomDataCallbacks{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoCustomDataCallbacks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoCustomDataCallbacks) ProtoMessage() {} + +func (x *CDemoCustomDataCallbacks) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoCustomDataCallbacks.ProtoReflect.Descriptor instead. +func (*CDemoCustomDataCallbacks) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{11} +} + +func (x *CDemoCustomDataCallbacks) GetSaveId() []string { + if x != nil { + return x.SaveId + } + return nil +} + +type CDemoAnimationData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityId *int32 `protobuf:"zigzag32,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"` + StartTick *int32 `protobuf:"varint,2,opt,name=start_tick,json=startTick" json:"start_tick,omitempty"` + EndTick *int32 `protobuf:"varint,3,opt,name=end_tick,json=endTick" json:"end_tick,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoAnimationData) Reset() { + *x = CDemoAnimationData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoAnimationData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoAnimationData) ProtoMessage() {} + +func (x *CDemoAnimationData) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoAnimationData.ProtoReflect.Descriptor instead. +func (*CDemoAnimationData) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{12} +} + +func (x *CDemoAnimationData) GetEntityId() int32 { + if x != nil && x.EntityId != nil { + return *x.EntityId + } + return 0 +} + +func (x *CDemoAnimationData) GetStartTick() int32 { + if x != nil && x.StartTick != nil { + return *x.StartTick + } + return 0 +} + +func (x *CDemoAnimationData) GetEndTick() int32 { + if x != nil && x.EndTick != nil { + return *x.EndTick + } + return 0 +} + +func (x *CDemoAnimationData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoStringTables struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tables []*CDemoStringTablesTableT `protobuf:"bytes,1,rep,name=tables" json:"tables,omitempty"` +} + +func (x *CDemoStringTables) Reset() { + *x = CDemoStringTables{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoStringTables) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoStringTables) ProtoMessage() {} + +func (x *CDemoStringTables) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoStringTables.ProtoReflect.Descriptor instead. +func (*CDemoStringTables) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{13} +} + +func (x *CDemoStringTables) GetTables() []*CDemoStringTablesTableT { + if x != nil { + return x.Tables + } + return nil +} + +type CDemoStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CDemoStop) Reset() { + *x = CDemoStop{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoStop) ProtoMessage() {} + +func (x *CDemoStop) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoStop.ProtoReflect.Descriptor instead. +func (*CDemoStop) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{14} +} + +type CDemoUserCmd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CmdNumber *int32 `protobuf:"varint,1,opt,name=cmd_number,json=cmdNumber" json:"cmd_number,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoUserCmd) Reset() { + *x = CDemoUserCmd{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoUserCmd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoUserCmd) ProtoMessage() {} + +func (x *CDemoUserCmd) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoUserCmd.ProtoReflect.Descriptor instead. +func (*CDemoUserCmd) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{15} +} + +func (x *CDemoUserCmd) GetCmdNumber() int32 { + if x != nil && x.CmdNumber != nil { + return *x.CmdNumber + } + return 0 +} + +func (x *CDemoUserCmd) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoSpawnGroups struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgs [][]byte `protobuf:"bytes,3,rep,name=msgs" json:"msgs,omitempty"` +} + +func (x *CDemoSpawnGroups) Reset() { + *x = CDemoSpawnGroups{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoSpawnGroups) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoSpawnGroups) ProtoMessage() {} + +func (x *CDemoSpawnGroups) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoSpawnGroups.ProtoReflect.Descriptor instead. +func (*CDemoSpawnGroups) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{16} +} + +func (x *CDemoSpawnGroups) GetMsgs() [][]byte { + if x != nil { + return x.Msgs + } + return nil +} + +type CGameInfo_CDotaGameInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + GameMode *int32 `protobuf:"varint,2,opt,name=game_mode,json=gameMode" json:"game_mode,omitempty"` + GameWinner *int32 `protobuf:"varint,3,opt,name=game_winner,json=gameWinner" json:"game_winner,omitempty"` + PlayerInfo []*CGameInfo_CDotaGameInfo_CPlayerInfo `protobuf:"bytes,4,rep,name=player_info,json=playerInfo" json:"player_info,omitempty"` + Leagueid *uint32 `protobuf:"varint,5,opt,name=leagueid" json:"leagueid,omitempty"` + PicksBans []*CGameInfo_CDotaGameInfo_CHeroSelectEvent `protobuf:"bytes,6,rep,name=picks_bans,json=picksBans" json:"picks_bans,omitempty"` + RadiantTeamId *uint32 `protobuf:"varint,7,opt,name=radiant_team_id,json=radiantTeamId" json:"radiant_team_id,omitempty"` + DireTeamId *uint32 `protobuf:"varint,8,opt,name=dire_team_id,json=direTeamId" json:"dire_team_id,omitempty"` + RadiantTeamTag *string `protobuf:"bytes,9,opt,name=radiant_team_tag,json=radiantTeamTag" json:"radiant_team_tag,omitempty"` + DireTeamTag *string `protobuf:"bytes,10,opt,name=dire_team_tag,json=direTeamTag" json:"dire_team_tag,omitempty"` + EndTime *uint32 `protobuf:"varint,11,opt,name=end_time,json=endTime" json:"end_time,omitempty"` +} + +func (x *CGameInfo_CDotaGameInfo) Reset() { + *x = CGameInfo_CDotaGameInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameInfo_CDotaGameInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameInfo_CDotaGameInfo) ProtoMessage() {} + +func (x *CGameInfo_CDotaGameInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameInfo_CDotaGameInfo.ProtoReflect.Descriptor instead. +func (*CGameInfo_CDotaGameInfo) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *CGameInfo_CDotaGameInfo) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetGameMode() int32 { + if x != nil && x.GameMode != nil { + return *x.GameMode + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetGameWinner() int32 { + if x != nil && x.GameWinner != nil { + return *x.GameWinner + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetPlayerInfo() []*CGameInfo_CDotaGameInfo_CPlayerInfo { + if x != nil { + return x.PlayerInfo + } + return nil +} + +func (x *CGameInfo_CDotaGameInfo) GetLeagueid() uint32 { + if x != nil && x.Leagueid != nil { + return *x.Leagueid + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetPicksBans() []*CGameInfo_CDotaGameInfo_CHeroSelectEvent { + if x != nil { + return x.PicksBans + } + return nil +} + +func (x *CGameInfo_CDotaGameInfo) GetRadiantTeamId() uint32 { + if x != nil && x.RadiantTeamId != nil { + return *x.RadiantTeamId + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetDireTeamId() uint32 { + if x != nil && x.DireTeamId != nil { + return *x.DireTeamId + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo) GetRadiantTeamTag() string { + if x != nil && x.RadiantTeamTag != nil { + return *x.RadiantTeamTag + } + return "" +} + +func (x *CGameInfo_CDotaGameInfo) GetDireTeamTag() string { + if x != nil && x.DireTeamTag != nil { + return *x.DireTeamTag + } + return "" +} + +func (x *CGameInfo_CDotaGameInfo) GetEndTime() uint32 { + if x != nil && x.EndTime != nil { + return *x.EndTime + } + return 0 +} + +type CGameInfo_CDotaGameInfo_CPlayerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeroName *string `protobuf:"bytes,1,opt,name=hero_name,json=heroName" json:"hero_name,omitempty"` + PlayerName *string `protobuf:"bytes,2,opt,name=player_name,json=playerName" json:"player_name,omitempty"` + IsFakeClient *bool `protobuf:"varint,3,opt,name=is_fake_client,json=isFakeClient" json:"is_fake_client,omitempty"` + Steamid *uint64 `protobuf:"varint,4,opt,name=steamid" json:"steamid,omitempty"` + GameTeam *int32 `protobuf:"varint,5,opt,name=game_team,json=gameTeam" json:"game_team,omitempty"` +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) Reset() { + *x = CGameInfo_CDotaGameInfo_CPlayerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameInfo_CDotaGameInfo_CPlayerInfo) ProtoMessage() {} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameInfo_CDotaGameInfo_CPlayerInfo.ProtoReflect.Descriptor instead. +func (*CGameInfo_CDotaGameInfo_CPlayerInfo) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{1, 0, 0} +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) GetHeroName() string { + if x != nil && x.HeroName != nil { + return *x.HeroName + } + return "" +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) GetPlayerName() string { + if x != nil && x.PlayerName != nil { + return *x.PlayerName + } + return "" +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) GetIsFakeClient() bool { + if x != nil && x.IsFakeClient != nil { + return *x.IsFakeClient + } + return false +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo_CPlayerInfo) GetGameTeam() int32 { + if x != nil && x.GameTeam != nil { + return *x.GameTeam + } + return 0 +} + +type CGameInfo_CDotaGameInfo_CHeroSelectEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsPick *bool `protobuf:"varint,1,opt,name=is_pick,json=isPick" json:"is_pick,omitempty"` + Team *uint32 `protobuf:"varint,2,opt,name=team" json:"team,omitempty"` + HeroId *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"` +} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) Reset() { + *x = CGameInfo_CDotaGameInfo_CHeroSelectEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameInfo_CDotaGameInfo_CHeroSelectEvent) ProtoMessage() {} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameInfo_CDotaGameInfo_CHeroSelectEvent.ProtoReflect.Descriptor instead. +func (*CGameInfo_CDotaGameInfo_CHeroSelectEvent) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{1, 0, 1} +} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetIsPick() bool { + if x != nil && x.IsPick != nil { + return *x.IsPick + } + return false +} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetTeam() uint32 { + if x != nil && x.Team != nil { + return *x.Team + } + return 0 +} + +func (x *CGameInfo_CDotaGameInfo_CHeroSelectEvent) GetHeroId() uint32 { + if x != nil && x.HeroId != nil { + return *x.HeroId + } + return 0 +} + +type CDemoClassInfoClassT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClassId *int32 `protobuf:"varint,1,opt,name=class_id,json=classId" json:"class_id,omitempty"` + NetworkName *string `protobuf:"bytes,2,opt,name=network_name,json=networkName" json:"network_name,omitempty"` + TableName *string `protobuf:"bytes,3,opt,name=table_name,json=tableName" json:"table_name,omitempty"` +} + +func (x *CDemoClassInfoClassT) Reset() { + *x = CDemoClassInfoClassT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoClassInfoClassT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoClassInfoClassT) ProtoMessage() {} + +func (x *CDemoClassInfoClassT) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoClassInfoClassT.ProtoReflect.Descriptor instead. +func (*CDemoClassInfoClassT) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *CDemoClassInfoClassT) GetClassId() int32 { + if x != nil && x.ClassId != nil { + return *x.ClassId + } + return 0 +} + +func (x *CDemoClassInfoClassT) GetNetworkName() string { + if x != nil && x.NetworkName != nil { + return *x.NetworkName + } + return "" +} + +func (x *CDemoClassInfoClassT) GetTableName() string { + if x != nil && x.TableName != nil { + return *x.TableName + } + return "" +} + +type CDemoStringTablesItemsT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Str *string `protobuf:"bytes,1,opt,name=str" json:"str,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CDemoStringTablesItemsT) Reset() { + *x = CDemoStringTablesItemsT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoStringTablesItemsT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoStringTablesItemsT) ProtoMessage() {} + +func (x *CDemoStringTablesItemsT) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoStringTablesItemsT.ProtoReflect.Descriptor instead. +func (*CDemoStringTablesItemsT) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{13, 0} +} + +func (x *CDemoStringTablesItemsT) GetStr() string { + if x != nil && x.Str != nil { + return *x.Str + } + return "" +} + +func (x *CDemoStringTablesItemsT) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CDemoStringTablesTableT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TableName *string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"` + Items []*CDemoStringTablesItemsT `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"` + ItemsClientside []*CDemoStringTablesItemsT `protobuf:"bytes,3,rep,name=items_clientside,json=itemsClientside" json:"items_clientside,omitempty"` + TableFlags *int32 `protobuf:"varint,4,opt,name=table_flags,json=tableFlags" json:"table_flags,omitempty"` +} + +func (x *CDemoStringTablesTableT) Reset() { + *x = CDemoStringTablesTableT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_demo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CDemoStringTablesTableT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CDemoStringTablesTableT) ProtoMessage() {} + +func (x *CDemoStringTablesTableT) ProtoReflect() protoreflect.Message { + mi := &file_s2_demo_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CDemoStringTablesTableT.ProtoReflect.Descriptor instead. +func (*CDemoStringTablesTableT) Descriptor() ([]byte, []int) { + return file_s2_demo_proto_rawDescGZIP(), []int{13, 1} +} + +func (x *CDemoStringTablesTableT) GetTableName() string { + if x != nil && x.TableName != nil { + return *x.TableName + } + return "" +} + +func (x *CDemoStringTablesTableT) GetItems() []*CDemoStringTablesItemsT { + if x != nil { + return x.Items + } + return nil +} + +func (x *CDemoStringTablesTableT) GetItemsClientside() []*CDemoStringTablesItemsT { + if x != nil { + return x.ItemsClientside + } + return nil +} + +func (x *CDemoStringTablesTableT) GetTableFlags() int32 { + if x != nil && x.TableFlags != nil { + return *x.TableFlags + } + return 0 +} + +var File_s2_demo_proto protoreflect.FileDescriptor + +var file_s2_demo_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x73, 0x32, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x22, 0xb4, 0x04, 0x0a, 0x0f, 0x43, + 0x44, 0x65, 0x6d, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, + 0x0a, 0x0f, 0x64, 0x65, 0x6d, 0x6f, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x6d, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x75, 0x6c, 0x6c, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6d, 0x6f, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6d, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6d, 0x6f, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x64, 0x65, 0x6d, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x75, 0x69, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x61, 0x6d, + 0x65, 0x22, 0x87, 0x07, 0x0a, 0x09, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x56, 0x0a, 0x04, 0x64, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x44, 0x6f, 0x74, 0x61, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x6f, 0x74, 0x61, 0x1a, 0xa1, 0x06, 0x0a, 0x0d, 0x43, 0x44, 0x6f, 0x74, + 0x61, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x12, 0x6f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x44, + 0x6f, 0x74, 0x61, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x69, 0x64, 0x12, + 0x72, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x44, 0x6f, 0x74, 0x61, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x42, + 0x61, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x61, + 0x64, 0x69, 0x61, 0x6e, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x64, + 0x69, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x28, 0x0a, + 0x10, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x61, + 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x54, 0x65, 0x61, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x5f, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x72, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xa8, 0x01, 0x0a, 0x0b, 0x43, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x66, 0x61, 0x6b, 0x65, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, + 0x46, 0x61, 0x6b, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x61, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x61, + 0x6d, 0x1a, 0x58, 0x0a, 0x10, 0x43, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x70, 0x69, 0x63, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x0d, + 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, + 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, + 0x69, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, + 0x62, 0x61, 0x63, 0x6b, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x67, 0x61, 0x6d, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x21, 0x0a, 0x0b, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x43, 0x44, 0x65, + 0x6d, 0x6f, 0x46, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x5f, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x44, 0x65, 0x6d, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4e, 0x0a, + 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x76, 0x0a, + 0x0d, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x0f, 0x0a, 0x0d, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x53, 0x79, + 0x6e, 0x63, 0x54, 0x69, 0x63, 0x6b, 0x22, 0x2f, 0x0a, 0x0f, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x43, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6d, 0x64, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6d, + 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x25, 0x0a, 0x0f, 0x43, 0x44, 0x65, 0x6d, 0x6f, + 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd5, + 0x01, 0x0a, 0x0e, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x5b, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x44, 0x65, 0x6d, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x66, + 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x0f, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x33, 0x0a, 0x18, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, + 0x12, 0x17, 0x0a, 0x07, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x49, 0x64, 0x22, 0x7f, 0x0a, 0x12, 0x43, 0x44, 0x65, + 0x6d, 0x6f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x43, + 0x44, 0x65, 0x6d, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x12, 0x5c, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x65, + 0x6d, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0x2f, + 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x96, 0x02, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x74, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x6f, 0x0a, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x44, 0x65, + 0x6d, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x74, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x44, 0x65, 0x6d, + 0x6f, 0x53, 0x74, 0x6f, 0x70, 0x22, 0x41, 0x0a, 0x0c, 0x43, 0x44, 0x65, 0x6d, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x43, 0x6d, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6d, 0x64, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6d, 0x64, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x10, 0x43, 0x44, 0x65, 0x6d, + 0x6f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x6d, 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, + 0x2a, 0x9b, 0x03, 0x0a, 0x0d, 0x45, 0x44, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x12, 0x16, 0x0a, 0x09, 0x44, 0x45, 0x4d, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, + 0x4d, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4d, 0x5f, + 0x46, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, + 0x44, 0x45, 0x4d, 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x02, 0x12, 0x10, + 0x0a, 0x0c, 0x44, 0x45, 0x4d, 0x5f, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x63, 0x6b, 0x10, 0x03, + 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, 0x4d, 0x5f, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x4d, 0x5f, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x10, 0x06, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x45, 0x4d, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, + 0x10, 0x44, 0x45, 0x4d, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4d, 0x5f, 0x43, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4d, 0x5f, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x44, + 0x45, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x4d, 0x5f, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4d, + 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0d, 0x12, 0x10, 0x0a, + 0x0c, 0x44, 0x45, 0x4d, 0x5f, 0x53, 0x61, 0x76, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x0e, 0x12, + 0x13, 0x0a, 0x0f, 0x44, 0x45, 0x4d, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x10, 0x0f, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x4d, 0x5f, 0x41, 0x6e, 0x69, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x44, + 0x45, 0x4d, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x11, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x4d, 0x5f, + 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x10, 0x40, +} + +var ( + file_s2_demo_proto_rawDescOnce sync.Once + file_s2_demo_proto_rawDescData = file_s2_demo_proto_rawDesc +) + +func file_s2_demo_proto_rawDescGZIP() []byte { + file_s2_demo_proto_rawDescOnce.Do(func() { + file_s2_demo_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_demo_proto_rawDescData) + }) + return file_s2_demo_proto_rawDescData +} + +var file_s2_demo_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_s2_demo_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_s2_demo_proto_goTypes = []interface{}{ + (EDemoCommands)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.EDemoCommands + (*CDemoFileHeader)(nil), // 1: com.github.markus_wa.demoinfocs_golang.s2.CDemoFileHeader + (*CGameInfo)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo + (*CDemoFileInfo)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CDemoFileInfo + (*CDemoPacket)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CDemoPacket + (*CDemoFullPacket)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CDemoFullPacket + (*CDemoSaveGame)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CDemoSaveGame + (*CDemoSyncTick)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CDemoSyncTick + (*CDemoConsoleCmd)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CDemoConsoleCmd + (*CDemoSendTables)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CDemoSendTables + (*CDemoClassInfo)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CDemoClassInfo + (*CDemoCustomData)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CDemoCustomData + (*CDemoCustomDataCallbacks)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CDemoCustomDataCallbacks + (*CDemoAnimationData)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CDemoAnimationData + (*CDemoStringTables)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables + (*CDemoStop)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CDemoStop + (*CDemoUserCmd)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CDemoUserCmd + (*CDemoSpawnGroups)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CDemoSpawnGroups + (*CGameInfo_CDotaGameInfo)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo + (*CGameInfo_CDotaGameInfo_CPlayerInfo)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.CPlayerInfo + (*CGameInfo_CDotaGameInfo_CHeroSelectEvent)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.CHeroSelectEvent + (*CDemoClassInfoClassT)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CDemoClassInfo.class_t + (*CDemoStringTablesItemsT)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.items_t + (*CDemoStringTablesTableT)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.table_t +} +var file_s2_demo_proto_depIdxs = []int32{ + 18, // 0: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.dota:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo + 2, // 1: com.github.markus_wa.demoinfocs_golang.s2.CDemoFileInfo.game_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGameInfo + 14, // 2: com.github.markus_wa.demoinfocs_golang.s2.CDemoFullPacket.string_table:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables + 4, // 3: com.github.markus_wa.demoinfocs_golang.s2.CDemoFullPacket.packet:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoPacket + 21, // 4: com.github.markus_wa.demoinfocs_golang.s2.CDemoClassInfo.classes:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoClassInfo.class_t + 23, // 5: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.tables:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.table_t + 19, // 6: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.player_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.CPlayerInfo + 20, // 7: com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.picks_bans:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGameInfo.CDotaGameInfo.CHeroSelectEvent + 22, // 8: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.table_t.items:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.items_t + 22, // 9: com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.table_t.items_clientside:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CDemoStringTables.items_t + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_s2_demo_proto_init() } +func file_s2_demo_proto_init() { + if File_s2_demo_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_s2_demo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoFileHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoFileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoPacket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoFullPacket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoSaveGame); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoSyncTick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoConsoleCmd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoSendTables); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoClassInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoCustomData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoCustomDataCallbacks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoAnimationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoStringTables); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoUserCmd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoSpawnGroups); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameInfo_CDotaGameInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameInfo_CDotaGameInfo_CPlayerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameInfo_CDotaGameInfo_CHeroSelectEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoClassInfoClassT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoStringTablesItemsT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_demo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CDemoStringTablesTableT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_demo_proto_rawDesc, + NumEnums: 1, + NumMessages: 23, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_demo_proto_goTypes, + DependencyIndexes: file_s2_demo_proto_depIdxs, + EnumInfos: file_s2_demo_proto_enumTypes, + MessageInfos: file_s2_demo_proto_msgTypes, + }.Build() + File_s2_demo_proto = out.File + file_s2_demo_proto_rawDesc = nil + file_s2_demo_proto_goTypes = nil + file_s2_demo_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/doc.go b/pkg/demoinfocs/msgs2/doc.go new file mode 100644 index 00000000..c43c7f1e --- /dev/null +++ b/pkg/demoinfocs/msgs2/doc.go @@ -0,0 +1,5 @@ +// Package msg contains the generated protobuf demo message code. +// +// Use 'go generate' to generate the code from the .proto files inside the proto sub directory. +// If you're on Windows you'll need to run go generate from CMD, not Bash. +package msgs2 diff --git a/pkg/demoinfocs/msgs2/engine_gcmessages.pb.go b/pkg/demoinfocs/msgs2/engine_gcmessages.pb.go new file mode 100644 index 00000000..b7ecbbb2 --- /dev/null +++ b/pkg/demoinfocs/msgs2/engine_gcmessages.pb.go @@ -0,0 +1,237 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/engine_gcmessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CEngineGotvSyncPacket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MatchId *uint64 `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"` + InstanceId *uint32 `protobuf:"varint,2,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"` + Signupfragment *uint32 `protobuf:"varint,3,opt,name=signupfragment" json:"signupfragment,omitempty"` + Currentfragment *uint32 `protobuf:"varint,4,opt,name=currentfragment" json:"currentfragment,omitempty"` + Tickrate *float32 `protobuf:"fixed32,5,opt,name=tickrate" json:"tickrate,omitempty"` + Tick *uint32 `protobuf:"varint,6,opt,name=tick" json:"tick,omitempty"` + Rtdelay *float32 `protobuf:"fixed32,8,opt,name=rtdelay" json:"rtdelay,omitempty"` + Rcvage *float32 `protobuf:"fixed32,9,opt,name=rcvage" json:"rcvage,omitempty"` + KeyframeInterval *float32 `protobuf:"fixed32,10,opt,name=keyframe_interval,json=keyframeInterval" json:"keyframe_interval,omitempty"` + Cdndelay *uint32 `protobuf:"varint,11,opt,name=cdndelay" json:"cdndelay,omitempty"` +} + +func (x *CEngineGotvSyncPacket) Reset() { + *x = CEngineGotvSyncPacket{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_engine_gcmessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEngineGotvSyncPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEngineGotvSyncPacket) ProtoMessage() {} + +func (x *CEngineGotvSyncPacket) ProtoReflect() protoreflect.Message { + mi := &file_s2_engine_gcmessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEngineGotvSyncPacket.ProtoReflect.Descriptor instead. +func (*CEngineGotvSyncPacket) Descriptor() ([]byte, []int) { + return file_s2_engine_gcmessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CEngineGotvSyncPacket) GetMatchId() uint64 { + if x != nil && x.MatchId != nil { + return *x.MatchId + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetInstanceId() uint32 { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetSignupfragment() uint32 { + if x != nil && x.Signupfragment != nil { + return *x.Signupfragment + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetCurrentfragment() uint32 { + if x != nil && x.Currentfragment != nil { + return *x.Currentfragment + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetTickrate() float32 { + if x != nil && x.Tickrate != nil { + return *x.Tickrate + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetTick() uint32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetRtdelay() float32 { + if x != nil && x.Rtdelay != nil { + return *x.Rtdelay + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetRcvage() float32 { + if x != nil && x.Rcvage != nil { + return *x.Rcvage + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetKeyframeInterval() float32 { + if x != nil && x.KeyframeInterval != nil { + return *x.KeyframeInterval + } + return 0 +} + +func (x *CEngineGotvSyncPacket) GetCdndelay() uint32 { + if x != nil && x.Cdndelay != nil { + return *x.Cdndelay + } + return 0 +} + +var File_s2_engine_gcmessages_proto protoreflect.FileDescriptor + +var file_s2_engine_gcmessages_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x32, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x63, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x02, 0x0a, 0x15, 0x43, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x6f, 0x74, 0x76, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x74, 0x69, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x07, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x63, 0x76, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x63, 0x76, + 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6b, 0x65, 0x79, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, + 0x6b, 0x65, 0x79, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x64, 0x6e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x63, 0x64, 0x6e, 0x64, 0x65, 0x6c, 0x61, 0x79, +} + +var ( + file_s2_engine_gcmessages_proto_rawDescOnce sync.Once + file_s2_engine_gcmessages_proto_rawDescData = file_s2_engine_gcmessages_proto_rawDesc +) + +func file_s2_engine_gcmessages_proto_rawDescGZIP() []byte { + file_s2_engine_gcmessages_proto_rawDescOnce.Do(func() { + file_s2_engine_gcmessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_engine_gcmessages_proto_rawDescData) + }) + return file_s2_engine_gcmessages_proto_rawDescData +} + +var file_s2_engine_gcmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_s2_engine_gcmessages_proto_goTypes = []interface{}{ + (*CEngineGotvSyncPacket)(nil), // 0: com.github.markus_wa.demoinfocs_golang.s2.CEngineGotvSyncPacket +} +var file_s2_engine_gcmessages_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_s2_engine_gcmessages_proto_init() } +func file_s2_engine_gcmessages_proto_init() { + if File_s2_engine_gcmessages_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_s2_engine_gcmessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEngineGotvSyncPacket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_engine_gcmessages_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_engine_gcmessages_proto_goTypes, + DependencyIndexes: file_s2_engine_gcmessages_proto_depIdxs, + MessageInfos: file_s2_engine_gcmessages_proto_msgTypes, + }.Build() + File_s2_engine_gcmessages_proto = out.File + file_s2_engine_gcmessages_proto_rawDesc = nil + file_s2_engine_gcmessages_proto_goTypes = nil + file_s2_engine_gcmessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/gameevents.pb.go b/pkg/demoinfocs/msgs2/gameevents.pb.go new file mode 100644 index 00000000..cbf71512 --- /dev/null +++ b/pkg/demoinfocs/msgs2/gameevents.pb.go @@ -0,0 +1,1656 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/gameevents.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EBaseGameEvents int32 + +const ( + EBaseGameEvents_GE_VDebugGameSessionIDEvent EBaseGameEvents = 200 + EBaseGameEvents_GE_PlaceDecalEvent EBaseGameEvents = 201 + EBaseGameEvents_GE_ClearWorldDecalsEvent EBaseGameEvents = 202 + EBaseGameEvents_GE_ClearEntityDecalsEvent EBaseGameEvents = 203 + EBaseGameEvents_GE_ClearDecalsForSkeletonInstanceEvent EBaseGameEvents = 204 + EBaseGameEvents_GE_Source1LegacyGameEventList EBaseGameEvents = 205 + EBaseGameEvents_GE_Source1LegacyListenEvents EBaseGameEvents = 206 + EBaseGameEvents_GE_Source1LegacyGameEvent EBaseGameEvents = 207 + EBaseGameEvents_GE_SosStartSoundEvent EBaseGameEvents = 208 + EBaseGameEvents_GE_SosStopSoundEvent EBaseGameEvents = 209 + EBaseGameEvents_GE_SosSetSoundEventParams EBaseGameEvents = 210 + EBaseGameEvents_GE_SosSetLibraryStackFields EBaseGameEvents = 211 + EBaseGameEvents_GE_SosStopSoundEventHash EBaseGameEvents = 212 +) + +// Enum value maps for EBaseGameEvents. +var ( + EBaseGameEvents_name = map[int32]string{ + 200: "GE_VDebugGameSessionIDEvent", + 201: "GE_PlaceDecalEvent", + 202: "GE_ClearWorldDecalsEvent", + 203: "GE_ClearEntityDecalsEvent", + 204: "GE_ClearDecalsForSkeletonInstanceEvent", + 205: "GE_Source1LegacyGameEventList", + 206: "GE_Source1LegacyListenEvents", + 207: "GE_Source1LegacyGameEvent", + 208: "GE_SosStartSoundEvent", + 209: "GE_SosStopSoundEvent", + 210: "GE_SosSetSoundEventParams", + 211: "GE_SosSetLibraryStackFields", + 212: "GE_SosStopSoundEventHash", + } + EBaseGameEvents_value = map[string]int32{ + "GE_VDebugGameSessionIDEvent": 200, + "GE_PlaceDecalEvent": 201, + "GE_ClearWorldDecalsEvent": 202, + "GE_ClearEntityDecalsEvent": 203, + "GE_ClearDecalsForSkeletonInstanceEvent": 204, + "GE_Source1LegacyGameEventList": 205, + "GE_Source1LegacyListenEvents": 206, + "GE_Source1LegacyGameEvent": 207, + "GE_SosStartSoundEvent": 208, + "GE_SosStopSoundEvent": 209, + "GE_SosSetSoundEventParams": 210, + "GE_SosSetLibraryStackFields": 211, + "GE_SosStopSoundEventHash": 212, + } +) + +func (x EBaseGameEvents) Enum() *EBaseGameEvents { + p := new(EBaseGameEvents) + *p = x + return p +} + +func (x EBaseGameEvents) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EBaseGameEvents) Descriptor() protoreflect.EnumDescriptor { + return file_s2_gameevents_proto_enumTypes[0].Descriptor() +} + +func (EBaseGameEvents) Type() protoreflect.EnumType { + return &file_s2_gameevents_proto_enumTypes[0] +} + +func (x EBaseGameEvents) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EBaseGameEvents) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EBaseGameEvents(num) + return nil +} + +// Deprecated: Use EBaseGameEvents.Descriptor instead. +func (EBaseGameEvents) EnumDescriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{0} +} + +type CMsgVDebugGameSessionIDEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clientid *int32 `protobuf:"varint,1,opt,name=clientid" json:"clientid,omitempty"` + Gamesessionid *string `protobuf:"bytes,2,opt,name=gamesessionid" json:"gamesessionid,omitempty"` +} + +func (x *CMsgVDebugGameSessionIDEvent) Reset() { + *x = CMsgVDebugGameSessionIDEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgVDebugGameSessionIDEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgVDebugGameSessionIDEvent) ProtoMessage() {} + +func (x *CMsgVDebugGameSessionIDEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgVDebugGameSessionIDEvent.ProtoReflect.Descriptor instead. +func (*CMsgVDebugGameSessionIDEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgVDebugGameSessionIDEvent) GetClientid() int32 { + if x != nil && x.Clientid != nil { + return *x.Clientid + } + return 0 +} + +func (x *CMsgVDebugGameSessionIDEvent) GetGamesessionid() string { + if x != nil && x.Gamesessionid != nil { + return *x.Gamesessionid + } + return "" +} + +type CMsgPlaceDecalEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Position *CMsgVector `protobuf:"bytes,1,opt,name=position" json:"position,omitempty"` + Normal *CMsgVector `protobuf:"bytes,2,opt,name=normal" json:"normal,omitempty"` + Saxis *CMsgVector `protobuf:"bytes,3,opt,name=saxis" json:"saxis,omitempty"` + Decalmaterialindex *uint32 `protobuf:"varint,4,opt,name=decalmaterialindex" json:"decalmaterialindex,omitempty"` + Flags *uint32 `protobuf:"varint,5,opt,name=flags" json:"flags,omitempty"` + Color *uint32 `protobuf:"fixed32,6,opt,name=color" json:"color,omitempty"` + Width *float32 `protobuf:"fixed32,7,opt,name=width" json:"width,omitempty"` + Height *float32 `protobuf:"fixed32,8,opt,name=height" json:"height,omitempty"` + Depth *float32 `protobuf:"fixed32,9,opt,name=depth" json:"depth,omitempty"` + Entityhandleindex *uint32 `protobuf:"varint,10,opt,name=entityhandleindex" json:"entityhandleindex,omitempty"` + Skeletoninstancehash *uint32 `protobuf:"fixed32,11,opt,name=skeletoninstancehash" json:"skeletoninstancehash,omitempty"` + Boneindex *int32 `protobuf:"varint,12,opt,name=boneindex" json:"boneindex,omitempty"` + Translucenthit *bool `protobuf:"varint,13,opt,name=translucenthit" json:"translucenthit,omitempty"` + IsAdjacent *bool `protobuf:"varint,14,opt,name=is_adjacent,json=isAdjacent" json:"is_adjacent,omitempty"` +} + +func (x *CMsgPlaceDecalEvent) Reset() { + *x = CMsgPlaceDecalEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgPlaceDecalEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgPlaceDecalEvent) ProtoMessage() {} + +func (x *CMsgPlaceDecalEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgPlaceDecalEvent.ProtoReflect.Descriptor instead. +func (*CMsgPlaceDecalEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgPlaceDecalEvent) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +func (x *CMsgPlaceDecalEvent) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgPlaceDecalEvent) GetSaxis() *CMsgVector { + if x != nil { + return x.Saxis + } + return nil +} + +func (x *CMsgPlaceDecalEvent) GetDecalmaterialindex() uint32 { + if x != nil && x.Decalmaterialindex != nil { + return *x.Decalmaterialindex + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetWidth() float32 { + if x != nil && x.Width != nil { + return *x.Width + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetHeight() float32 { + if x != nil && x.Height != nil { + return *x.Height + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetDepth() float32 { + if x != nil && x.Depth != nil { + return *x.Depth + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetEntityhandleindex() uint32 { + if x != nil && x.Entityhandleindex != nil { + return *x.Entityhandleindex + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetSkeletoninstancehash() uint32 { + if x != nil && x.Skeletoninstancehash != nil { + return *x.Skeletoninstancehash + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetBoneindex() int32 { + if x != nil && x.Boneindex != nil { + return *x.Boneindex + } + return 0 +} + +func (x *CMsgPlaceDecalEvent) GetTranslucenthit() bool { + if x != nil && x.Translucenthit != nil { + return *x.Translucenthit + } + return false +} + +func (x *CMsgPlaceDecalEvent) GetIsAdjacent() bool { + if x != nil && x.IsAdjacent != nil { + return *x.IsAdjacent + } + return false +} + +type CMsgClearWorldDecalsEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flagstoclear *uint32 `protobuf:"varint,1,opt,name=flagstoclear" json:"flagstoclear,omitempty"` +} + +func (x *CMsgClearWorldDecalsEvent) Reset() { + *x = CMsgClearWorldDecalsEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClearWorldDecalsEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClearWorldDecalsEvent) ProtoMessage() {} + +func (x *CMsgClearWorldDecalsEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClearWorldDecalsEvent.ProtoReflect.Descriptor instead. +func (*CMsgClearWorldDecalsEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgClearWorldDecalsEvent) GetFlagstoclear() uint32 { + if x != nil && x.Flagstoclear != nil { + return *x.Flagstoclear + } + return 0 +} + +type CMsgClearEntityDecalsEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flagstoclear *uint32 `protobuf:"varint,1,opt,name=flagstoclear" json:"flagstoclear,omitempty"` +} + +func (x *CMsgClearEntityDecalsEvent) Reset() { + *x = CMsgClearEntityDecalsEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClearEntityDecalsEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClearEntityDecalsEvent) ProtoMessage() {} + +func (x *CMsgClearEntityDecalsEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClearEntityDecalsEvent.ProtoReflect.Descriptor instead. +func (*CMsgClearEntityDecalsEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgClearEntityDecalsEvent) GetFlagstoclear() uint32 { + if x != nil && x.Flagstoclear != nil { + return *x.Flagstoclear + } + return 0 +} + +type CMsgClearDecalsForSkeletonInstanceEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flagstoclear *uint32 `protobuf:"varint,1,opt,name=flagstoclear" json:"flagstoclear,omitempty"` + Entityhandleindex *uint32 `protobuf:"varint,2,opt,name=entityhandleindex" json:"entityhandleindex,omitempty"` + Skeletoninstancehash *uint32 `protobuf:"varint,3,opt,name=skeletoninstancehash" json:"skeletoninstancehash,omitempty"` +} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) Reset() { + *x = CMsgClearDecalsForSkeletonInstanceEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClearDecalsForSkeletonInstanceEvent) ProtoMessage() {} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClearDecalsForSkeletonInstanceEvent.ProtoReflect.Descriptor instead. +func (*CMsgClearDecalsForSkeletonInstanceEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) GetFlagstoclear() uint32 { + if x != nil && x.Flagstoclear != nil { + return *x.Flagstoclear + } + return 0 +} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) GetEntityhandleindex() uint32 { + if x != nil && x.Entityhandleindex != nil { + return *x.Entityhandleindex + } + return 0 +} + +func (x *CMsgClearDecalsForSkeletonInstanceEvent) GetSkeletoninstancehash() uint32 { + if x != nil && x.Skeletoninstancehash != nil { + return *x.Skeletoninstancehash + } + return 0 +} + +type CMsgSource1LegacyGameEventList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Descriptors []*CMsgSource1LegacyGameEventListDescriptorT `protobuf:"bytes,1,rep,name=descriptors" json:"descriptors,omitempty"` +} + +func (x *CMsgSource1LegacyGameEventList) Reset() { + *x = CMsgSource1LegacyGameEventList{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyGameEventList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyGameEventList) ProtoMessage() {} + +func (x *CMsgSource1LegacyGameEventList) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyGameEventList.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyGameEventList) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgSource1LegacyGameEventList) GetDescriptors() []*CMsgSource1LegacyGameEventListDescriptorT { + if x != nil { + return x.Descriptors + } + return nil +} + +type CMsgSource1LegacyListenEvents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Playerslot *int32 `protobuf:"varint,1,opt,name=playerslot" json:"playerslot,omitempty"` + Eventarraybits []uint32 `protobuf:"varint,2,rep,name=eventarraybits" json:"eventarraybits,omitempty"` +} + +func (x *CMsgSource1LegacyListenEvents) Reset() { + *x = CMsgSource1LegacyListenEvents{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyListenEvents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyListenEvents) ProtoMessage() {} + +func (x *CMsgSource1LegacyListenEvents) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyListenEvents.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyListenEvents) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgSource1LegacyListenEvents) GetPlayerslot() int32 { + if x != nil && x.Playerslot != nil { + return *x.Playerslot + } + return 0 +} + +func (x *CMsgSource1LegacyListenEvents) GetEventarraybits() []uint32 { + if x != nil { + return x.Eventarraybits + } + return nil +} + +type CMsgSource1LegacyGameEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventName *string `protobuf:"bytes,1,opt,name=event_name,json=eventName" json:"event_name,omitempty"` + Eventid *int32 `protobuf:"varint,2,opt,name=eventid" json:"eventid,omitempty"` + Keys []*CMsgSource1LegacyGameEventKeyT `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"` + ServerTick *int32 `protobuf:"varint,4,opt,name=server_tick,json=serverTick" json:"server_tick,omitempty"` + Passthrough *int32 `protobuf:"varint,5,opt,name=passthrough" json:"passthrough,omitempty"` +} + +func (x *CMsgSource1LegacyGameEvent) Reset() { + *x = CMsgSource1LegacyGameEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyGameEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyGameEvent) ProtoMessage() {} + +func (x *CMsgSource1LegacyGameEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyGameEvent.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyGameEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{7} +} + +func (x *CMsgSource1LegacyGameEvent) GetEventName() string { + if x != nil && x.EventName != nil { + return *x.EventName + } + return "" +} + +func (x *CMsgSource1LegacyGameEvent) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgSource1LegacyGameEvent) GetKeys() []*CMsgSource1LegacyGameEventKeyT { + if x != nil { + return x.Keys + } + return nil +} + +func (x *CMsgSource1LegacyGameEvent) GetServerTick() int32 { + if x != nil && x.ServerTick != nil { + return *x.ServerTick + } + return 0 +} + +func (x *CMsgSource1LegacyGameEvent) GetPassthrough() int32 { + if x != nil && x.Passthrough != nil { + return *x.Passthrough + } + return 0 +} + +type CMsgSosStartSoundEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SoundeventGuid *int32 `protobuf:"varint,1,opt,name=soundevent_guid,json=soundeventGuid" json:"soundevent_guid,omitempty"` + SoundeventHash *uint32 `protobuf:"fixed32,2,opt,name=soundevent_hash,json=soundeventHash" json:"soundevent_hash,omitempty"` + SourceEntityIndex *int32 `protobuf:"varint,3,opt,name=source_entity_index,json=sourceEntityIndex,def=-1" json:"source_entity_index,omitempty"` + Seed *int32 `protobuf:"varint,4,opt,name=seed" json:"seed,omitempty"` + PackedParams []byte `protobuf:"bytes,5,opt,name=packed_params,json=packedParams" json:"packed_params,omitempty"` + StartTime *float32 `protobuf:"fixed32,6,opt,name=start_time,json=startTime" json:"start_time,omitempty"` +} + +// Default values for CMsgSosStartSoundEvent fields. +const ( + Default_CMsgSosStartSoundEvent_SourceEntityIndex = int32(-1) +) + +func (x *CMsgSosStartSoundEvent) Reset() { + *x = CMsgSosStartSoundEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSosStartSoundEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSosStartSoundEvent) ProtoMessage() {} + +func (x *CMsgSosStartSoundEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSosStartSoundEvent.ProtoReflect.Descriptor instead. +func (*CMsgSosStartSoundEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsgSosStartSoundEvent) GetSoundeventGuid() int32 { + if x != nil && x.SoundeventGuid != nil { + return *x.SoundeventGuid + } + return 0 +} + +func (x *CMsgSosStartSoundEvent) GetSoundeventHash() uint32 { + if x != nil && x.SoundeventHash != nil { + return *x.SoundeventHash + } + return 0 +} + +func (x *CMsgSosStartSoundEvent) GetSourceEntityIndex() int32 { + if x != nil && x.SourceEntityIndex != nil { + return *x.SourceEntityIndex + } + return Default_CMsgSosStartSoundEvent_SourceEntityIndex +} + +func (x *CMsgSosStartSoundEvent) GetSeed() int32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *CMsgSosStartSoundEvent) GetPackedParams() []byte { + if x != nil { + return x.PackedParams + } + return nil +} + +func (x *CMsgSosStartSoundEvent) GetStartTime() float32 { + if x != nil && x.StartTime != nil { + return *x.StartTime + } + return 0 +} + +type CMsgSosStopSoundEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SoundeventGuid *int32 `protobuf:"varint,1,opt,name=soundevent_guid,json=soundeventGuid" json:"soundevent_guid,omitempty"` +} + +func (x *CMsgSosStopSoundEvent) Reset() { + *x = CMsgSosStopSoundEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSosStopSoundEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSosStopSoundEvent) ProtoMessage() {} + +func (x *CMsgSosStopSoundEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSosStopSoundEvent.ProtoReflect.Descriptor instead. +func (*CMsgSosStopSoundEvent) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{9} +} + +func (x *CMsgSosStopSoundEvent) GetSoundeventGuid() int32 { + if x != nil && x.SoundeventGuid != nil { + return *x.SoundeventGuid + } + return 0 +} + +type CMsgSosStopSoundEventHash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SoundeventHash *uint32 `protobuf:"fixed32,1,opt,name=soundevent_hash,json=soundeventHash" json:"soundevent_hash,omitempty"` + SourceEntityIndex *int32 `protobuf:"varint,2,opt,name=source_entity_index,json=sourceEntityIndex,def=-1" json:"source_entity_index,omitempty"` +} + +// Default values for CMsgSosStopSoundEventHash fields. +const ( + Default_CMsgSosStopSoundEventHash_SourceEntityIndex = int32(-1) +) + +func (x *CMsgSosStopSoundEventHash) Reset() { + *x = CMsgSosStopSoundEventHash{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSosStopSoundEventHash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSosStopSoundEventHash) ProtoMessage() {} + +func (x *CMsgSosStopSoundEventHash) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSosStopSoundEventHash.ProtoReflect.Descriptor instead. +func (*CMsgSosStopSoundEventHash) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{10} +} + +func (x *CMsgSosStopSoundEventHash) GetSoundeventHash() uint32 { + if x != nil && x.SoundeventHash != nil { + return *x.SoundeventHash + } + return 0 +} + +func (x *CMsgSosStopSoundEventHash) GetSourceEntityIndex() int32 { + if x != nil && x.SourceEntityIndex != nil { + return *x.SourceEntityIndex + } + return Default_CMsgSosStopSoundEventHash_SourceEntityIndex +} + +type CMsgSosSetSoundEventParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SoundeventGuid *int32 `protobuf:"varint,1,opt,name=soundevent_guid,json=soundeventGuid" json:"soundevent_guid,omitempty"` + PackedParams []byte `protobuf:"bytes,5,opt,name=packed_params,json=packedParams" json:"packed_params,omitempty"` +} + +func (x *CMsgSosSetSoundEventParams) Reset() { + *x = CMsgSosSetSoundEventParams{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSosSetSoundEventParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSosSetSoundEventParams) ProtoMessage() {} + +func (x *CMsgSosSetSoundEventParams) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSosSetSoundEventParams.ProtoReflect.Descriptor instead. +func (*CMsgSosSetSoundEventParams) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{11} +} + +func (x *CMsgSosSetSoundEventParams) GetSoundeventGuid() int32 { + if x != nil && x.SoundeventGuid != nil { + return *x.SoundeventGuid + } + return 0 +} + +func (x *CMsgSosSetSoundEventParams) GetPackedParams() []byte { + if x != nil { + return x.PackedParams + } + return nil +} + +type CMsgSosSetLibraryStackFields struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StackHash *uint32 `protobuf:"fixed32,1,opt,name=stack_hash,json=stackHash" json:"stack_hash,omitempty"` + PackedFields []byte `protobuf:"bytes,5,opt,name=packed_fields,json=packedFields" json:"packed_fields,omitempty"` +} + +func (x *CMsgSosSetLibraryStackFields) Reset() { + *x = CMsgSosSetLibraryStackFields{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSosSetLibraryStackFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSosSetLibraryStackFields) ProtoMessage() {} + +func (x *CMsgSosSetLibraryStackFields) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSosSetLibraryStackFields.ProtoReflect.Descriptor instead. +func (*CMsgSosSetLibraryStackFields) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{12} +} + +func (x *CMsgSosSetLibraryStackFields) GetStackHash() uint32 { + if x != nil && x.StackHash != nil { + return *x.StackHash + } + return 0 +} + +func (x *CMsgSosSetLibraryStackFields) GetPackedFields() []byte { + if x != nil { + return x.PackedFields + } + return nil +} + +type CMsgSource1LegacyGameEventListKeyT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` +} + +func (x *CMsgSource1LegacyGameEventListKeyT) Reset() { + *x = CMsgSource1LegacyGameEventListKeyT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyGameEventListKeyT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyGameEventListKeyT) ProtoMessage() {} + +func (x *CMsgSource1LegacyGameEventListKeyT) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyGameEventListKeyT.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyGameEventListKeyT) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *CMsgSource1LegacyGameEventListKeyT) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventListKeyT) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type CMsgSource1LegacyGameEventListDescriptorT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *int32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Keys []*CMsgSource1LegacyGameEventListKeyT `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) Reset() { + *x = CMsgSource1LegacyGameEventListDescriptorT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyGameEventListDescriptorT) ProtoMessage() {} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyGameEventListDescriptorT.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyGameEventListDescriptorT) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgSource1LegacyGameEventListDescriptorT) GetKeys() []*CMsgSource1LegacyGameEventListKeyT { + if x != nil { + return x.Keys + } + return nil +} + +type CMsgSource1LegacyGameEventKeyT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + ValString *string `protobuf:"bytes,2,opt,name=val_string,json=valString" json:"val_string,omitempty"` + ValFloat *float32 `protobuf:"fixed32,3,opt,name=val_float,json=valFloat" json:"val_float,omitempty"` + ValLong *int32 `protobuf:"varint,4,opt,name=val_long,json=valLong" json:"val_long,omitempty"` + ValShort *int32 `protobuf:"varint,5,opt,name=val_short,json=valShort" json:"val_short,omitempty"` + ValByte *int32 `protobuf:"varint,6,opt,name=val_byte,json=valByte" json:"val_byte,omitempty"` + ValBool *bool `protobuf:"varint,7,opt,name=val_bool,json=valBool" json:"val_bool,omitempty"` + ValUint64 *uint64 `protobuf:"varint,8,opt,name=val_uint64,json=valUint64" json:"val_uint64,omitempty"` +} + +func (x *CMsgSource1LegacyGameEventKeyT) Reset() { + *x = CMsgSource1LegacyGameEventKeyT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gameevents_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSource1LegacyGameEventKeyT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSource1LegacyGameEventKeyT) ProtoMessage() {} + +func (x *CMsgSource1LegacyGameEventKeyT) ProtoReflect() protoreflect.Message { + mi := &file_s2_gameevents_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSource1LegacyGameEventKeyT.ProtoReflect.Descriptor instead. +func (*CMsgSource1LegacyGameEventKeyT) Descriptor() ([]byte, []int) { + return file_s2_gameevents_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValString() string { + if x != nil && x.ValString != nil { + return *x.ValString + } + return "" +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValFloat() float32 { + if x != nil && x.ValFloat != nil { + return *x.ValFloat + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValLong() int32 { + if x != nil && x.ValLong != nil { + return *x.ValLong + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValShort() int32 { + if x != nil && x.ValShort != nil { + return *x.ValShort + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValByte() int32 { + if x != nil && x.ValByte != nil { + return *x.ValByte + } + return 0 +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValBool() bool { + if x != nil && x.ValBool != nil { + return *x.ValBool + } + return false +} + +func (x *CMsgSource1LegacyGameEventKeyT) GetValUint64() uint64 { + if x != nil && x.ValUint64 != nil { + return *x.ValUint64 + } + return 0 +} + +var File_s2_gameevents_proto protoreflect.FileDescriptor + +var file_s2_gameevents_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x73, 0x32, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x1a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x60, 0x0a, 0x1c, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x22, 0xed, 0x04, + 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x63, 0x61, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x61, 0x78, 0x69, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, 0x73, + 0x61, 0x78, 0x69, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x65, 0x63, 0x61, 0x6c, 0x6d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x12, 0x64, 0x65, 0x63, 0x61, 0x6c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, + 0x52, 0x14, 0x73, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6f, 0x6e, 0x65, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x65, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x74, 0x68, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x74, 0x68, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x3f, 0x0a, + 0x19, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, + 0x65, 0x63, 0x61, 0x6c, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x22, 0x40, + 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x22, 0xaf, 0x01, 0x0a, 0x27, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, + 0x0a, 0x14, 0x73, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x73, 0x6b, + 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x68, 0x61, + 0x73, 0x68, 0x22, 0xef, 0x02, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x78, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x5f, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, + 0x2f, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x1a, 0xa1, 0x01, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x63, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x22, 0x67, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x61, 0x72, + 0x72, 0x61, 0x79, 0x62, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x72, 0x61, 0x79, 0x62, 0x69, 0x74, 0x73, 0x22, 0xe0, 0x03, + 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x31, 0x4c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x5f, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, + 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x1a, 0xe4, 0x01, 0x0a, 0x05, 0x6b, 0x65, + 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x1b, + 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x76, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, + 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x6f, + 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, 0x6f, 0x6f, + 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x22, 0xf6, 0x01, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x47, 0x75, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, + 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x11, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x73, 0x65, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x15, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x6f, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, + 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x69, 0x64, 0x22, 0x78, 0x0a, 0x19, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x6e, + 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x32, 0x0a, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, + 0x2d, 0x31, 0x52, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x73, + 0x53, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, + 0x75, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x62, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x6f, 0x73, 0x53, 0x65, 0x74, 0x4c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2a, 0xb7, 0x03, 0x0a, 0x0f, 0x45, 0x42, 0x61, 0x73, 0x65, 0x47, + 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x1b, 0x47, 0x45, 0x5f, + 0x56, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc8, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x47, + 0x45, 0x5f, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x10, 0xc9, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x47, 0x45, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x10, 0xca, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x47, 0x45, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x10, 0xcb, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x47, 0x45, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x44, + 0x65, 0x63, 0x61, 0x6c, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xcc, 0x01, + 0x12, 0x22, 0x0a, 0x1d, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x31, 0x4c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x10, 0xcd, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x10, 0xce, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x47, 0x45, 0x5f, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x31, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x10, 0xcf, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x47, 0x45, 0x5f, 0x53, 0x6f, + 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x10, 0xd0, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x73, 0x53, 0x74, 0x6f, + 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xd1, 0x01, 0x12, 0x1e, + 0x0a, 0x19, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x73, 0x53, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x6e, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0xd2, 0x01, 0x12, 0x20, + 0x0a, 0x1b, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x73, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x10, 0xd3, 0x01, + 0x12, 0x1d, 0x0a, 0x18, 0x47, 0x45, 0x5f, 0x53, 0x6f, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, + 0x75, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x10, 0xd4, 0x01, +} + +var ( + file_s2_gameevents_proto_rawDescOnce sync.Once + file_s2_gameevents_proto_rawDescData = file_s2_gameevents_proto_rawDesc +) + +func file_s2_gameevents_proto_rawDescGZIP() []byte { + file_s2_gameevents_proto_rawDescOnce.Do(func() { + file_s2_gameevents_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_gameevents_proto_rawDescData) + }) + return file_s2_gameevents_proto_rawDescData +} + +var file_s2_gameevents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_s2_gameevents_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_s2_gameevents_proto_goTypes = []interface{}{ + (EBaseGameEvents)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.EBaseGameEvents + (*CMsgVDebugGameSessionIDEvent)(nil), // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgVDebugGameSessionIDEvent + (*CMsgPlaceDecalEvent)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgPlaceDecalEvent + (*CMsgClearWorldDecalsEvent)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgClearWorldDecalsEvent + (*CMsgClearEntityDecalsEvent)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgClearEntityDecalsEvent + (*CMsgClearDecalsForSkeletonInstanceEvent)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgClearDecalsForSkeletonInstanceEvent + (*CMsgSource1LegacyGameEventList)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList + (*CMsgSource1LegacyListenEvents)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyListenEvents + (*CMsgSource1LegacyGameEvent)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEvent + (*CMsgSosStartSoundEvent)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgSosStartSoundEvent + (*CMsgSosStopSoundEvent)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgSosStopSoundEvent + (*CMsgSosStopSoundEventHash)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgSosStopSoundEventHash + (*CMsgSosSetSoundEventParams)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgSosSetSoundEventParams + (*CMsgSosSetLibraryStackFields)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgSosSetLibraryStackFields + (*CMsgSource1LegacyGameEventListKeyT)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.key_t + (*CMsgSource1LegacyGameEventListDescriptorT)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.descriptor_t + (*CMsgSource1LegacyGameEventKeyT)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEvent.key_t + (*CMsgVector)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector +} +var file_s2_gameevents_proto_depIdxs = []int32{ + 17, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgPlaceDecalEvent.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 17, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgPlaceDecalEvent.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 17, // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgPlaceDecalEvent.saxis:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 15, // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.descriptors:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.descriptor_t + 16, // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEvent.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEvent.key_t + 14, // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.descriptor_t.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSource1LegacyGameEventList.key_t + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_s2_gameevents_proto_init() } +func file_s2_gameevents_proto_init() { + if File_s2_gameevents_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_gameevents_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgVDebugGameSessionIDEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgPlaceDecalEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClearWorldDecalsEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClearEntityDecalsEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClearDecalsForSkeletonInstanceEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyGameEventList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyListenEvents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyGameEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSosStartSoundEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSosStopSoundEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSosStopSoundEventHash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSosSetSoundEventParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSosSetLibraryStackFields); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyGameEventListKeyT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyGameEventListDescriptorT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gameevents_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSource1LegacyGameEventKeyT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_gameevents_proto_rawDesc, + NumEnums: 1, + NumMessages: 16, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_gameevents_proto_goTypes, + DependencyIndexes: file_s2_gameevents_proto_depIdxs, + EnumInfos: file_s2_gameevents_proto_enumTypes, + MessageInfos: file_s2_gameevents_proto_msgTypes, + }.Build() + File_s2_gameevents_proto = out.File + file_s2_gameevents_proto_rawDesc = nil + file_s2_gameevents_proto_goTypes = nil + file_s2_gameevents_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/gcsdk_gcmessages.pb.go b/pkg/demoinfocs/msgs2/gcsdk_gcmessages.pb.go new file mode 100644 index 00000000..1f0d1bcb --- /dev/null +++ b/pkg/demoinfocs/msgs2/gcsdk_gcmessages.pb.go @@ -0,0 +1,4661 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/gcsdk_gcmessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GCClientLauncherType int32 + +const ( + GCClientLauncherType_GCClientLauncherType_DEFAULT GCClientLauncherType = 0 + GCClientLauncherType_GCClientLauncherType_PERFECTWORLD GCClientLauncherType = 1 + GCClientLauncherType_GCClientLauncherType_STEAMCHINA GCClientLauncherType = 2 +) + +// Enum value maps for GCClientLauncherType. +var ( + GCClientLauncherType_name = map[int32]string{ + 0: "GCClientLauncherType_DEFAULT", + 1: "GCClientLauncherType_PERFECTWORLD", + 2: "GCClientLauncherType_STEAMCHINA", + } + GCClientLauncherType_value = map[string]int32{ + "GCClientLauncherType_DEFAULT": 0, + "GCClientLauncherType_PERFECTWORLD": 1, + "GCClientLauncherType_STEAMCHINA": 2, + } +) + +func (x GCClientLauncherType) Enum() *GCClientLauncherType { + p := new(GCClientLauncherType) + *p = x + return p +} + +func (x GCClientLauncherType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GCClientLauncherType) Descriptor() protoreflect.EnumDescriptor { + return file_s2_gcsdk_gcmessages_proto_enumTypes[0].Descriptor() +} + +func (GCClientLauncherType) Type() protoreflect.EnumType { + return &file_s2_gcsdk_gcmessages_proto_enumTypes[0] +} + +func (x GCClientLauncherType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *GCClientLauncherType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = GCClientLauncherType(num) + return nil +} + +// Deprecated: Use GCClientLauncherType.Descriptor instead. +func (GCClientLauncherType) EnumDescriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{0} +} + +type GCConnectionStatus int32 + +const ( + GCConnectionStatus_GCConnectionStatus_HAVE_SESSION GCConnectionStatus = 0 + GCConnectionStatus_GCConnectionStatus_GC_GOING_DOWN GCConnectionStatus = 1 + GCConnectionStatus_GCConnectionStatus_NO_SESSION GCConnectionStatus = 2 + GCConnectionStatus_GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE GCConnectionStatus = 3 + GCConnectionStatus_GCConnectionStatus_NO_STEAM GCConnectionStatus = 4 +) + +// Enum value maps for GCConnectionStatus. +var ( + GCConnectionStatus_name = map[int32]string{ + 0: "GCConnectionStatus_HAVE_SESSION", + 1: "GCConnectionStatus_GC_GOING_DOWN", + 2: "GCConnectionStatus_NO_SESSION", + 3: "GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE", + 4: "GCConnectionStatus_NO_STEAM", + } + GCConnectionStatus_value = map[string]int32{ + "GCConnectionStatus_HAVE_SESSION": 0, + "GCConnectionStatus_GC_GOING_DOWN": 1, + "GCConnectionStatus_NO_SESSION": 2, + "GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE": 3, + "GCConnectionStatus_NO_STEAM": 4, + } +) + +func (x GCConnectionStatus) Enum() *GCConnectionStatus { + p := new(GCConnectionStatus) + *p = x + return p +} + +func (x GCConnectionStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GCConnectionStatus) Descriptor() protoreflect.EnumDescriptor { + return file_s2_gcsdk_gcmessages_proto_enumTypes[1].Descriptor() +} + +func (GCConnectionStatus) Type() protoreflect.EnumType { + return &file_s2_gcsdk_gcmessages_proto_enumTypes[1] +} + +func (x GCConnectionStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *GCConnectionStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = GCConnectionStatus(num) + return nil +} + +// Deprecated: Use GCConnectionStatus.Descriptor instead. +func (GCConnectionStatus) EnumDescriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{1} +} + +type CMsgSOIDOwner struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Id *uint64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"` +} + +func (x *CMsgSOIDOwner) Reset() { + *x = CMsgSOIDOwner{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOIDOwner) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOIDOwner) ProtoMessage() {} + +func (x *CMsgSOIDOwner) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOIDOwner.ProtoReflect.Descriptor instead. +func (*CMsgSOIDOwner) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgSOIDOwner) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgSOIDOwner) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +type CMsgSOSingleObject struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId *int32 `protobuf:"varint,2,opt,name=type_id,json=typeId" json:"type_id,omitempty"` + ObjectData []byte `protobuf:"bytes,3,opt,name=object_data,json=objectData" json:"object_data,omitempty"` + Version *uint64 `protobuf:"fixed64,4,opt,name=version" json:"version,omitempty"` + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,5,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOSingleObject) Reset() { + *x = CMsgSOSingleObject{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOSingleObject) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOSingleObject) ProtoMessage() {} + +func (x *CMsgSOSingleObject) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOSingleObject.ProtoReflect.Descriptor instead. +func (*CMsgSOSingleObject) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgSOSingleObject) GetTypeId() int32 { + if x != nil && x.TypeId != nil { + return *x.TypeId + } + return 0 +} + +func (x *CMsgSOSingleObject) GetObjectData() []byte { + if x != nil { + return x.ObjectData + } + return nil +} + +func (x *CMsgSOSingleObject) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgSOSingleObject) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOMultipleObjects struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ObjectsModified []*CMsgSOMultipleObjects_SingleObject `protobuf:"bytes,2,rep,name=objects_modified,json=objectsModified" json:"objects_modified,omitempty"` + Version *uint64 `protobuf:"fixed64,3,opt,name=version" json:"version,omitempty"` + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,6,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOMultipleObjects) Reset() { + *x = CMsgSOMultipleObjects{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOMultipleObjects) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOMultipleObjects) ProtoMessage() {} + +func (x *CMsgSOMultipleObjects) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOMultipleObjects.ProtoReflect.Descriptor instead. +func (*CMsgSOMultipleObjects) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgSOMultipleObjects) GetObjectsModified() []*CMsgSOMultipleObjects_SingleObject { + if x != nil { + return x.ObjectsModified + } + return nil +} + +func (x *CMsgSOMultipleObjects) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgSOMultipleObjects) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOCacheSubscribed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Objects []*CMsgSOCacheSubscribed_SubscribedType `protobuf:"bytes,2,rep,name=objects" json:"objects,omitempty"` + Version *uint64 `protobuf:"fixed64,3,opt,name=version" json:"version,omitempty"` + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,4,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOCacheSubscribed) Reset() { + *x = CMsgSOCacheSubscribed{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheSubscribed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheSubscribed) ProtoMessage() {} + +func (x *CMsgSOCacheSubscribed) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheSubscribed.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheSubscribed) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgSOCacheSubscribed) GetObjects() []*CMsgSOCacheSubscribed_SubscribedType { + if x != nil { + return x.Objects + } + return nil +} + +func (x *CMsgSOCacheSubscribed) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgSOCacheSubscribed) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOCacheUnsubscribed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,2,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOCacheUnsubscribed) Reset() { + *x = CMsgSOCacheUnsubscribed{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheUnsubscribed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheUnsubscribed) ProtoMessage() {} + +func (x *CMsgSOCacheUnsubscribed) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheUnsubscribed.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheUnsubscribed) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgSOCacheUnsubscribed) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOCacheSubscriptionCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint64 `protobuf:"fixed64,2,opt,name=version" json:"version,omitempty"` + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,3,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOCacheSubscriptionCheck) Reset() { + *x = CMsgSOCacheSubscriptionCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheSubscriptionCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheSubscriptionCheck) ProtoMessage() {} + +func (x *CMsgSOCacheSubscriptionCheck) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheSubscriptionCheck.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheSubscriptionCheck) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgSOCacheSubscriptionCheck) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgSOCacheSubscriptionCheck) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOCacheSubscriptionRefresh struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerSoid *CMsgSOIDOwner `protobuf:"bytes,2,opt,name=owner_soid,json=ownerSoid" json:"owner_soid,omitempty"` +} + +func (x *CMsgSOCacheSubscriptionRefresh) Reset() { + *x = CMsgSOCacheSubscriptionRefresh{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheSubscriptionRefresh) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheSubscriptionRefresh) ProtoMessage() {} + +func (x *CMsgSOCacheSubscriptionRefresh) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheSubscriptionRefresh.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheSubscriptionRefresh) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgSOCacheSubscriptionRefresh) GetOwnerSoid() *CMsgSOIDOwner { + if x != nil { + return x.OwnerSoid + } + return nil +} + +type CMsgSOCacheVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint64 `protobuf:"fixed64,1,opt,name=version" json:"version,omitempty"` +} + +func (x *CMsgSOCacheVersion) Reset() { + *x = CMsgSOCacheVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheVersion) ProtoMessage() {} + +func (x *CMsgSOCacheVersion) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheVersion.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheVersion) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{7} +} + +func (x *CMsgSOCacheVersion) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +type CMsgAccountDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Valid *bool `protobuf:"varint,1,opt,name=valid" json:"valid,omitempty"` + AccountName *string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` + PublicProfile *bool `protobuf:"varint,4,opt,name=public_profile,json=publicProfile" json:"public_profile,omitempty"` + PublicInventory *bool `protobuf:"varint,5,opt,name=public_inventory,json=publicInventory" json:"public_inventory,omitempty"` + VacBanned *bool `protobuf:"varint,6,opt,name=vac_banned,json=vacBanned" json:"vac_banned,omitempty"` + CyberCafe *bool `protobuf:"varint,7,opt,name=cyber_cafe,json=cyberCafe" json:"cyber_cafe,omitempty"` + SchoolAccount *bool `protobuf:"varint,8,opt,name=school_account,json=schoolAccount" json:"school_account,omitempty"` + FreeTrialAccount *bool `protobuf:"varint,9,opt,name=free_trial_account,json=freeTrialAccount" json:"free_trial_account,omitempty"` + Subscribed *bool `protobuf:"varint,10,opt,name=subscribed" json:"subscribed,omitempty"` + LowViolence *bool `protobuf:"varint,11,opt,name=low_violence,json=lowViolence" json:"low_violence,omitempty"` + Limited *bool `protobuf:"varint,12,opt,name=limited" json:"limited,omitempty"` + Trusted *bool `protobuf:"varint,13,opt,name=trusted" json:"trusted,omitempty"` + Package *uint32 `protobuf:"varint,14,opt,name=package" json:"package,omitempty"` + TimeCached *uint32 `protobuf:"fixed32,15,opt,name=time_cached,json=timeCached" json:"time_cached,omitempty"` + AccountLocked *bool `protobuf:"varint,16,opt,name=account_locked,json=accountLocked" json:"account_locked,omitempty"` + CommunityBanned *bool `protobuf:"varint,17,opt,name=community_banned,json=communityBanned" json:"community_banned,omitempty"` + TradeBanned *bool `protobuf:"varint,18,opt,name=trade_banned,json=tradeBanned" json:"trade_banned,omitempty"` + EligibleForCommunityMarket *bool `protobuf:"varint,19,opt,name=eligible_for_community_market,json=eligibleForCommunityMarket" json:"eligible_for_community_market,omitempty"` +} + +func (x *CMsgAccountDetails) Reset() { + *x = CMsgAccountDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAccountDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAccountDetails) ProtoMessage() {} + +func (x *CMsgAccountDetails) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAccountDetails.ProtoReflect.Descriptor instead. +func (*CMsgAccountDetails) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsgAccountDetails) GetValid() bool { + if x != nil && x.Valid != nil { + return *x.Valid + } + return false +} + +func (x *CMsgAccountDetails) GetAccountName() string { + if x != nil && x.AccountName != nil { + return *x.AccountName + } + return "" +} + +func (x *CMsgAccountDetails) GetPublicProfile() bool { + if x != nil && x.PublicProfile != nil { + return *x.PublicProfile + } + return false +} + +func (x *CMsgAccountDetails) GetPublicInventory() bool { + if x != nil && x.PublicInventory != nil { + return *x.PublicInventory + } + return false +} + +func (x *CMsgAccountDetails) GetVacBanned() bool { + if x != nil && x.VacBanned != nil { + return *x.VacBanned + } + return false +} + +func (x *CMsgAccountDetails) GetCyberCafe() bool { + if x != nil && x.CyberCafe != nil { + return *x.CyberCafe + } + return false +} + +func (x *CMsgAccountDetails) GetSchoolAccount() bool { + if x != nil && x.SchoolAccount != nil { + return *x.SchoolAccount + } + return false +} + +func (x *CMsgAccountDetails) GetFreeTrialAccount() bool { + if x != nil && x.FreeTrialAccount != nil { + return *x.FreeTrialAccount + } + return false +} + +func (x *CMsgAccountDetails) GetSubscribed() bool { + if x != nil && x.Subscribed != nil { + return *x.Subscribed + } + return false +} + +func (x *CMsgAccountDetails) GetLowViolence() bool { + if x != nil && x.LowViolence != nil { + return *x.LowViolence + } + return false +} + +func (x *CMsgAccountDetails) GetLimited() bool { + if x != nil && x.Limited != nil { + return *x.Limited + } + return false +} + +func (x *CMsgAccountDetails) GetTrusted() bool { + if x != nil && x.Trusted != nil { + return *x.Trusted + } + return false +} + +func (x *CMsgAccountDetails) GetPackage() uint32 { + if x != nil && x.Package != nil { + return *x.Package + } + return 0 +} + +func (x *CMsgAccountDetails) GetTimeCached() uint32 { + if x != nil && x.TimeCached != nil { + return *x.TimeCached + } + return 0 +} + +func (x *CMsgAccountDetails) GetAccountLocked() bool { + if x != nil && x.AccountLocked != nil { + return *x.AccountLocked + } + return false +} + +func (x *CMsgAccountDetails) GetCommunityBanned() bool { + if x != nil && x.CommunityBanned != nil { + return *x.CommunityBanned + } + return false +} + +func (x *CMsgAccountDetails) GetTradeBanned() bool { + if x != nil && x.TradeBanned != nil { + return *x.TradeBanned + } + return false +} + +func (x *CMsgAccountDetails) GetEligibleForCommunityMarket() bool { + if x != nil && x.EligibleForCommunityMarket != nil { + return *x.EligibleForCommunityMarket + } + return false +} + +type CMsgGCMultiplexMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgtype *uint32 `protobuf:"varint,1,opt,name=msgtype" json:"msgtype,omitempty"` + Payload []byte `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"` + Steamids []uint64 `protobuf:"fixed64,3,rep,name=steamids" json:"steamids,omitempty"` + Replytogc *bool `protobuf:"varint,4,opt,name=replytogc" json:"replytogc,omitempty"` +} + +func (x *CMsgGCMultiplexMessage) Reset() { + *x = CMsgGCMultiplexMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMultiplexMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMultiplexMessage) ProtoMessage() {} + +func (x *CMsgGCMultiplexMessage) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMultiplexMessage.ProtoReflect.Descriptor instead. +func (*CMsgGCMultiplexMessage) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{9} +} + +func (x *CMsgGCMultiplexMessage) GetMsgtype() uint32 { + if x != nil && x.Msgtype != nil { + return *x.Msgtype + } + return 0 +} + +func (x *CMsgGCMultiplexMessage) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +func (x *CMsgGCMultiplexMessage) GetSteamids() []uint64 { + if x != nil { + return x.Steamids + } + return nil +} + +func (x *CMsgGCMultiplexMessage) GetReplytogc() bool { + if x != nil && x.Replytogc != nil { + return *x.Replytogc + } + return false +} + +type CMsgGCMultiplexMessage_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgtype *uint32 `protobuf:"varint,1,opt,name=msgtype" json:"msgtype,omitempty"` +} + +func (x *CMsgGCMultiplexMessage_Response) Reset() { + *x = CMsgGCMultiplexMessage_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMultiplexMessage_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMultiplexMessage_Response) ProtoMessage() {} + +func (x *CMsgGCMultiplexMessage_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMultiplexMessage_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCMultiplexMessage_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{10} +} + +func (x *CMsgGCMultiplexMessage_Response) GetMsgtype() uint32 { + if x != nil && x.Msgtype != nil { + return *x.Msgtype + } + return 0 +} + +type CGCToGCMsgMasterAck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DirIndex *uint32 `protobuf:"varint,1,opt,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` + GcType *uint32 `protobuf:"varint,2,opt,name=gc_type,json=gcType" json:"gc_type,omitempty"` +} + +func (x *CGCToGCMsgMasterAck) Reset() { + *x = CGCToGCMsgMasterAck{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCToGCMsgMasterAck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCToGCMsgMasterAck) ProtoMessage() {} + +func (x *CGCToGCMsgMasterAck) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCToGCMsgMasterAck.ProtoReflect.Descriptor instead. +func (*CGCToGCMsgMasterAck) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CGCToGCMsgMasterAck) GetDirIndex() uint32 { + if x != nil && x.DirIndex != nil { + return *x.DirIndex + } + return 0 +} + +func (x *CGCToGCMsgMasterAck) GetGcType() uint32 { + if x != nil && x.GcType != nil { + return *x.GcType + } + return 0 +} + +type CGCToGCMsgMasterAck_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` +} + +// Default values for CGCToGCMsgMasterAck_Response fields. +const ( + Default_CGCToGCMsgMasterAck_Response_Eresult = int32(2) +) + +func (x *CGCToGCMsgMasterAck_Response) Reset() { + *x = CGCToGCMsgMasterAck_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCToGCMsgMasterAck_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCToGCMsgMasterAck_Response) ProtoMessage() {} + +func (x *CGCToGCMsgMasterAck_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCToGCMsgMasterAck_Response.ProtoReflect.Descriptor instead. +func (*CGCToGCMsgMasterAck_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CGCToGCMsgMasterAck_Response) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CGCToGCMsgMasterAck_Response_Eresult +} + +type CGCToGCMsgMasterStartupComplete struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CGCToGCMsgMasterStartupComplete) Reset() { + *x = CGCToGCMsgMasterStartupComplete{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCToGCMsgMasterStartupComplete) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCToGCMsgMasterStartupComplete) ProtoMessage() {} + +func (x *CGCToGCMsgMasterStartupComplete) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCToGCMsgMasterStartupComplete.ProtoReflect.Descriptor instead. +func (*CGCToGCMsgMasterStartupComplete) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{13} +} + +type CGCToGCMsgRouted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` + SenderId *uint64 `protobuf:"fixed64,2,opt,name=sender_id,json=senderId" json:"sender_id,omitempty"` + NetMessage []byte `protobuf:"bytes,3,opt,name=net_message,json=netMessage" json:"net_message,omitempty"` + Ip *uint32 `protobuf:"varint,4,opt,name=ip" json:"ip,omitempty"` +} + +func (x *CGCToGCMsgRouted) Reset() { + *x = CGCToGCMsgRouted{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCToGCMsgRouted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCToGCMsgRouted) ProtoMessage() {} + +func (x *CGCToGCMsgRouted) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCToGCMsgRouted.ProtoReflect.Descriptor instead. +func (*CGCToGCMsgRouted) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{14} +} + +func (x *CGCToGCMsgRouted) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *CGCToGCMsgRouted) GetSenderId() uint64 { + if x != nil && x.SenderId != nil { + return *x.SenderId + } + return 0 +} + +func (x *CGCToGCMsgRouted) GetNetMessage() []byte { + if x != nil { + return x.NetMessage + } + return nil +} + +func (x *CGCToGCMsgRouted) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +type CGCToGCMsgRoutedReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` + NetMessage []byte `protobuf:"bytes,2,opt,name=net_message,json=netMessage" json:"net_message,omitempty"` +} + +func (x *CGCToGCMsgRoutedReply) Reset() { + *x = CGCToGCMsgRoutedReply{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCToGCMsgRoutedReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCToGCMsgRoutedReply) ProtoMessage() {} + +func (x *CGCToGCMsgRoutedReply) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCToGCMsgRoutedReply.ProtoReflect.Descriptor instead. +func (*CGCToGCMsgRoutedReply) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{15} +} + +func (x *CGCToGCMsgRoutedReply) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *CGCToGCMsgRoutedReply) GetNetMessage() []byte { + if x != nil { + return x.NetMessage + } + return nil +} + +type CMsgGCUpdateSessionIP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + Ip *uint32 `protobuf:"fixed32,2,opt,name=ip" json:"ip,omitempty"` +} + +func (x *CMsgGCUpdateSessionIP) Reset() { + *x = CMsgGCUpdateSessionIP{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCUpdateSessionIP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCUpdateSessionIP) ProtoMessage() {} + +func (x *CMsgGCUpdateSessionIP) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCUpdateSessionIP.ProtoReflect.Descriptor instead. +func (*CMsgGCUpdateSessionIP) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{16} +} + +func (x *CMsgGCUpdateSessionIP) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgGCUpdateSessionIP) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +type CMsgGCRequestSessionIP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CMsgGCRequestSessionIP) Reset() { + *x = CMsgGCRequestSessionIP{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCRequestSessionIP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCRequestSessionIP) ProtoMessage() {} + +func (x *CMsgGCRequestSessionIP) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCRequestSessionIP.ProtoReflect.Descriptor instead. +func (*CMsgGCRequestSessionIP) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CMsgGCRequestSessionIP) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +type CMsgGCRequestSessionIPResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ip *uint32 `protobuf:"fixed32,1,opt,name=ip" json:"ip,omitempty"` +} + +func (x *CMsgGCRequestSessionIPResponse) Reset() { + *x = CMsgGCRequestSessionIPResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCRequestSessionIPResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCRequestSessionIPResponse) ProtoMessage() {} + +func (x *CMsgGCRequestSessionIPResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCRequestSessionIPResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCRequestSessionIPResponse) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{18} +} + +func (x *CMsgGCRequestSessionIPResponse) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +type CMsgSOCacheHaveVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Soid *CMsgSOIDOwner `protobuf:"bytes,1,opt,name=soid" json:"soid,omitempty"` + Version *uint64 `protobuf:"fixed64,2,opt,name=version" json:"version,omitempty"` +} + +func (x *CMsgSOCacheHaveVersion) Reset() { + *x = CMsgSOCacheHaveVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheHaveVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheHaveVersion) ProtoMessage() {} + +func (x *CMsgSOCacheHaveVersion) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheHaveVersion.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheHaveVersion) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{19} +} + +func (x *CMsgSOCacheHaveVersion) GetSoid() *CMsgSOIDOwner { + if x != nil { + return x.Soid + } + return nil +} + +func (x *CMsgSOCacheHaveVersion) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +type CMsgClientHello struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + SocacheHaveVersions []*CMsgSOCacheHaveVersion `protobuf:"bytes,2,rep,name=socache_have_versions,json=socacheHaveVersions" json:"socache_have_versions,omitempty"` + ClientSessionNeed *uint32 `protobuf:"varint,3,opt,name=client_session_need,json=clientSessionNeed" json:"client_session_need,omitempty"` + ClientLauncher *uint32 `protobuf:"varint,4,opt,name=client_launcher,json=clientLauncher" json:"client_launcher,omitempty"` + PartnerSrcid *uint32 `protobuf:"varint,5,opt,name=partner_srcid,json=partnerSrcid" json:"partner_srcid,omitempty"` + PartnerAccountid *uint32 `protobuf:"varint,6,opt,name=partner_accountid,json=partnerAccountid" json:"partner_accountid,omitempty"` + PartnerAccountflags *uint32 `protobuf:"varint,7,opt,name=partner_accountflags,json=partnerAccountflags" json:"partner_accountflags,omitempty"` + PartnerAccountbalance *uint32 `protobuf:"varint,8,opt,name=partner_accountbalance,json=partnerAccountbalance" json:"partner_accountbalance,omitempty"` + SteamLauncher *uint32 `protobuf:"varint,9,opt,name=steam_launcher,json=steamLauncher" json:"steam_launcher,omitempty"` +} + +func (x *CMsgClientHello) Reset() { + *x = CMsgClientHello{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientHello) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientHello) ProtoMessage() {} + +func (x *CMsgClientHello) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClientHello.ProtoReflect.Descriptor instead. +func (*CMsgClientHello) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{20} +} + +func (x *CMsgClientHello) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgClientHello) GetSocacheHaveVersions() []*CMsgSOCacheHaveVersion { + if x != nil { + return x.SocacheHaveVersions + } + return nil +} + +func (x *CMsgClientHello) GetClientSessionNeed() uint32 { + if x != nil && x.ClientSessionNeed != nil { + return *x.ClientSessionNeed + } + return 0 +} + +func (x *CMsgClientHello) GetClientLauncher() uint32 { + if x != nil && x.ClientLauncher != nil { + return *x.ClientLauncher + } + return 0 +} + +func (x *CMsgClientHello) GetPartnerSrcid() uint32 { + if x != nil && x.PartnerSrcid != nil { + return *x.PartnerSrcid + } + return 0 +} + +func (x *CMsgClientHello) GetPartnerAccountid() uint32 { + if x != nil && x.PartnerAccountid != nil { + return *x.PartnerAccountid + } + return 0 +} + +func (x *CMsgClientHello) GetPartnerAccountflags() uint32 { + if x != nil && x.PartnerAccountflags != nil { + return *x.PartnerAccountflags + } + return 0 +} + +func (x *CMsgClientHello) GetPartnerAccountbalance() uint32 { + if x != nil && x.PartnerAccountbalance != nil { + return *x.PartnerAccountbalance + } + return 0 +} + +func (x *CMsgClientHello) GetSteamLauncher() uint32 { + if x != nil && x.SteamLauncher != nil { + return *x.SteamLauncher + } + return 0 +} + +type CMsgServerHello struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + SocacheHaveVersions []*CMsgSOCacheHaveVersion `protobuf:"bytes,2,rep,name=socache_have_versions,json=socacheHaveVersions" json:"socache_have_versions,omitempty"` + LegacyClientSessionNeed *uint32 `protobuf:"varint,3,opt,name=legacy_client_session_need,json=legacyClientSessionNeed" json:"legacy_client_session_need,omitempty"` + ClientLauncher *uint32 `protobuf:"varint,4,opt,name=client_launcher,json=clientLauncher" json:"client_launcher,omitempty"` + LegacySteamdatagramRouting []byte `protobuf:"bytes,6,opt,name=legacy_steamdatagram_routing,json=legacySteamdatagramRouting" json:"legacy_steamdatagram_routing,omitempty"` + RequiredInternalAddr *uint32 `protobuf:"varint,7,opt,name=required_internal_addr,json=requiredInternalAddr" json:"required_internal_addr,omitempty"` + SteamdatagramLogin []byte `protobuf:"bytes,8,opt,name=steamdatagram_login,json=steamdatagramLogin" json:"steamdatagram_login,omitempty"` +} + +func (x *CMsgServerHello) Reset() { + *x = CMsgServerHello{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerHello) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerHello) ProtoMessage() {} + +func (x *CMsgServerHello) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgServerHello.ProtoReflect.Descriptor instead. +func (*CMsgServerHello) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{21} +} + +func (x *CMsgServerHello) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgServerHello) GetSocacheHaveVersions() []*CMsgSOCacheHaveVersion { + if x != nil { + return x.SocacheHaveVersions + } + return nil +} + +func (x *CMsgServerHello) GetLegacyClientSessionNeed() uint32 { + if x != nil && x.LegacyClientSessionNeed != nil { + return *x.LegacyClientSessionNeed + } + return 0 +} + +func (x *CMsgServerHello) GetClientLauncher() uint32 { + if x != nil && x.ClientLauncher != nil { + return *x.ClientLauncher + } + return 0 +} + +func (x *CMsgServerHello) GetLegacySteamdatagramRouting() []byte { + if x != nil { + return x.LegacySteamdatagramRouting + } + return nil +} + +func (x *CMsgServerHello) GetRequiredInternalAddr() uint32 { + if x != nil && x.RequiredInternalAddr != nil { + return *x.RequiredInternalAddr + } + return 0 +} + +func (x *CMsgServerHello) GetSteamdatagramLogin() []byte { + if x != nil { + return x.SteamdatagramLogin + } + return nil +} + +type CMsgClientWelcome struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + GameData []byte `protobuf:"bytes,2,opt,name=game_data,json=gameData" json:"game_data,omitempty"` + OutofdateSubscribedCaches []*CMsgSOCacheSubscribed `protobuf:"bytes,3,rep,name=outofdate_subscribed_caches,json=outofdateSubscribedCaches" json:"outofdate_subscribed_caches,omitempty"` + UptodateSubscribedCaches []*CMsgSOCacheSubscriptionCheck `protobuf:"bytes,4,rep,name=uptodate_subscribed_caches,json=uptodateSubscribedCaches" json:"uptodate_subscribed_caches,omitempty"` + Location *CMsgClientWelcome_Location `protobuf:"bytes,5,opt,name=location" json:"location,omitempty"` + GameData2 []byte `protobuf:"bytes,6,opt,name=game_data2,json=gameData2" json:"game_data2,omitempty"` + Rtime32GcWelcomeTimestamp *uint32 `protobuf:"varint,7,opt,name=rtime32_gc_welcome_timestamp,json=rtime32GcWelcomeTimestamp" json:"rtime32_gc_welcome_timestamp,omitempty"` + Currency *uint32 `protobuf:"varint,8,opt,name=currency" json:"currency,omitempty"` + Balance *uint32 `protobuf:"varint,9,opt,name=balance" json:"balance,omitempty"` + BalanceUrl *string `protobuf:"bytes,10,opt,name=balance_url,json=balanceUrl" json:"balance_url,omitempty"` + TxnCountryCode *string `protobuf:"bytes,11,opt,name=txn_country_code,json=txnCountryCode" json:"txn_country_code,omitempty"` +} + +func (x *CMsgClientWelcome) Reset() { + *x = CMsgClientWelcome{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientWelcome) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientWelcome) ProtoMessage() {} + +func (x *CMsgClientWelcome) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClientWelcome.ProtoReflect.Descriptor instead. +func (*CMsgClientWelcome) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{22} +} + +func (x *CMsgClientWelcome) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgClientWelcome) GetGameData() []byte { + if x != nil { + return x.GameData + } + return nil +} + +func (x *CMsgClientWelcome) GetOutofdateSubscribedCaches() []*CMsgSOCacheSubscribed { + if x != nil { + return x.OutofdateSubscribedCaches + } + return nil +} + +func (x *CMsgClientWelcome) GetUptodateSubscribedCaches() []*CMsgSOCacheSubscriptionCheck { + if x != nil { + return x.UptodateSubscribedCaches + } + return nil +} + +func (x *CMsgClientWelcome) GetLocation() *CMsgClientWelcome_Location { + if x != nil { + return x.Location + } + return nil +} + +func (x *CMsgClientWelcome) GetGameData2() []byte { + if x != nil { + return x.GameData2 + } + return nil +} + +func (x *CMsgClientWelcome) GetRtime32GcWelcomeTimestamp() uint32 { + if x != nil && x.Rtime32GcWelcomeTimestamp != nil { + return *x.Rtime32GcWelcomeTimestamp + } + return 0 +} + +func (x *CMsgClientWelcome) GetCurrency() uint32 { + if x != nil && x.Currency != nil { + return *x.Currency + } + return 0 +} + +func (x *CMsgClientWelcome) GetBalance() uint32 { + if x != nil && x.Balance != nil { + return *x.Balance + } + return 0 +} + +func (x *CMsgClientWelcome) GetBalanceUrl() string { + if x != nil && x.BalanceUrl != nil { + return *x.BalanceUrl + } + return "" +} + +func (x *CMsgClientWelcome) GetTxnCountryCode() string { + if x != nil && x.TxnCountryCode != nil { + return *x.TxnCountryCode + } + return "" +} + +type CMsgConnectionStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *GCConnectionStatus `protobuf:"varint,1,opt,name=status,enum=com.github.markus_wa.demoinfocs_golang.s2.GCConnectionStatus,def=0" json:"status,omitempty"` + ClientSessionNeed *uint32 `protobuf:"varint,2,opt,name=client_session_need,json=clientSessionNeed" json:"client_session_need,omitempty"` + QueuePosition *int32 `protobuf:"varint,3,opt,name=queue_position,json=queuePosition" json:"queue_position,omitempty"` + QueueSize *int32 `protobuf:"varint,4,opt,name=queue_size,json=queueSize" json:"queue_size,omitempty"` + WaitSeconds *int32 `protobuf:"varint,5,opt,name=wait_seconds,json=waitSeconds" json:"wait_seconds,omitempty"` + EstimatedWaitSecondsRemaining *int32 `protobuf:"varint,6,opt,name=estimated_wait_seconds_remaining,json=estimatedWaitSecondsRemaining" json:"estimated_wait_seconds_remaining,omitempty"` +} + +// Default values for CMsgConnectionStatus fields. +const ( + Default_CMsgConnectionStatus_Status = GCConnectionStatus_GCConnectionStatus_HAVE_SESSION +) + +func (x *CMsgConnectionStatus) Reset() { + *x = CMsgConnectionStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgConnectionStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgConnectionStatus) ProtoMessage() {} + +func (x *CMsgConnectionStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgConnectionStatus.ProtoReflect.Descriptor instead. +func (*CMsgConnectionStatus) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{23} +} + +func (x *CMsgConnectionStatus) GetStatus() GCConnectionStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return Default_CMsgConnectionStatus_Status +} + +func (x *CMsgConnectionStatus) GetClientSessionNeed() uint32 { + if x != nil && x.ClientSessionNeed != nil { + return *x.ClientSessionNeed + } + return 0 +} + +func (x *CMsgConnectionStatus) GetQueuePosition() int32 { + if x != nil && x.QueuePosition != nil { + return *x.QueuePosition + } + return 0 +} + +func (x *CMsgConnectionStatus) GetQueueSize() int32 { + if x != nil && x.QueueSize != nil { + return *x.QueueSize + } + return 0 +} + +func (x *CMsgConnectionStatus) GetWaitSeconds() int32 { + if x != nil && x.WaitSeconds != nil { + return *x.WaitSeconds + } + return 0 +} + +func (x *CMsgConnectionStatus) GetEstimatedWaitSecondsRemaining() int32 { + if x != nil && x.EstimatedWaitSecondsRemaining != nil { + return *x.EstimatedWaitSecondsRemaining + } + return 0 +} + +type CWorkshop_PopulateItemDescriptions_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Languages []*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock `protobuf:"bytes,2,rep,name=languages" json:"languages,omitempty"` +} + +func (x *CWorkshop_PopulateItemDescriptions_Request) Reset() { + *x = CWorkshop_PopulateItemDescriptions_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_PopulateItemDescriptions_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_PopulateItemDescriptions_Request) ProtoMessage() {} + +func (x *CWorkshop_PopulateItemDescriptions_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_PopulateItemDescriptions_Request.ProtoReflect.Descriptor instead. +func (*CWorkshop_PopulateItemDescriptions_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CWorkshop_PopulateItemDescriptions_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CWorkshop_PopulateItemDescriptions_Request) GetLanguages() []*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock { + if x != nil { + return x.Languages + } + return nil +} + +type CWorkshop_GetContributors_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Gameitemid *uint32 `protobuf:"varint,2,opt,name=gameitemid" json:"gameitemid,omitempty"` +} + +func (x *CWorkshop_GetContributors_Request) Reset() { + *x = CWorkshop_GetContributors_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_GetContributors_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_GetContributors_Request) ProtoMessage() {} + +func (x *CWorkshop_GetContributors_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_GetContributors_Request.ProtoReflect.Descriptor instead. +func (*CWorkshop_GetContributors_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CWorkshop_GetContributors_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CWorkshop_GetContributors_Request) GetGameitemid() uint32 { + if x != nil && x.Gameitemid != nil { + return *x.Gameitemid + } + return 0 +} + +type CWorkshop_GetContributors_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Contributors []uint64 `protobuf:"fixed64,1,rep,name=contributors" json:"contributors,omitempty"` +} + +func (x *CWorkshop_GetContributors_Response) Reset() { + *x = CWorkshop_GetContributors_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_GetContributors_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_GetContributors_Response) ProtoMessage() {} + +func (x *CWorkshop_GetContributors_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_GetContributors_Response.ProtoReflect.Descriptor instead. +func (*CWorkshop_GetContributors_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CWorkshop_GetContributors_Response) GetContributors() []uint64 { + if x != nil { + return x.Contributors + } + return nil +} + +type CWorkshop_SetItemPaymentRules_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Gameitemid *uint32 `protobuf:"varint,2,opt,name=gameitemid" json:"gameitemid,omitempty"` + AssociatedWorkshopFiles []*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule `protobuf:"bytes,3,rep,name=associated_workshop_files,json=associatedWorkshopFiles" json:"associated_workshop_files,omitempty"` + PartnerAccounts []*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule `protobuf:"bytes,4,rep,name=partner_accounts,json=partnerAccounts" json:"partner_accounts,omitempty"` + ValidateOnly *bool `protobuf:"varint,5,opt,name=validate_only,json=validateOnly" json:"validate_only,omitempty"` + MakeWorkshopFilesSubscribable *bool `protobuf:"varint,6,opt,name=make_workshop_files_subscribable,json=makeWorkshopFilesSubscribable" json:"make_workshop_files_subscribable,omitempty"` + AssociatedWorkshopFileForDirectPayments *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule `protobuf:"bytes,7,opt,name=associated_workshop_file_for_direct_payments,json=associatedWorkshopFileForDirectPayments" json:"associated_workshop_file_for_direct_payments,omitempty"` +} + +func (x *CWorkshop_SetItemPaymentRules_Request) Reset() { + *x = CWorkshop_SetItemPaymentRules_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_SetItemPaymentRules_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_SetItemPaymentRules_Request) ProtoMessage() {} + +func (x *CWorkshop_SetItemPaymentRules_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_SetItemPaymentRules_Request.ProtoReflect.Descriptor instead. +func (*CWorkshop_SetItemPaymentRules_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetGameitemid() uint32 { + if x != nil && x.Gameitemid != nil { + return *x.Gameitemid + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetAssociatedWorkshopFiles() []*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule { + if x != nil { + return x.AssociatedWorkshopFiles + } + return nil +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetPartnerAccounts() []*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule { + if x != nil { + return x.PartnerAccounts + } + return nil +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetValidateOnly() bool { + if x != nil && x.ValidateOnly != nil { + return *x.ValidateOnly + } + return false +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetMakeWorkshopFilesSubscribable() bool { + if x != nil && x.MakeWorkshopFilesSubscribable != nil { + return *x.MakeWorkshopFilesSubscribable + } + return false +} + +func (x *CWorkshop_SetItemPaymentRules_Request) GetAssociatedWorkshopFileForDirectPayments() *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule { + if x != nil { + return x.AssociatedWorkshopFileForDirectPayments + } + return nil +} + +type CWorkshop_SetItemPaymentRules_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CWorkshop_SetItemPaymentRules_Response) Reset() { + *x = CWorkshop_SetItemPaymentRules_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_SetItemPaymentRules_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_SetItemPaymentRules_Response) ProtoMessage() {} + +func (x *CWorkshop_SetItemPaymentRules_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_SetItemPaymentRules_Response.ProtoReflect.Descriptor instead. +func (*CWorkshop_SetItemPaymentRules_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{28} +} + +type CGameServers_AggregationQuery_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filter *string `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"` + GroupFields []string `protobuf:"bytes,3,rep,name=group_fields,json=groupFields" json:"group_fields,omitempty"` +} + +func (x *CGameServers_AggregationQuery_Request) Reset() { + *x = CGameServers_AggregationQuery_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameServers_AggregationQuery_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameServers_AggregationQuery_Request) ProtoMessage() {} + +func (x *CGameServers_AggregationQuery_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameServers_AggregationQuery_Request.ProtoReflect.Descriptor instead. +func (*CGameServers_AggregationQuery_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{29} +} + +func (x *CGameServers_AggregationQuery_Request) GetFilter() string { + if x != nil && x.Filter != nil { + return *x.Filter + } + return "" +} + +func (x *CGameServers_AggregationQuery_Request) GetGroupFields() []string { + if x != nil { + return x.GroupFields + } + return nil +} + +type CGameServers_AggregationQuery_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groups []*CGameServers_AggregationQuery_Response_Group `protobuf:"bytes,1,rep,name=groups" json:"groups,omitempty"` +} + +func (x *CGameServers_AggregationQuery_Response) Reset() { + *x = CGameServers_AggregationQuery_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameServers_AggregationQuery_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameServers_AggregationQuery_Response) ProtoMessage() {} + +func (x *CGameServers_AggregationQuery_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameServers_AggregationQuery_Response.ProtoReflect.Descriptor instead. +func (*CGameServers_AggregationQuery_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CGameServers_AggregationQuery_Response) GetGroups() []*CGameServers_AggregationQuery_Response_Group { + if x != nil { + return x.Groups + } + return nil +} + +type CWorkshop_AddSpecialPayment_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Gameitemid *uint32 `protobuf:"varint,2,opt,name=gameitemid" json:"gameitemid,omitempty"` + Date *string `protobuf:"bytes,3,opt,name=date" json:"date,omitempty"` + PaymentUsUsd *uint64 `protobuf:"varint,4,opt,name=payment_us_usd,json=paymentUsUsd" json:"payment_us_usd,omitempty"` + PaymentRowUsd *uint64 `protobuf:"varint,5,opt,name=payment_row_usd,json=paymentRowUsd" json:"payment_row_usd,omitempty"` +} + +func (x *CWorkshop_AddSpecialPayment_Request) Reset() { + *x = CWorkshop_AddSpecialPayment_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_AddSpecialPayment_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_AddSpecialPayment_Request) ProtoMessage() {} + +func (x *CWorkshop_AddSpecialPayment_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_AddSpecialPayment_Request.ProtoReflect.Descriptor instead. +func (*CWorkshop_AddSpecialPayment_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CWorkshop_AddSpecialPayment_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CWorkshop_AddSpecialPayment_Request) GetGameitemid() uint32 { + if x != nil && x.Gameitemid != nil { + return *x.Gameitemid + } + return 0 +} + +func (x *CWorkshop_AddSpecialPayment_Request) GetDate() string { + if x != nil && x.Date != nil { + return *x.Date + } + return "" +} + +func (x *CWorkshop_AddSpecialPayment_Request) GetPaymentUsUsd() uint64 { + if x != nil && x.PaymentUsUsd != nil { + return *x.PaymentUsUsd + } + return 0 +} + +func (x *CWorkshop_AddSpecialPayment_Request) GetPaymentRowUsd() uint64 { + if x != nil && x.PaymentRowUsd != nil { + return *x.PaymentRowUsd + } + return 0 +} + +type CWorkshop_AddSpecialPayment_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CWorkshop_AddSpecialPayment_Response) Reset() { + *x = CWorkshop_AddSpecialPayment_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_AddSpecialPayment_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_AddSpecialPayment_Response) ProtoMessage() {} + +func (x *CWorkshop_AddSpecialPayment_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_AddSpecialPayment_Response.ProtoReflect.Descriptor instead. +func (*CWorkshop_AddSpecialPayment_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{32} +} + +type CProductInfo_SetRichPresenceLocalization_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Languages []*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection `protobuf:"bytes,2,rep,name=languages" json:"languages,omitempty"` + Steamid *uint64 `protobuf:"varint,3,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) Reset() { + *x = CProductInfo_SetRichPresenceLocalization_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CProductInfo_SetRichPresenceLocalization_Request) ProtoMessage() {} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CProductInfo_SetRichPresenceLocalization_Request.ProtoReflect.Descriptor instead. +func (*CProductInfo_SetRichPresenceLocalization_Request) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) GetLanguages() []*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection { + if x != nil { + return x.Languages + } + return nil +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +type CProductInfo_SetRichPresenceLocalization_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CProductInfo_SetRichPresenceLocalization_Response) Reset() { + *x = CProductInfo_SetRichPresenceLocalization_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CProductInfo_SetRichPresenceLocalization_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CProductInfo_SetRichPresenceLocalization_Response) ProtoMessage() {} + +func (x *CProductInfo_SetRichPresenceLocalization_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CProductInfo_SetRichPresenceLocalization_Response.ProtoReflect.Descriptor instead. +func (*CProductInfo_SetRichPresenceLocalization_Response) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{34} +} + +type CMsgSerializedSOCache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileVersion *uint32 `protobuf:"varint,1,opt,name=file_version,json=fileVersion" json:"file_version,omitempty"` + Caches []*CMsgSerializedSOCache_Cache `protobuf:"bytes,2,rep,name=caches" json:"caches,omitempty"` + GcSocacheFileVersion *uint32 `protobuf:"varint,3,opt,name=gc_socache_file_version,json=gcSocacheFileVersion" json:"gc_socache_file_version,omitempty"` +} + +func (x *CMsgSerializedSOCache) Reset() { + *x = CMsgSerializedSOCache{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSerializedSOCache) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSerializedSOCache) ProtoMessage() {} + +func (x *CMsgSerializedSOCache) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSerializedSOCache.ProtoReflect.Descriptor instead. +func (*CMsgSerializedSOCache) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CMsgSerializedSOCache) GetFileVersion() uint32 { + if x != nil && x.FileVersion != nil { + return *x.FileVersion + } + return 0 +} + +func (x *CMsgSerializedSOCache) GetCaches() []*CMsgSerializedSOCache_Cache { + if x != nil { + return x.Caches + } + return nil +} + +func (x *CMsgSerializedSOCache) GetGcSocacheFileVersion() uint32 { + if x != nil && x.GcSocacheFileVersion != nil { + return *x.GcSocacheFileVersion + } + return 0 +} + +type CMsgSOMultipleObjects_SingleObject struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId *int32 `protobuf:"varint,1,opt,name=type_id,json=typeId" json:"type_id,omitempty"` + ObjectData []byte `protobuf:"bytes,2,opt,name=object_data,json=objectData" json:"object_data,omitempty"` +} + +func (x *CMsgSOMultipleObjects_SingleObject) Reset() { + *x = CMsgSOMultipleObjects_SingleObject{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOMultipleObjects_SingleObject) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOMultipleObjects_SingleObject) ProtoMessage() {} + +func (x *CMsgSOMultipleObjects_SingleObject) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOMultipleObjects_SingleObject.ProtoReflect.Descriptor instead. +func (*CMsgSOMultipleObjects_SingleObject) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *CMsgSOMultipleObjects_SingleObject) GetTypeId() int32 { + if x != nil && x.TypeId != nil { + return *x.TypeId + } + return 0 +} + +func (x *CMsgSOMultipleObjects_SingleObject) GetObjectData() []byte { + if x != nil { + return x.ObjectData + } + return nil +} + +type CMsgSOCacheSubscribed_SubscribedType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId *int32 `protobuf:"varint,1,opt,name=type_id,json=typeId" json:"type_id,omitempty"` + ObjectData [][]byte `protobuf:"bytes,2,rep,name=object_data,json=objectData" json:"object_data,omitempty"` +} + +func (x *CMsgSOCacheSubscribed_SubscribedType) Reset() { + *x = CMsgSOCacheSubscribed_SubscribedType{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSOCacheSubscribed_SubscribedType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSOCacheSubscribed_SubscribedType) ProtoMessage() {} + +func (x *CMsgSOCacheSubscribed_SubscribedType) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSOCacheSubscribed_SubscribedType.ProtoReflect.Descriptor instead. +func (*CMsgSOCacheSubscribed_SubscribedType) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *CMsgSOCacheSubscribed_SubscribedType) GetTypeId() int32 { + if x != nil && x.TypeId != nil { + return *x.TypeId + } + return 0 +} + +func (x *CMsgSOCacheSubscribed_SubscribedType) GetObjectData() [][]byte { + if x != nil { + return x.ObjectData + } + return nil +} + +type CMsgClientWelcome_Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Latitude *float32 `protobuf:"fixed32,1,opt,name=latitude" json:"latitude,omitempty"` + Longitude *float32 `protobuf:"fixed32,2,opt,name=longitude" json:"longitude,omitempty"` + Country *string `protobuf:"bytes,3,opt,name=country" json:"country,omitempty"` +} + +func (x *CMsgClientWelcome_Location) Reset() { + *x = CMsgClientWelcome_Location{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgClientWelcome_Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgClientWelcome_Location) ProtoMessage() {} + +func (x *CMsgClientWelcome_Location) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgClientWelcome_Location.ProtoReflect.Descriptor instead. +func (*CMsgClientWelcome_Location) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{22, 0} +} + +func (x *CMsgClientWelcome_Location) GetLatitude() float32 { + if x != nil && x.Latitude != nil { + return *x.Latitude + } + return 0 +} + +func (x *CMsgClientWelcome_Location) GetLongitude() float32 { + if x != nil && x.Longitude != nil { + return *x.Longitude + } + return 0 +} + +func (x *CMsgClientWelcome_Location) GetCountry() string { + if x != nil && x.Country != nil { + return *x.Country + } + return "" +} + +type CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Gameitemid *uint32 `protobuf:"varint,1,opt,name=gameitemid" json:"gameitemid,omitempty"` + ItemDescription *string `protobuf:"bytes,2,opt,name=item_description,json=itemDescription" json:"item_description,omitempty"` + OnePerAccount *bool `protobuf:"varint,3,opt,name=one_per_account,json=onePerAccount" json:"one_per_account,omitempty"` +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) Reset() { + *x = CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) ProtoMessage() {} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription.ProtoReflect.Descriptor instead. +func (*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{24, 0} +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) GetGameitemid() uint32 { + if x != nil && x.Gameitemid != nil { + return *x.Gameitemid + } + return 0 +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) GetItemDescription() string { + if x != nil && x.ItemDescription != nil { + return *x.ItemDescription + } + return "" +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription) GetOnePerAccount() bool { + if x != nil && x.OnePerAccount != nil { + return *x.OnePerAccount + } + return false +} + +type CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Language *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"` + Descriptions []*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription `protobuf:"bytes,2,rep,name=descriptions" json:"descriptions,omitempty"` +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) Reset() { + *x = CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) ProtoMessage() {} + +func (x *CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock.ProtoReflect.Descriptor instead. +func (*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{24, 1} +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) GetLanguage() string { + if x != nil && x.Language != nil { + return *x.Language + } + return "" +} + +func (x *CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock) GetDescriptions() []*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription { + if x != nil { + return x.Descriptions + } + return nil +} + +type CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkshopFileId *uint64 `protobuf:"varint,1,opt,name=workshop_file_id,json=workshopFileId" json:"workshop_file_id,omitempty"` + RevenuePercentage *float32 `protobuf:"fixed32,2,opt,name=revenue_percentage,json=revenuePercentage" json:"revenue_percentage,omitempty"` + RuleDescription *string `protobuf:"bytes,3,opt,name=rule_description,json=ruleDescription" json:"rule_description,omitempty"` + RuleType *uint32 `protobuf:"varint,4,opt,name=rule_type,json=ruleType,def=1" json:"rule_type,omitempty"` +} + +// Default values for CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule fields. +const ( + Default_CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule_RuleType = uint32(1) +) + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) Reset() { + *x = CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) ProtoMessage() {} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule.ProtoReflect.Descriptor instead. +func (*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{27, 0} +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) GetWorkshopFileId() uint64 { + if x != nil && x.WorkshopFileId != nil { + return *x.WorkshopFileId + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) GetRevenuePercentage() float32 { + if x != nil && x.RevenuePercentage != nil { + return *x.RevenuePercentage + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) GetRuleDescription() string { + if x != nil && x.RuleDescription != nil { + return *x.RuleDescription + } + return "" +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule) GetRuleType() uint32 { + if x != nil && x.RuleType != nil { + return *x.RuleType + } + return Default_CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule_RuleType +} + +type CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkshopFileId *uint64 `protobuf:"varint,1,opt,name=workshop_file_id,json=workshopFileId" json:"workshop_file_id,omitempty"` + RuleDescription *string `protobuf:"bytes,2,opt,name=rule_description,json=ruleDescription" json:"rule_description,omitempty"` +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) Reset() { + *x = CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) ProtoMessage() {} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule.ProtoReflect.Descriptor instead. +func (*CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{27, 1} +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) GetWorkshopFileId() uint64 { + if x != nil && x.WorkshopFileId != nil { + return *x.WorkshopFileId + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule) GetRuleDescription() string { + if x != nil && x.RuleDescription != nil { + return *x.RuleDescription + } + return "" +} + +type CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *uint32 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + RevenuePercentage *float32 `protobuf:"fixed32,2,opt,name=revenue_percentage,json=revenuePercentage" json:"revenue_percentage,omitempty"` + RuleDescription *string `protobuf:"bytes,3,opt,name=rule_description,json=ruleDescription" json:"rule_description,omitempty"` +} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) Reset() { + *x = CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) ProtoMessage() {} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule.ProtoReflect.Descriptor instead. +func (*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{27, 2} +} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) GetRevenuePercentage() float32 { + if x != nil && x.RevenuePercentage != nil { + return *x.RevenuePercentage + } + return 0 +} + +func (x *CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule) GetRuleDescription() string { + if x != nil && x.RuleDescription != nil { + return *x.RuleDescription + } + return "" +} + +type CGameServers_AggregationQuery_Response_Group struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupValues []string `protobuf:"bytes,1,rep,name=group_values,json=groupValues" json:"group_values,omitempty"` + ServersEmpty *uint32 `protobuf:"varint,2,opt,name=servers_empty,json=serversEmpty" json:"servers_empty,omitempty"` + ServersFull *uint32 `protobuf:"varint,3,opt,name=servers_full,json=serversFull" json:"servers_full,omitempty"` + ServersTotal *uint32 `protobuf:"varint,4,opt,name=servers_total,json=serversTotal" json:"servers_total,omitempty"` + PlayersHumans *uint32 `protobuf:"varint,5,opt,name=players_humans,json=playersHumans" json:"players_humans,omitempty"` + PlayersBots *uint32 `protobuf:"varint,6,opt,name=players_bots,json=playersBots" json:"players_bots,omitempty"` + PlayerCapacity *uint32 `protobuf:"varint,7,opt,name=player_capacity,json=playerCapacity" json:"player_capacity,omitempty"` +} + +func (x *CGameServers_AggregationQuery_Response_Group) Reset() { + *x = CGameServers_AggregationQuery_Response_Group{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGameServers_AggregationQuery_Response_Group) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGameServers_AggregationQuery_Response_Group) ProtoMessage() {} + +func (x *CGameServers_AggregationQuery_Response_Group) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGameServers_AggregationQuery_Response_Group.ProtoReflect.Descriptor instead. +func (*CGameServers_AggregationQuery_Response_Group) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{30, 0} +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetGroupValues() []string { + if x != nil { + return x.GroupValues + } + return nil +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetServersEmpty() uint32 { + if x != nil && x.ServersEmpty != nil { + return *x.ServersEmpty + } + return 0 +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetServersFull() uint32 { + if x != nil && x.ServersFull != nil { + return *x.ServersFull + } + return 0 +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetServersTotal() uint32 { + if x != nil && x.ServersTotal != nil { + return *x.ServersTotal + } + return 0 +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetPlayersHumans() uint32 { + if x != nil && x.PlayersHumans != nil { + return *x.PlayersHumans + } + return 0 +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetPlayersBots() uint32 { + if x != nil && x.PlayersBots != nil { + return *x.PlayersBots + } + return 0 +} + +func (x *CGameServers_AggregationQuery_Response_Group) GetPlayerCapacity() uint32 { + if x != nil && x.PlayerCapacity != nil { + return *x.PlayerCapacity + } + return 0 +} + +type CProductInfo_SetRichPresenceLocalization_Request_Token struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token *string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_Token) Reset() { + *x = CProductInfo_SetRichPresenceLocalization_Request_Token{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_Token) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CProductInfo_SetRichPresenceLocalization_Request_Token) ProtoMessage() {} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_Token) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CProductInfo_SetRichPresenceLocalization_Request_Token.ProtoReflect.Descriptor instead. +func (*CProductInfo_SetRichPresenceLocalization_Request_Token) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{33, 0} +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_Token) GetToken() string { + if x != nil && x.Token != nil { + return *x.Token + } + return "" +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_Token) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CProductInfo_SetRichPresenceLocalization_Request_LanguageSection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Language *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"` + Tokens []*CProductInfo_SetRichPresenceLocalization_Request_Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"` +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) Reset() { + *x = CProductInfo_SetRichPresenceLocalization_Request_LanguageSection{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) ProtoMessage() {} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CProductInfo_SetRichPresenceLocalization_Request_LanguageSection.ProtoReflect.Descriptor instead. +func (*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{33, 1} +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) GetLanguage() string { + if x != nil && x.Language != nil { + return *x.Language + } + return "" +} + +func (x *CProductInfo_SetRichPresenceLocalization_Request_LanguageSection) GetTokens() []*CProductInfo_SetRichPresenceLocalization_Request_Token { + if x != nil { + return x.Tokens + } + return nil +} + +type CMsgSerializedSOCache_TypeCache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Objects [][]byte `protobuf:"bytes,2,rep,name=objects" json:"objects,omitempty"` + ServiceId *uint32 `protobuf:"varint,3,opt,name=service_id,json=serviceId" json:"service_id,omitempty"` +} + +func (x *CMsgSerializedSOCache_TypeCache) Reset() { + *x = CMsgSerializedSOCache_TypeCache{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSerializedSOCache_TypeCache) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSerializedSOCache_TypeCache) ProtoMessage() {} + +func (x *CMsgSerializedSOCache_TypeCache) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSerializedSOCache_TypeCache.ProtoReflect.Descriptor instead. +func (*CMsgSerializedSOCache_TypeCache) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{35, 0} +} + +func (x *CMsgSerializedSOCache_TypeCache) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgSerializedSOCache_TypeCache) GetObjects() [][]byte { + if x != nil { + return x.Objects + } + return nil +} + +func (x *CMsgSerializedSOCache_TypeCache) GetServiceId() uint32 { + if x != nil && x.ServiceId != nil { + return *x.ServiceId + } + return 0 +} + +type CMsgSerializedSOCache_Cache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Id *uint64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"` + Versions []*CMsgSerializedSOCache_Cache_Version `protobuf:"bytes,3,rep,name=versions" json:"versions,omitempty"` + TypeCaches []*CMsgSerializedSOCache_TypeCache `protobuf:"bytes,4,rep,name=type_caches,json=typeCaches" json:"type_caches,omitempty"` +} + +func (x *CMsgSerializedSOCache_Cache) Reset() { + *x = CMsgSerializedSOCache_Cache{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSerializedSOCache_Cache) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSerializedSOCache_Cache) ProtoMessage() {} + +func (x *CMsgSerializedSOCache_Cache) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSerializedSOCache_Cache.ProtoReflect.Descriptor instead. +func (*CMsgSerializedSOCache_Cache) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{35, 1} +} + +func (x *CMsgSerializedSOCache_Cache) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CMsgSerializedSOCache_Cache) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CMsgSerializedSOCache_Cache) GetVersions() []*CMsgSerializedSOCache_Cache_Version { + if x != nil { + return x.Versions + } + return nil +} + +func (x *CMsgSerializedSOCache_Cache) GetTypeCaches() []*CMsgSerializedSOCache_TypeCache { + if x != nil { + return x.TypeCaches + } + return nil +} + +type CMsgSerializedSOCache_Cache_Version struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Service *uint32 `protobuf:"varint,1,opt,name=service" json:"service,omitempty"` + Version *uint64 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"` +} + +func (x *CMsgSerializedSOCache_Cache_Version) Reset() { + *x = CMsgSerializedSOCache_Cache_Version{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgSerializedSOCache_Cache_Version) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgSerializedSOCache_Cache_Version) ProtoMessage() {} + +func (x *CMsgSerializedSOCache_Cache_Version) ProtoReflect() protoreflect.Message { + mi := &file_s2_gcsdk_gcmessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgSerializedSOCache_Cache_Version.ProtoReflect.Descriptor instead. +func (*CMsgSerializedSOCache_Cache_Version) Descriptor() ([]byte, []int) { + return file_s2_gcsdk_gcmessages_proto_rawDescGZIP(), []int{35, 1, 0} +} + +func (x *CMsgSerializedSOCache_Cache_Version) GetService() uint32 { + if x != nil && x.Service != nil { + return *x.Service + } + return 0 +} + +func (x *CMsgSerializedSOCache_Cache_Version) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +var File_s2_gcsdk_gcmessages_proto protoreflect.FileDescriptor + +var file_s2_gcsdk_gcmessages_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x73, 0x32, 0x2f, 0x67, 0x63, 0x73, 0x64, 0x6b, 0x5f, 0x67, 0x63, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x16, 0x73, 0x32, 0x2f, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x33, + 0x0a, 0x0d, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x69, 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x57, + 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x4f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x78, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x6f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, 0x1a, 0x54, + 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x0a, 0x80, 0x97, 0x22, 0x80, 0x02, 0x88, + 0x97, 0x22, 0x80, 0x08, 0x22, 0xc1, 0x02, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x12, 0x69, + 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, 0x1a, 0x4a, 0x0a, 0x0e, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, 0x22, 0x91, 0x01, 0x0a, + 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x5f, 0x73, 0x6f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, + 0x22, 0x79, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x12, 0x43, + 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9c, 0x05, 0x0a, 0x12, + 0x43, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, + 0x0a, 0x76, 0x61, 0x63, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x76, 0x61, 0x63, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x79, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x66, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x63, 0x79, 0x62, 0x65, 0x72, 0x43, 0x61, 0x66, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x66, 0x72, 0x65, 0x65, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x6f, 0x6c, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x65, 0x6c, 0x69, 0x67, 0x69, + 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, + 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x43, + 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x06, 0x52, 0x08, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x74, 0x6f, + 0x67, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x74, + 0x6f, 0x67, 0x63, 0x22, 0x3b, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x4b, 0x0a, 0x13, 0x43, 0x47, 0x43, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x72, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, + 0x1c, 0x43, 0x47, 0x43, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x63, 0x6b, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, + 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, + 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x47, + 0x43, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x7b, 0x0a, + 0x10, 0x43, 0x47, 0x43, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x74, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x6e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x70, 0x22, 0x53, 0x0a, 0x15, 0x43, 0x47, + 0x43, 0x54, 0x6f, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x41, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, + 0x69, 0x70, 0x22, 0x32, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x43, 0x4d, 0x73, + 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x48, 0x61, 0x76, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x04, 0x73, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x4f, 0x49, 0x44, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x04, 0x73, 0x6f, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x03, 0x0a, 0x0f, + 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x15, 0x73, 0x6f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x5f, 0x68, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x48, 0x61, 0x76, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73, 0x6f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x48, 0x61, 0x76, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, + 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x72, + 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x53, 0x72, 0x63, 0x69, 0x64, 0x12, 0x2b, + 0x0a, 0x11, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x35, + 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6c, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x22, 0xb1, 0x03, 0x0a, + 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x15, 0x73, 0x6f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x68, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x48, 0x61, 0x76, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73, 0x6f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x48, 0x61, 0x76, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1c, 0x6c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x6c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, + 0x61, 0x6d, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x2f, 0x0a, 0x13, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x22, 0xf9, 0x05, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, + 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x80, 0x01, + 0x0a, 0x1b, 0x6f, 0x75, 0x74, 0x6f, 0x66, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x64, 0x52, 0x19, 0x6f, 0x75, 0x74, 0x6f, 0x66, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, + 0x12, 0x85, 0x01, 0x0a, 0x1a, 0x75, 0x70, 0x74, 0x6f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x18, + 0x75, 0x70, 0x74, 0x6f, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, + 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x32, 0x12, 0x3f, 0x0a, 0x1c, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x33, 0x32, 0x5f, 0x67, 0x63, 0x5f, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x19, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x32, 0x47, 0x63, 0x57, 0x65, 0x6c, 0x63, 0x6f, + 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x55, + 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x78, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x78, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x5e, 0x0a, 0x08, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x22, 0xf0, 0x02, 0x0a, + 0x14, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x76, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x47, 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x3a, 0x1f, 0x47, 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x48, 0x41, 0x56, 0x45, 0x5f, 0x53, 0x45, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x47, 0x0a, 0x20, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x1d, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x57, 0x61, 0x69, 0x74, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, + 0xb3, 0x04, 0x0a, 0x2a, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x50, 0x6f, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, + 0x70, 0x70, 0x69, 0x64, 0x12, 0x91, 0x01, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x50, + 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x09, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x8a, 0x01, 0x0a, 0x15, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, + 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x74, + 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, + 0x0f, 0x6f, 0x6e, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xcd, 0x01, 0x0a, 0x1d, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, + 0x5f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x59, 0x0a, 0x21, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, + 0x6f, 0x70, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, + 0x72, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, + 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, + 0x22, 0x48, 0x0a, 0x22, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x99, 0x09, 0x0a, 0x25, 0x43, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, + 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0xa4, 0x01, 0x0a, 0x19, 0x61, + 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, + 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x68, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x17, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x67, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, + 0x6f, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x20, 0x6d, + 0x61, 0x6b, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x6d, 0x61, 0x6b, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x68, 0x6f, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0xc9, 0x01, 0x0a, 0x2c, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6a, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, + 0x70, 0x5f, 0x53, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x27, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x46, + 0x6f, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x1a, 0xbd, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x49, 0x74, 0x65, + 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, + 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x11, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1e, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x31, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x1a, 0x70, 0x0a, 0x19, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, + 0x70, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x91, 0x01, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, + 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, + 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x28, 0x0a, 0x26, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x68, 0x6f, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x62, 0x0a, 0x25, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x5f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x22, 0xa6, 0x03, 0x0a, 0x26, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6f, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x57, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x47, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x1a, 0x8a, 0x02, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x66, 0x75, + 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x48, 0x75, 0x6d, 0x61, 0x6e, + 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x62, 0x6f, 0x74, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x42, 0x6f, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x22, 0xbd, 0x01, + 0x0a, 0x23, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, + 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x5f, 0x75, 0x73, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x55, 0x73, 0x55, 0x73, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x55, 0x73, 0x64, 0x22, 0x26, 0x0a, + 0x24, 0x43, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x41, 0x64, 0x64, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xce, 0x03, 0x0a, 0x30, 0x43, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x69, 0x63, 0x68, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, + 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, + 0x12, 0x89, 0x01, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x53, 0x65, + 0x74, 0x52, 0x69, 0x63, 0x68, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x1a, 0x33, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa8, 0x01, 0x0a, 0x0f, + 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x79, 0x0a, 0x06, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x61, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x69, 0x63, 0x68, 0x50, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x33, 0x0a, 0x31, 0x43, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x69, 0x63, 0x68, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf1, 0x04, 0x0a, 0x15, + 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x4f, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x69, 0x6c, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x67, 0x63, 0x5f, 0x73, + 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x67, 0x63, 0x53, 0x6f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x58, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x1a, 0xc3, 0x02, 0x0a, 0x05, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x6a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x6b, 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x53, 0x4f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x52, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, + 0x1a, 0x3d, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, + 0x84, 0x01, 0x0a, 0x14, 0x47, 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x75, 0x6e, + 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x43, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x47, 0x43, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x45, 0x43, 0x54, 0x57, 0x4f, 0x52, 0x4c, 0x44, 0x10, + 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x47, 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x75, + 0x6e, 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x43, + 0x48, 0x49, 0x4e, 0x41, 0x10, 0x02, 0x2a, 0xd5, 0x01, 0x0a, 0x12, 0x47, 0x43, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, + 0x1f, 0x47, 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x48, 0x41, 0x56, 0x45, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x47, 0x43, 0x5f, 0x47, 0x4f, 0x49, 0x4e, + 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x43, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, + 0x4f, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x47, + 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x5f, + 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x03, 0x12, 0x1f, 0x0a, + 0x1b, 0x47, 0x43, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x04, +} + +var ( + file_s2_gcsdk_gcmessages_proto_rawDescOnce sync.Once + file_s2_gcsdk_gcmessages_proto_rawDescData = file_s2_gcsdk_gcmessages_proto_rawDesc +) + +func file_s2_gcsdk_gcmessages_proto_rawDescGZIP() []byte { + file_s2_gcsdk_gcmessages_proto_rawDescOnce.Do(func() { + file_s2_gcsdk_gcmessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_gcsdk_gcmessages_proto_rawDescData) + }) + return file_s2_gcsdk_gcmessages_proto_rawDescData +} + +var file_s2_gcsdk_gcmessages_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_s2_gcsdk_gcmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 50) +var file_s2_gcsdk_gcmessages_proto_goTypes = []interface{}{ + (GCClientLauncherType)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.GCClientLauncherType + (GCConnectionStatus)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.GCConnectionStatus + (*CMsgSOIDOwner)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + (*CMsgSOSingleObject)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOSingleObject + (*CMsgSOMultipleObjects)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOMultipleObjects + (*CMsgSOCacheSubscribed)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed + (*CMsgSOCacheUnsubscribed)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheUnsubscribed + (*CMsgSOCacheSubscriptionCheck)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionCheck + (*CMsgSOCacheSubscriptionRefresh)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionRefresh + (*CMsgSOCacheVersion)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheVersion + (*CMsgAccountDetails)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgAccountDetails + (*CMsgGCMultiplexMessage)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMultiplexMessage + (*CMsgGCMultiplexMessage_Response)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMultiplexMessage_Response + (*CGCToGCMsgMasterAck)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CGCToGCMsgMasterAck + (*CGCToGCMsgMasterAck_Response)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CGCToGCMsgMasterAck_Response + (*CGCToGCMsgMasterStartupComplete)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CGCToGCMsgMasterStartupComplete + (*CGCToGCMsgRouted)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CGCToGCMsgRouted + (*CGCToGCMsgRoutedReply)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CGCToGCMsgRoutedReply + (*CMsgGCUpdateSessionIP)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCUpdateSessionIP + (*CMsgGCRequestSessionIP)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRequestSessionIP + (*CMsgGCRequestSessionIPResponse)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRequestSessionIPResponse + (*CMsgSOCacheHaveVersion)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheHaveVersion + (*CMsgClientHello)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientHello + (*CMsgServerHello)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerHello + (*CMsgClientWelcome)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome + (*CMsgConnectionStatus)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgConnectionStatus + (*CWorkshop_PopulateItemDescriptions_Request)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request + (*CWorkshop_GetContributors_Request)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_GetContributors_Request + (*CWorkshop_GetContributors_Response)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_GetContributors_Response + (*CWorkshop_SetItemPaymentRules_Request)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request + (*CWorkshop_SetItemPaymentRules_Response)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Response + (*CGameServers_AggregationQuery_Request)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CGameServers_AggregationQuery_Request + (*CGameServers_AggregationQuery_Response)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CGameServers_AggregationQuery_Response + (*CWorkshop_AddSpecialPayment_Request)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_AddSpecialPayment_Request + (*CWorkshop_AddSpecialPayment_Response)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_AddSpecialPayment_Response + (*CProductInfo_SetRichPresenceLocalization_Request)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request + (*CProductInfo_SetRichPresenceLocalization_Response)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Response + (*CMsgSerializedSOCache)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache + (*CMsgSOMultipleObjects_SingleObject)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOMultipleObjects.SingleObject + (*CMsgSOCacheSubscribed_SubscribedType)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed.SubscribedType + (*CMsgClientWelcome_Location)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome.Location + (*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription + (*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock + (*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule + (*CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule + (*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule + (*CGameServers_AggregationQuery_Response_Group)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CGameServers_AggregationQuery_Response.Group + (*CProductInfo_SetRichPresenceLocalization_Request_Token)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.Token + (*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.LanguageSection + (*CMsgSerializedSOCache_TypeCache)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.TypeCache + (*CMsgSerializedSOCache_Cache)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache + (*CMsgSerializedSOCache_Cache_Version)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache.Version +} +var file_s2_gcsdk_gcmessages_proto_depIdxs = []int32{ + 2, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOSingleObject.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 38, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOMultipleObjects.objects_modified:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOMultipleObjects.SingleObject + 2, // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOMultipleObjects.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 39, // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed.objects:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed.SubscribedType + 2, // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 2, // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheUnsubscribed.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 2, // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionCheck.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 2, // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionRefresh.owner_soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 2, // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheHaveVersion.soid:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOIDOwner + 21, // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientHello.socache_have_versions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheHaveVersion + 21, // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerHello.socache_have_versions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheHaveVersion + 5, // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome.outofdate_subscribed_caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscribed + 7, // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome.uptodate_subscribed_caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSOCacheSubscriptionCheck + 40, // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome.location:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgClientWelcome.Location + 1, // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgConnectionStatus.status:type_name -> com.github.markus_wa.demoinfocs_golang.s2.GCConnectionStatus + 42, // 15: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.languages:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock + 43, // 16: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.associated_workshop_files:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule + 45, // 17: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.partner_accounts:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule + 44, // 18: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.associated_workshop_file_for_direct_payments:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule + 46, // 19: com.github.markus_wa.demoinfocs_golang.s2.CGameServers_AggregationQuery_Response.groups:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGameServers_AggregationQuery_Response.Group + 48, // 20: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.languages:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.LanguageSection + 50, // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache + 41, // 22: com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock.descriptions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription + 47, // 23: com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.LanguageSection.tokens:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CProductInfo_SetRichPresenceLocalization_Request.Token + 51, // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache.versions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache.Version + 49, // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.Cache.type_caches:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgSerializedSOCache.TypeCache + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name +} + +func init() { file_s2_gcsdk_gcmessages_proto_init() } +func file_s2_gcsdk_gcmessages_proto_init() { + if File_s2_gcsdk_gcmessages_proto != nil { + return + } + file_s2_steammessages_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_gcsdk_gcmessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOIDOwner); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOSingleObject); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOMultipleObjects); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheSubscribed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheUnsubscribed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheSubscriptionCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheSubscriptionRefresh); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAccountDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMultiplexMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMultiplexMessage_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCToGCMsgMasterAck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCToGCMsgMasterAck_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCToGCMsgMasterStartupComplete); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCToGCMsgRouted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCToGCMsgRoutedReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCUpdateSessionIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCRequestSessionIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCRequestSessionIPResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheHaveVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientHello); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerHello); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientWelcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgConnectionStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_PopulateItemDescriptions_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_GetContributors_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_GetContributors_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_SetItemPaymentRules_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_SetItemPaymentRules_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameServers_AggregationQuery_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameServers_AggregationQuery_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_AddSpecialPayment_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_AddSpecialPayment_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CProductInfo_SetRichPresenceLocalization_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CProductInfo_SetRichPresenceLocalization_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSerializedSOCache); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOMultipleObjects_SingleObject); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSOCacheSubscribed_SubscribedType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgClientWelcome_Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_PopulateItemDescriptions_Request_SingleItemDescription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_PopulateItemDescriptions_Request_ItemDescriptionsLanguageBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_SetItemPaymentRules_Request_WorkshopItemPaymentRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_SetItemPaymentRules_Request_WorkshopDirectPaymentRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CWorkshop_SetItemPaymentRules_Request_PartnerItemPaymentRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGameServers_AggregationQuery_Response_Group); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CProductInfo_SetRichPresenceLocalization_Request_Token); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CProductInfo_SetRichPresenceLocalization_Request_LanguageSection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSerializedSOCache_TypeCache); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSerializedSOCache_Cache); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_gcsdk_gcmessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgSerializedSOCache_Cache_Version); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_gcsdk_gcmessages_proto_rawDesc, + NumEnums: 2, + NumMessages: 50, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_gcsdk_gcmessages_proto_goTypes, + DependencyIndexes: file_s2_gcsdk_gcmessages_proto_depIdxs, + EnumInfos: file_s2_gcsdk_gcmessages_proto_enumTypes, + MessageInfos: file_s2_gcsdk_gcmessages_proto_msgTypes, + }.Build() + File_s2_gcsdk_gcmessages_proto = out.File + file_s2_gcsdk_gcmessages_proto_rawDesc = nil + file_s2_gcsdk_gcmessages_proto_goTypes = nil + file_s2_gcsdk_gcmessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/generate.sh b/pkg/demoinfocs/msgs2/generate.sh new file mode 100755 index 00000000..08430b18 --- /dev/null +++ b/pkg/demoinfocs/msgs2/generate.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# sed -i '1i\package com.github.markus_wa.demoinfocs_golang.s2;\n' proto/s2/*.proto +# sed -i 's/ \.(?!google)/ com.github.markus_wa.demoinfocs_golang.s2./g' proto/s2/*.proto + +protoc -Iproto \ + --go_out=. \ + --go_opt=Ms2/cstrike15_usermessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/cstrike15_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/engine_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/netmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/steammessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/gcsdk_gcmessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/networkbasetypes.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/network_connection.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/demo.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/gameevents.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/usermessages.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/cs_gameevents.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=Ms2/te.proto=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + --go_opt=module=github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2 \ + s2/cstrike15_gcmessages.proto \ + s2/cstrike15_usermessages.proto \ + s2/engine_gcmessages.proto \ + s2/netmessages.proto \ + s2/steammessages.proto \ + s2/gcsdk_gcmessages.proto \ + s2/networkbasetypes.proto \ + s2/network_connection.proto \ + s2/demo.proto \ + s2/gameevents.proto \ + s2/usermessages.proto \ + s2/cs_gameevents.proto \ + s2/te.proto diff --git a/pkg/demoinfocs/msgs2/msg.go b/pkg/demoinfocs/msgs2/msg.go new file mode 100644 index 00000000..d7d31133 --- /dev/null +++ b/pkg/demoinfocs/msgs2/msg.go @@ -0,0 +1,3 @@ +package msgs2 + +//go:generate ./generate.sh diff --git a/pkg/demoinfocs/msgs2/netmessages.pb.go b/pkg/demoinfocs/msgs2/netmessages.pb.go new file mode 100644 index 00000000..24719d42 --- /dev/null +++ b/pkg/demoinfocs/msgs2/netmessages.pb.go @@ -0,0 +1,7851 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/netmessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CLC_Messages int32 + +const ( + CLC_Messages_clc_ClientInfo CLC_Messages = 20 + CLC_Messages_clc_Move CLC_Messages = 21 + CLC_Messages_clc_VoiceData CLC_Messages = 22 + CLC_Messages_clc_BaselineAck CLC_Messages = 23 + CLC_Messages_clc_ListenEvents CLC_Messages = 24 + CLC_Messages_clc_RespondCvarValue CLC_Messages = 25 + CLC_Messages_clc_FileCRCCheck CLC_Messages = 26 + CLC_Messages_clc_LoadingProgress CLC_Messages = 27 + CLC_Messages_clc_SplitPlayerConnect CLC_Messages = 28 + CLC_Messages_clc_ClientMessage CLC_Messages = 29 + CLC_Messages_clc_SplitPlayerDisconnect CLC_Messages = 30 + CLC_Messages_clc_ServerStatus CLC_Messages = 31 + CLC_Messages_clc_ServerPing CLC_Messages = 32 + CLC_Messages_clc_RequestPause CLC_Messages = 33 + CLC_Messages_clc_CmdKeyValues CLC_Messages = 34 + CLC_Messages_clc_RconServerDetails CLC_Messages = 35 + CLC_Messages_clc_HltvReplay CLC_Messages = 36 +) + +// Enum value maps for CLC_Messages. +var ( + CLC_Messages_name = map[int32]string{ + 20: "clc_ClientInfo", + 21: "clc_Move", + 22: "clc_VoiceData", + 23: "clc_BaselineAck", + 24: "clc_ListenEvents", + 25: "clc_RespondCvarValue", + 26: "clc_FileCRCCheck", + 27: "clc_LoadingProgress", + 28: "clc_SplitPlayerConnect", + 29: "clc_ClientMessage", + 30: "clc_SplitPlayerDisconnect", + 31: "clc_ServerStatus", + 32: "clc_ServerPing", + 33: "clc_RequestPause", + 34: "clc_CmdKeyValues", + 35: "clc_RconServerDetails", + 36: "clc_HltvReplay", + } + CLC_Messages_value = map[string]int32{ + "clc_ClientInfo": 20, + "clc_Move": 21, + "clc_VoiceData": 22, + "clc_BaselineAck": 23, + "clc_ListenEvents": 24, + "clc_RespondCvarValue": 25, + "clc_FileCRCCheck": 26, + "clc_LoadingProgress": 27, + "clc_SplitPlayerConnect": 28, + "clc_ClientMessage": 29, + "clc_SplitPlayerDisconnect": 30, + "clc_ServerStatus": 31, + "clc_ServerPing": 32, + "clc_RequestPause": 33, + "clc_CmdKeyValues": 34, + "clc_RconServerDetails": 35, + "clc_HltvReplay": 36, + } +) + +func (x CLC_Messages) Enum() *CLC_Messages { + p := new(CLC_Messages) + *p = x + return p +} + +func (x CLC_Messages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CLC_Messages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[0].Descriptor() +} + +func (CLC_Messages) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[0] +} + +func (x CLC_Messages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CLC_Messages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CLC_Messages(num) + return nil +} + +// Deprecated: Use CLC_Messages.Descriptor instead. +func (CLC_Messages) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{0} +} + +type SVC_Messages int32 + +const ( + SVC_Messages_svc_ServerInfo SVC_Messages = 40 + SVC_Messages_svc_FlattenedSerializer SVC_Messages = 41 + SVC_Messages_svc_ClassInfo SVC_Messages = 42 + SVC_Messages_svc_SetPause SVC_Messages = 43 + SVC_Messages_svc_CreateStringTable SVC_Messages = 44 + SVC_Messages_svc_UpdateStringTable SVC_Messages = 45 + SVC_Messages_svc_VoiceInit SVC_Messages = 46 + SVC_Messages_svc_VoiceData SVC_Messages = 47 + SVC_Messages_svc_Print SVC_Messages = 48 + SVC_Messages_svc_Sounds SVC_Messages = 49 + SVC_Messages_svc_SetView SVC_Messages = 50 + SVC_Messages_svc_ClearAllStringTables SVC_Messages = 51 + SVC_Messages_svc_CmdKeyValues SVC_Messages = 52 + SVC_Messages_svc_BSPDecal SVC_Messages = 53 + SVC_Messages_svc_SplitScreen SVC_Messages = 54 + SVC_Messages_svc_PacketEntities SVC_Messages = 55 + SVC_Messages_svc_Prefetch SVC_Messages = 56 + SVC_Messages_svc_Menu SVC_Messages = 57 + SVC_Messages_svc_GetCvarValue SVC_Messages = 58 + SVC_Messages_svc_StopSound SVC_Messages = 59 + SVC_Messages_svc_PeerList SVC_Messages = 60 + SVC_Messages_svc_PacketReliable SVC_Messages = 61 + SVC_Messages_svc_HLTVStatus SVC_Messages = 62 + SVC_Messages_svc_ServerSteamID SVC_Messages = 63 + SVC_Messages_svc_FullFrameSplit SVC_Messages = 70 + SVC_Messages_svc_RconServerDetails SVC_Messages = 71 + SVC_Messages_svc_UserMessage SVC_Messages = 72 + SVC_Messages_svc_HltvReplay SVC_Messages = 73 + SVC_Messages_svc_Broadcast_Command SVC_Messages = 74 + SVC_Messages_svc_HltvFixupOperatorStatus SVC_Messages = 75 +) + +// Enum value maps for SVC_Messages. +var ( + SVC_Messages_name = map[int32]string{ + 40: "svc_ServerInfo", + 41: "svc_FlattenedSerializer", + 42: "svc_ClassInfo", + 43: "svc_SetPause", + 44: "svc_CreateStringTable", + 45: "svc_UpdateStringTable", + 46: "svc_VoiceInit", + 47: "svc_VoiceData", + 48: "svc_Print", + 49: "svc_Sounds", + 50: "svc_SetView", + 51: "svc_ClearAllStringTables", + 52: "svc_CmdKeyValues", + 53: "svc_BSPDecal", + 54: "svc_SplitScreen", + 55: "svc_PacketEntities", + 56: "svc_Prefetch", + 57: "svc_Menu", + 58: "svc_GetCvarValue", + 59: "svc_StopSound", + 60: "svc_PeerList", + 61: "svc_PacketReliable", + 62: "svc_HLTVStatus", + 63: "svc_ServerSteamID", + 70: "svc_FullFrameSplit", + 71: "svc_RconServerDetails", + 72: "svc_UserMessage", + 73: "svc_HltvReplay", + 74: "svc_Broadcast_Command", + 75: "svc_HltvFixupOperatorStatus", + } + SVC_Messages_value = map[string]int32{ + "svc_ServerInfo": 40, + "svc_FlattenedSerializer": 41, + "svc_ClassInfo": 42, + "svc_SetPause": 43, + "svc_CreateStringTable": 44, + "svc_UpdateStringTable": 45, + "svc_VoiceInit": 46, + "svc_VoiceData": 47, + "svc_Print": 48, + "svc_Sounds": 49, + "svc_SetView": 50, + "svc_ClearAllStringTables": 51, + "svc_CmdKeyValues": 52, + "svc_BSPDecal": 53, + "svc_SplitScreen": 54, + "svc_PacketEntities": 55, + "svc_Prefetch": 56, + "svc_Menu": 57, + "svc_GetCvarValue": 58, + "svc_StopSound": 59, + "svc_PeerList": 60, + "svc_PacketReliable": 61, + "svc_HLTVStatus": 62, + "svc_ServerSteamID": 63, + "svc_FullFrameSplit": 70, + "svc_RconServerDetails": 71, + "svc_UserMessage": 72, + "svc_HltvReplay": 73, + "svc_Broadcast_Command": 74, + "svc_HltvFixupOperatorStatus": 75, + } +) + +func (x SVC_Messages) Enum() *SVC_Messages { + p := new(SVC_Messages) + *p = x + return p +} + +func (x SVC_Messages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SVC_Messages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[1].Descriptor() +} + +func (SVC_Messages) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[1] +} + +func (x SVC_Messages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SVC_Messages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SVC_Messages(num) + return nil +} + +// Deprecated: Use SVC_Messages.Descriptor instead. +func (SVC_Messages) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{1} +} + +type VoiceDataFormatT int32 + +const ( + VoiceDataFormatT_VOICEDATA_FORMAT_STEAM VoiceDataFormatT = 0 + VoiceDataFormatT_VOICEDATA_FORMAT_ENGINE VoiceDataFormatT = 1 +) + +// Enum value maps for VoiceDataFormatT. +var ( + VoiceDataFormatT_name = map[int32]string{ + 0: "VOICEDATA_FORMAT_STEAM", + 1: "VOICEDATA_FORMAT_ENGINE", + } + VoiceDataFormatT_value = map[string]int32{ + "VOICEDATA_FORMAT_STEAM": 0, + "VOICEDATA_FORMAT_ENGINE": 1, + } +) + +func (x VoiceDataFormatT) Enum() *VoiceDataFormatT { + p := new(VoiceDataFormatT) + *p = x + return p +} + +func (x VoiceDataFormatT) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VoiceDataFormatT) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[2].Descriptor() +} + +func (VoiceDataFormatT) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[2] +} + +func (x VoiceDataFormatT) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *VoiceDataFormatT) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = VoiceDataFormatT(num) + return nil +} + +// Deprecated: Use VoiceDataFormatT.Descriptor instead. +func (VoiceDataFormatT) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{2} +} + +type RequestPauseT int32 + +const ( + RequestPauseT_RP_PAUSE RequestPauseT = 0 + RequestPauseT_RP_UNPAUSE RequestPauseT = 1 + RequestPauseT_RP_TOGGLEPAUSE RequestPauseT = 2 +) + +// Enum value maps for RequestPauseT. +var ( + RequestPauseT_name = map[int32]string{ + 0: "RP_PAUSE", + 1: "RP_UNPAUSE", + 2: "RP_TOGGLEPAUSE", + } + RequestPauseT_value = map[string]int32{ + "RP_PAUSE": 0, + "RP_UNPAUSE": 1, + "RP_TOGGLEPAUSE": 2, + } +) + +func (x RequestPauseT) Enum() *RequestPauseT { + p := new(RequestPauseT) + *p = x + return p +} + +func (x RequestPauseT) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RequestPauseT) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[3].Descriptor() +} + +func (RequestPauseT) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[3] +} + +func (x RequestPauseT) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *RequestPauseT) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = RequestPauseT(num) + return nil +} + +// Deprecated: Use RequestPauseT.Descriptor instead. +func (RequestPauseT) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{3} +} + +type PrefetchType int32 + +const ( + PrefetchType_PFT_SOUND PrefetchType = 0 +) + +// Enum value maps for PrefetchType. +var ( + PrefetchType_name = map[int32]string{ + 0: "PFT_SOUND", + } + PrefetchType_value = map[string]int32{ + "PFT_SOUND": 0, + } +) + +func (x PrefetchType) Enum() *PrefetchType { + p := new(PrefetchType) + *p = x + return p +} + +func (x PrefetchType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrefetchType) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[4].Descriptor() +} + +func (PrefetchType) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[4] +} + +func (x PrefetchType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PrefetchType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PrefetchType(num) + return nil +} + +// Deprecated: Use PrefetchType.Descriptor instead. +func (PrefetchType) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{4} +} + +type ESplitScreenMessageType int32 + +const ( + ESplitScreenMessageType_MSG_SPLITSCREEN_ADDUSER ESplitScreenMessageType = 0 + ESplitScreenMessageType_MSG_SPLITSCREEN_REMOVEUSER ESplitScreenMessageType = 1 +) + +// Enum value maps for ESplitScreenMessageType. +var ( + ESplitScreenMessageType_name = map[int32]string{ + 0: "MSG_SPLITSCREEN_ADDUSER", + 1: "MSG_SPLITSCREEN_REMOVEUSER", + } + ESplitScreenMessageType_value = map[string]int32{ + "MSG_SPLITSCREEN_ADDUSER": 0, + "MSG_SPLITSCREEN_REMOVEUSER": 1, + } +) + +func (x ESplitScreenMessageType) Enum() *ESplitScreenMessageType { + p := new(ESplitScreenMessageType) + *p = x + return p +} + +func (x ESplitScreenMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ESplitScreenMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[5].Descriptor() +} + +func (ESplitScreenMessageType) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[5] +} + +func (x ESplitScreenMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ESplitScreenMessageType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ESplitScreenMessageType(num) + return nil +} + +// Deprecated: Use ESplitScreenMessageType.Descriptor instead. +func (ESplitScreenMessageType) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{5} +} + +type EQueryCvarValueStatus int32 + +const ( + EQueryCvarValueStatus_eQueryCvarValueStatus_ValueIntact EQueryCvarValueStatus = 0 + EQueryCvarValueStatus_eQueryCvarValueStatus_CvarNotFound EQueryCvarValueStatus = 1 + EQueryCvarValueStatus_eQueryCvarValueStatus_NotACvar EQueryCvarValueStatus = 2 + EQueryCvarValueStatus_eQueryCvarValueStatus_CvarProtected EQueryCvarValueStatus = 3 +) + +// Enum value maps for EQueryCvarValueStatus. +var ( + EQueryCvarValueStatus_name = map[int32]string{ + 0: "eQueryCvarValueStatus_ValueIntact", + 1: "eQueryCvarValueStatus_CvarNotFound", + 2: "eQueryCvarValueStatus_NotACvar", + 3: "eQueryCvarValueStatus_CvarProtected", + } + EQueryCvarValueStatus_value = map[string]int32{ + "eQueryCvarValueStatus_ValueIntact": 0, + "eQueryCvarValueStatus_CvarNotFound": 1, + "eQueryCvarValueStatus_NotACvar": 2, + "eQueryCvarValueStatus_CvarProtected": 3, + } +) + +func (x EQueryCvarValueStatus) Enum() *EQueryCvarValueStatus { + p := new(EQueryCvarValueStatus) + *p = x + return p +} + +func (x EQueryCvarValueStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EQueryCvarValueStatus) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[6].Descriptor() +} + +func (EQueryCvarValueStatus) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[6] +} + +func (x EQueryCvarValueStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EQueryCvarValueStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EQueryCvarValueStatus(num) + return nil +} + +// Deprecated: Use EQueryCvarValueStatus.Descriptor instead. +func (EQueryCvarValueStatus) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{6} +} + +type DIALOG_TYPE int32 + +const ( + DIALOG_TYPE_DIALOG_MSG DIALOG_TYPE = 0 + DIALOG_TYPE_DIALOG_MENU DIALOG_TYPE = 1 + DIALOG_TYPE_DIALOG_TEXT DIALOG_TYPE = 2 + DIALOG_TYPE_DIALOG_ENTRY DIALOG_TYPE = 3 + DIALOG_TYPE_DIALOG_ASKCONNECT DIALOG_TYPE = 4 +) + +// Enum value maps for DIALOG_TYPE. +var ( + DIALOG_TYPE_name = map[int32]string{ + 0: "DIALOG_MSG", + 1: "DIALOG_MENU", + 2: "DIALOG_TEXT", + 3: "DIALOG_ENTRY", + 4: "DIALOG_ASKCONNECT", + } + DIALOG_TYPE_value = map[string]int32{ + "DIALOG_MSG": 0, + "DIALOG_MENU": 1, + "DIALOG_TEXT": 2, + "DIALOG_ENTRY": 3, + "DIALOG_ASKCONNECT": 4, + } +) + +func (x DIALOG_TYPE) Enum() *DIALOG_TYPE { + p := new(DIALOG_TYPE) + *p = x + return p +} + +func (x DIALOG_TYPE) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DIALOG_TYPE) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[7].Descriptor() +} + +func (DIALOG_TYPE) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[7] +} + +func (x DIALOG_TYPE) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *DIALOG_TYPE) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = DIALOG_TYPE(num) + return nil +} + +// Deprecated: Use DIALOG_TYPE.Descriptor instead. +func (DIALOG_TYPE) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{7} +} + +type SVC_Messages_LowFrequency int32 + +const ( + SVC_Messages_LowFrequency_svc_dummy SVC_Messages_LowFrequency = 600 +) + +// Enum value maps for SVC_Messages_LowFrequency. +var ( + SVC_Messages_LowFrequency_name = map[int32]string{ + 600: "svc_dummy", + } + SVC_Messages_LowFrequency_value = map[string]int32{ + "svc_dummy": 600, + } +) + +func (x SVC_Messages_LowFrequency) Enum() *SVC_Messages_LowFrequency { + p := new(SVC_Messages_LowFrequency) + *p = x + return p +} + +func (x SVC_Messages_LowFrequency) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SVC_Messages_LowFrequency) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[8].Descriptor() +} + +func (SVC_Messages_LowFrequency) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[8] +} + +func (x SVC_Messages_LowFrequency) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SVC_Messages_LowFrequency) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SVC_Messages_LowFrequency(num) + return nil +} + +// Deprecated: Use SVC_Messages_LowFrequency.Descriptor instead. +func (SVC_Messages_LowFrequency) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{8} +} + +type Bidirectional_Messages int32 + +const ( + Bidirectional_Messages_bi_RebroadcastGameEvent Bidirectional_Messages = 16 + Bidirectional_Messages_bi_RebroadcastSource Bidirectional_Messages = 17 + Bidirectional_Messages_bi_GameEvent Bidirectional_Messages = 18 +) + +// Enum value maps for Bidirectional_Messages. +var ( + Bidirectional_Messages_name = map[int32]string{ + 16: "bi_RebroadcastGameEvent", + 17: "bi_RebroadcastSource", + 18: "bi_GameEvent", + } + Bidirectional_Messages_value = map[string]int32{ + "bi_RebroadcastGameEvent": 16, + "bi_RebroadcastSource": 17, + "bi_GameEvent": 18, + } +) + +func (x Bidirectional_Messages) Enum() *Bidirectional_Messages { + p := new(Bidirectional_Messages) + *p = x + return p +} + +func (x Bidirectional_Messages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Bidirectional_Messages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[9].Descriptor() +} + +func (Bidirectional_Messages) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[9] +} + +func (x Bidirectional_Messages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *Bidirectional_Messages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = Bidirectional_Messages(num) + return nil +} + +// Deprecated: Use Bidirectional_Messages.Descriptor instead. +func (Bidirectional_Messages) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{9} +} + +type Bidirectional_Messages_LowFrequency int32 + +const ( + Bidirectional_Messages_LowFrequency_bi_RelayInfo Bidirectional_Messages_LowFrequency = 700 + Bidirectional_Messages_LowFrequency_bi_RelayPacket Bidirectional_Messages_LowFrequency = 701 +) + +// Enum value maps for Bidirectional_Messages_LowFrequency. +var ( + Bidirectional_Messages_LowFrequency_name = map[int32]string{ + 700: "bi_RelayInfo", + 701: "bi_RelayPacket", + } + Bidirectional_Messages_LowFrequency_value = map[string]int32{ + "bi_RelayInfo": 700, + "bi_RelayPacket": 701, + } +) + +func (x Bidirectional_Messages_LowFrequency) Enum() *Bidirectional_Messages_LowFrequency { + p := new(Bidirectional_Messages_LowFrequency) + *p = x + return p +} + +func (x Bidirectional_Messages_LowFrequency) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Bidirectional_Messages_LowFrequency) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[10].Descriptor() +} + +func (Bidirectional_Messages_LowFrequency) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[10] +} + +func (x Bidirectional_Messages_LowFrequency) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *Bidirectional_Messages_LowFrequency) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = Bidirectional_Messages_LowFrequency(num) + return nil +} + +// Deprecated: Use Bidirectional_Messages_LowFrequency.Descriptor instead. +func (Bidirectional_Messages_LowFrequency) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{10} +} + +type ReplayEventTypeT int32 + +const ( + ReplayEventTypeT_REPLAY_EVENT_CANCEL ReplayEventTypeT = 0 + ReplayEventTypeT_REPLAY_EVENT_DEATH ReplayEventTypeT = 1 + ReplayEventTypeT_REPLAY_EVENT_GENERIC ReplayEventTypeT = 2 + ReplayEventTypeT_REPLAY_EVENT_STUCK_NEED_FULL_UPDATE ReplayEventTypeT = 3 + ReplayEventTypeT_REPLAY_EVENT_VICTORY ReplayEventTypeT = 4 +) + +// Enum value maps for ReplayEventTypeT. +var ( + ReplayEventTypeT_name = map[int32]string{ + 0: "REPLAY_EVENT_CANCEL", + 1: "REPLAY_EVENT_DEATH", + 2: "REPLAY_EVENT_GENERIC", + 3: "REPLAY_EVENT_STUCK_NEED_FULL_UPDATE", + 4: "REPLAY_EVENT_VICTORY", + } + ReplayEventTypeT_value = map[string]int32{ + "REPLAY_EVENT_CANCEL": 0, + "REPLAY_EVENT_DEATH": 1, + "REPLAY_EVENT_GENERIC": 2, + "REPLAY_EVENT_STUCK_NEED_FULL_UPDATE": 3, + "REPLAY_EVENT_VICTORY": 4, + } +) + +func (x ReplayEventTypeT) Enum() *ReplayEventTypeT { + p := new(ReplayEventTypeT) + *p = x + return p +} + +func (x ReplayEventTypeT) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ReplayEventTypeT) Descriptor() protoreflect.EnumDescriptor { + return file_s2_netmessages_proto_enumTypes[11].Descriptor() +} + +func (ReplayEventTypeT) Type() protoreflect.EnumType { + return &file_s2_netmessages_proto_enumTypes[11] +} + +func (x ReplayEventTypeT) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ReplayEventTypeT) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ReplayEventTypeT(num) + return nil +} + +// Deprecated: Use ReplayEventTypeT.Descriptor instead. +func (ReplayEventTypeT) EnumDescriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{11} +} + +type CCLCMsg_ClientInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendTableCrc *uint32 `protobuf:"fixed32,1,opt,name=send_table_crc,json=sendTableCrc" json:"send_table_crc,omitempty"` + ServerCount *uint32 `protobuf:"varint,2,opt,name=server_count,json=serverCount" json:"server_count,omitempty"` + IsHltv *bool `protobuf:"varint,3,opt,name=is_hltv,json=isHltv" json:"is_hltv,omitempty"` + FriendsId *uint32 `protobuf:"varint,5,opt,name=friends_id,json=friendsId" json:"friends_id,omitempty"` + FriendsName *string `protobuf:"bytes,6,opt,name=friends_name,json=friendsName" json:"friends_name,omitempty"` +} + +func (x *CCLCMsg_ClientInfo) Reset() { + *x = CCLCMsg_ClientInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ClientInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ClientInfo) ProtoMessage() {} + +func (x *CCLCMsg_ClientInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_ClientInfo.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ClientInfo) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CCLCMsg_ClientInfo) GetSendTableCrc() uint32 { + if x != nil && x.SendTableCrc != nil { + return *x.SendTableCrc + } + return 0 +} + +func (x *CCLCMsg_ClientInfo) GetServerCount() uint32 { + if x != nil && x.ServerCount != nil { + return *x.ServerCount + } + return 0 +} + +func (x *CCLCMsg_ClientInfo) GetIsHltv() bool { + if x != nil && x.IsHltv != nil { + return *x.IsHltv + } + return false +} + +func (x *CCLCMsg_ClientInfo) GetFriendsId() uint32 { + if x != nil && x.FriendsId != nil { + return *x.FriendsId + } + return 0 +} + +func (x *CCLCMsg_ClientInfo) GetFriendsName() string { + if x != nil && x.FriendsName != nil { + return *x.FriendsName + } + return "" +} + +type CCLCMsg_Move struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` + CommandNumber *uint32 `protobuf:"varint,4,opt,name=command_number,json=commandNumber" json:"command_number,omitempty"` + NumCommands *uint32 `protobuf:"varint,5,opt,name=num_commands,json=numCommands" json:"num_commands,omitempty"` +} + +func (x *CCLCMsg_Move) Reset() { + *x = CCLCMsg_Move{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_Move) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_Move) ProtoMessage() {} + +func (x *CCLCMsg_Move) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_Move.ProtoReflect.Descriptor instead. +func (*CCLCMsg_Move) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{1} +} + +func (x *CCLCMsg_Move) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *CCLCMsg_Move) GetCommandNumber() uint32 { + if x != nil && x.CommandNumber != nil { + return *x.CommandNumber + } + return 0 +} + +func (x *CCLCMsg_Move) GetNumCommands() uint32 { + if x != nil && x.NumCommands != nil { + return *x.NumCommands + } + return 0 +} + +type CMsgVoiceAudio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Format *VoiceDataFormatT `protobuf:"varint,1,opt,name=format,enum=com.github.markus_wa.demoinfocs_golang.s2.VoiceDataFormatT,def=0" json:"format,omitempty"` + VoiceData []byte `protobuf:"bytes,2,opt,name=voice_data,json=voiceData" json:"voice_data,omitempty"` + SequenceBytes *int32 `protobuf:"varint,3,opt,name=sequence_bytes,json=sequenceBytes" json:"sequence_bytes,omitempty"` + SectionNumber *uint32 `protobuf:"varint,4,opt,name=section_number,json=sectionNumber" json:"section_number,omitempty"` + SampleRate *uint32 `protobuf:"varint,5,opt,name=sample_rate,json=sampleRate" json:"sample_rate,omitempty"` + UncompressedSampleOffset *uint32 `protobuf:"varint,6,opt,name=uncompressed_sample_offset,json=uncompressedSampleOffset" json:"uncompressed_sample_offset,omitempty"` +} + +// Default values for CMsgVoiceAudio fields. +const ( + Default_CMsgVoiceAudio_Format = VoiceDataFormatT_VOICEDATA_FORMAT_STEAM +) + +func (x *CMsgVoiceAudio) Reset() { + *x = CMsgVoiceAudio{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgVoiceAudio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgVoiceAudio) ProtoMessage() {} + +func (x *CMsgVoiceAudio) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgVoiceAudio.ProtoReflect.Descriptor instead. +func (*CMsgVoiceAudio) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgVoiceAudio) GetFormat() VoiceDataFormatT { + if x != nil && x.Format != nil { + return *x.Format + } + return Default_CMsgVoiceAudio_Format +} + +func (x *CMsgVoiceAudio) GetVoiceData() []byte { + if x != nil { + return x.VoiceData + } + return nil +} + +func (x *CMsgVoiceAudio) GetSequenceBytes() int32 { + if x != nil && x.SequenceBytes != nil { + return *x.SequenceBytes + } + return 0 +} + +func (x *CMsgVoiceAudio) GetSectionNumber() uint32 { + if x != nil && x.SectionNumber != nil { + return *x.SectionNumber + } + return 0 +} + +func (x *CMsgVoiceAudio) GetSampleRate() uint32 { + if x != nil && x.SampleRate != nil { + return *x.SampleRate + } + return 0 +} + +func (x *CMsgVoiceAudio) GetUncompressedSampleOffset() uint32 { + if x != nil && x.UncompressedSampleOffset != nil { + return *x.UncompressedSampleOffset + } + return 0 +} + +type CCLCMsg_VoiceData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Audio *CMsgVoiceAudio `protobuf:"bytes,1,opt,name=audio" json:"audio,omitempty"` + Xuid *uint64 `protobuf:"fixed64,2,opt,name=xuid" json:"xuid,omitempty"` + Tick *uint32 `protobuf:"varint,3,opt,name=tick" json:"tick,omitempty"` +} + +func (x *CCLCMsg_VoiceData) Reset() { + *x = CCLCMsg_VoiceData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_VoiceData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_VoiceData) ProtoMessage() {} + +func (x *CCLCMsg_VoiceData) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_VoiceData.ProtoReflect.Descriptor instead. +func (*CCLCMsg_VoiceData) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{3} +} + +func (x *CCLCMsg_VoiceData) GetAudio() *CMsgVoiceAudio { + if x != nil { + return x.Audio + } + return nil +} + +func (x *CCLCMsg_VoiceData) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CCLCMsg_VoiceData) GetTick() uint32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +type CCLCMsg_BaselineAck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BaselineTick *int32 `protobuf:"varint,1,opt,name=baseline_tick,json=baselineTick" json:"baseline_tick,omitempty"` + BaselineNr *int32 `protobuf:"varint,2,opt,name=baseline_nr,json=baselineNr" json:"baseline_nr,omitempty"` +} + +func (x *CCLCMsg_BaselineAck) Reset() { + *x = CCLCMsg_BaselineAck{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_BaselineAck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_BaselineAck) ProtoMessage() {} + +func (x *CCLCMsg_BaselineAck) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_BaselineAck.ProtoReflect.Descriptor instead. +func (*CCLCMsg_BaselineAck) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{4} +} + +func (x *CCLCMsg_BaselineAck) GetBaselineTick() int32 { + if x != nil && x.BaselineTick != nil { + return *x.BaselineTick + } + return 0 +} + +func (x *CCLCMsg_BaselineAck) GetBaselineNr() int32 { + if x != nil && x.BaselineNr != nil { + return *x.BaselineNr + } + return 0 +} + +type CCLCMsg_ListenEvents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventMask []uint32 `protobuf:"fixed32,1,rep,name=event_mask,json=eventMask" json:"event_mask,omitempty"` +} + +func (x *CCLCMsg_ListenEvents) Reset() { + *x = CCLCMsg_ListenEvents{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ListenEvents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ListenEvents) ProtoMessage() {} + +func (x *CCLCMsg_ListenEvents) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_ListenEvents.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ListenEvents) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{5} +} + +func (x *CCLCMsg_ListenEvents) GetEventMask() []uint32 { + if x != nil { + return x.EventMask + } + return nil +} + +type CCLCMsg_RespondCvarValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cookie *int32 `protobuf:"varint,1,opt,name=cookie" json:"cookie,omitempty"` + StatusCode *int32 `protobuf:"varint,2,opt,name=status_code,json=statusCode" json:"status_code,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,4,opt,name=value" json:"value,omitempty"` +} + +func (x *CCLCMsg_RespondCvarValue) Reset() { + *x = CCLCMsg_RespondCvarValue{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_RespondCvarValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_RespondCvarValue) ProtoMessage() {} + +func (x *CCLCMsg_RespondCvarValue) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_RespondCvarValue.ProtoReflect.Descriptor instead. +func (*CCLCMsg_RespondCvarValue) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{6} +} + +func (x *CCLCMsg_RespondCvarValue) GetCookie() int32 { + if x != nil && x.Cookie != nil { + return *x.Cookie + } + return 0 +} + +func (x *CCLCMsg_RespondCvarValue) GetStatusCode() int32 { + if x != nil && x.StatusCode != nil { + return *x.StatusCode + } + return 0 +} + +func (x *CCLCMsg_RespondCvarValue) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CCLCMsg_RespondCvarValue) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CCLCMsg_FileCRCCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CodePath *int32 `protobuf:"varint,1,opt,name=code_path,json=codePath" json:"code_path,omitempty"` + Path *string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` + CodeFilename *int32 `protobuf:"varint,3,opt,name=code_filename,json=codeFilename" json:"code_filename,omitempty"` + Filename *string `protobuf:"bytes,4,opt,name=filename" json:"filename,omitempty"` + Crc *uint32 `protobuf:"fixed32,5,opt,name=crc" json:"crc,omitempty"` +} + +func (x *CCLCMsg_FileCRCCheck) Reset() { + *x = CCLCMsg_FileCRCCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_FileCRCCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_FileCRCCheck) ProtoMessage() {} + +func (x *CCLCMsg_FileCRCCheck) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_FileCRCCheck.ProtoReflect.Descriptor instead. +func (*CCLCMsg_FileCRCCheck) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{7} +} + +func (x *CCLCMsg_FileCRCCheck) GetCodePath() int32 { + if x != nil && x.CodePath != nil { + return *x.CodePath + } + return 0 +} + +func (x *CCLCMsg_FileCRCCheck) GetPath() string { + if x != nil && x.Path != nil { + return *x.Path + } + return "" +} + +func (x *CCLCMsg_FileCRCCheck) GetCodeFilename() int32 { + if x != nil && x.CodeFilename != nil { + return *x.CodeFilename + } + return 0 +} + +func (x *CCLCMsg_FileCRCCheck) GetFilename() string { + if x != nil && x.Filename != nil { + return *x.Filename + } + return "" +} + +func (x *CCLCMsg_FileCRCCheck) GetCrc() uint32 { + if x != nil && x.Crc != nil { + return *x.Crc + } + return 0 +} + +type CCLCMsg_LoadingProgress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Progress *int32 `protobuf:"varint,1,opt,name=progress" json:"progress,omitempty"` +} + +func (x *CCLCMsg_LoadingProgress) Reset() { + *x = CCLCMsg_LoadingProgress{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_LoadingProgress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_LoadingProgress) ProtoMessage() {} + +func (x *CCLCMsg_LoadingProgress) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_LoadingProgress.ProtoReflect.Descriptor instead. +func (*CCLCMsg_LoadingProgress) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{8} +} + +func (x *CCLCMsg_LoadingProgress) GetProgress() int32 { + if x != nil && x.Progress != nil { + return *x.Progress + } + return 0 +} + +type CCLCMsg_SplitPlayerConnect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Playername *string `protobuf:"bytes,1,opt,name=playername" json:"playername,omitempty"` +} + +func (x *CCLCMsg_SplitPlayerConnect) Reset() { + *x = CCLCMsg_SplitPlayerConnect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_SplitPlayerConnect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_SplitPlayerConnect) ProtoMessage() {} + +func (x *CCLCMsg_SplitPlayerConnect) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_SplitPlayerConnect.ProtoReflect.Descriptor instead. +func (*CCLCMsg_SplitPlayerConnect) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{9} +} + +func (x *CCLCMsg_SplitPlayerConnect) GetPlayername() string { + if x != nil && x.Playername != nil { + return *x.Playername + } + return "" +} + +type CCLCMsg_ClientMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *int32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CCLCMsg_ClientMessage) Reset() { + *x = CCLCMsg_ClientMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ClientMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ClientMessage) ProtoMessage() {} + +func (x *CCLCMsg_ClientMessage) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_ClientMessage.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ClientMessage) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{10} +} + +func (x *CCLCMsg_ClientMessage) GetMsgType() int32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *CCLCMsg_ClientMessage) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CCLCMsg_SplitPlayerDisconnect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *int32 `protobuf:"varint,1,opt,name=slot" json:"slot,omitempty"` +} + +func (x *CCLCMsg_SplitPlayerDisconnect) Reset() { + *x = CCLCMsg_SplitPlayerDisconnect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_SplitPlayerDisconnect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_SplitPlayerDisconnect) ProtoMessage() {} + +func (x *CCLCMsg_SplitPlayerDisconnect) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_SplitPlayerDisconnect.ProtoReflect.Descriptor instead. +func (*CCLCMsg_SplitPlayerDisconnect) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CCLCMsg_SplitPlayerDisconnect) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return 0 +} + +type CCLCMsg_ServerStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Simplified *bool `protobuf:"varint,1,opt,name=simplified" json:"simplified,omitempty"` +} + +func (x *CCLCMsg_ServerStatus) Reset() { + *x = CCLCMsg_ServerStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ServerStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ServerStatus) ProtoMessage() {} + +func (x *CCLCMsg_ServerStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_ServerStatus.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ServerStatus) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CCLCMsg_ServerStatus) GetSimplified() bool { + if x != nil && x.Simplified != nil { + return *x.Simplified + } + return false +} + +type CCLCMsg_ServerPing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CCLCMsg_ServerPing) Reset() { + *x = CCLCMsg_ServerPing{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_ServerPing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_ServerPing) ProtoMessage() {} + +func (x *CCLCMsg_ServerPing) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_ServerPing.ProtoReflect.Descriptor instead. +func (*CCLCMsg_ServerPing) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{13} +} + +type CCLCMsg_RequestPause struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PauseType *RequestPauseT `protobuf:"varint,1,opt,name=pause_type,json=pauseType,enum=com.github.markus_wa.demoinfocs_golang.s2.RequestPauseT,def=0" json:"pause_type,omitempty"` + PauseGroup *int32 `protobuf:"varint,2,opt,name=pause_group,json=pauseGroup" json:"pause_group,omitempty"` +} + +// Default values for CCLCMsg_RequestPause fields. +const ( + Default_CCLCMsg_RequestPause_PauseType = RequestPauseT_RP_PAUSE +) + +func (x *CCLCMsg_RequestPause) Reset() { + *x = CCLCMsg_RequestPause{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_RequestPause) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_RequestPause) ProtoMessage() {} + +func (x *CCLCMsg_RequestPause) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_RequestPause.ProtoReflect.Descriptor instead. +func (*CCLCMsg_RequestPause) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{14} +} + +func (x *CCLCMsg_RequestPause) GetPauseType() RequestPauseT { + if x != nil && x.PauseType != nil { + return *x.PauseType + } + return Default_CCLCMsg_RequestPause_PauseType +} + +func (x *CCLCMsg_RequestPause) GetPauseGroup() int32 { + if x != nil && x.PauseGroup != nil { + return *x.PauseGroup + } + return 0 +} + +type CCLCMsg_CmdKeyValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CCLCMsg_CmdKeyValues) Reset() { + *x = CCLCMsg_CmdKeyValues{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_CmdKeyValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_CmdKeyValues) ProtoMessage() {} + +func (x *CCLCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_CmdKeyValues.ProtoReflect.Descriptor instead. +func (*CCLCMsg_CmdKeyValues) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{15} +} + +func (x *CCLCMsg_CmdKeyValues) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CCLCMsg_RconServerDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token []byte `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` +} + +func (x *CCLCMsg_RconServerDetails) Reset() { + *x = CCLCMsg_RconServerDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_RconServerDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_RconServerDetails) ProtoMessage() {} + +func (x *CCLCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_RconServerDetails.ProtoReflect.Descriptor instead. +func (*CCLCMsg_RconServerDetails) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{16} +} + +func (x *CCLCMsg_RconServerDetails) GetToken() []byte { + if x != nil { + return x.Token + } + return nil +} + +type CSVCMsg_ServerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protocol *int32 `protobuf:"varint,1,opt,name=protocol" json:"protocol,omitempty"` + ServerCount *int32 `protobuf:"varint,2,opt,name=server_count,json=serverCount" json:"server_count,omitempty"` + IsDedicated *bool `protobuf:"varint,3,opt,name=is_dedicated,json=isDedicated" json:"is_dedicated,omitempty"` + IsHltv *bool `protobuf:"varint,4,opt,name=is_hltv,json=isHltv" json:"is_hltv,omitempty"` + COs *int32 `protobuf:"varint,6,opt,name=c_os,json=cOs" json:"c_os,omitempty"` + MaxClients *int32 `protobuf:"varint,10,opt,name=max_clients,json=maxClients" json:"max_clients,omitempty"` + MaxClasses *int32 `protobuf:"varint,11,opt,name=max_classes,json=maxClasses" json:"max_classes,omitempty"` + PlayerSlot *int32 `protobuf:"varint,12,opt,name=player_slot,json=playerSlot,def=-1" json:"player_slot,omitempty"` + TickInterval *float32 `protobuf:"fixed32,13,opt,name=tick_interval,json=tickInterval" json:"tick_interval,omitempty"` + GameDir *string `protobuf:"bytes,14,opt,name=game_dir,json=gameDir" json:"game_dir,omitempty"` + MapName *string `protobuf:"bytes,15,opt,name=map_name,json=mapName" json:"map_name,omitempty"` + SkyName *string `protobuf:"bytes,16,opt,name=sky_name,json=skyName" json:"sky_name,omitempty"` + HostName *string `protobuf:"bytes,17,opt,name=host_name,json=hostName" json:"host_name,omitempty"` + AddonName *string `protobuf:"bytes,18,opt,name=addon_name,json=addonName" json:"addon_name,omitempty"` + GameSessionConfig *CSVCMsg_GameSessionConfiguration `protobuf:"bytes,19,opt,name=game_session_config,json=gameSessionConfig" json:"game_session_config,omitempty"` + GameSessionManifest []byte `protobuf:"bytes,20,opt,name=game_session_manifest,json=gameSessionManifest" json:"game_session_manifest,omitempty"` +} + +// Default values for CSVCMsg_ServerInfo fields. +const ( + Default_CSVCMsg_ServerInfo_PlayerSlot = int32(-1) +) + +func (x *CSVCMsg_ServerInfo) Reset() { + *x = CSVCMsg_ServerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_ServerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_ServerInfo) ProtoMessage() {} + +func (x *CSVCMsg_ServerInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_ServerInfo.ProtoReflect.Descriptor instead. +func (*CSVCMsg_ServerInfo) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CSVCMsg_ServerInfo) GetProtocol() int32 { + if x != nil && x.Protocol != nil { + return *x.Protocol + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetServerCount() int32 { + if x != nil && x.ServerCount != nil { + return *x.ServerCount + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetIsDedicated() bool { + if x != nil && x.IsDedicated != nil { + return *x.IsDedicated + } + return false +} + +func (x *CSVCMsg_ServerInfo) GetIsHltv() bool { + if x != nil && x.IsHltv != nil { + return *x.IsHltv + } + return false +} + +func (x *CSVCMsg_ServerInfo) GetCOs() int32 { + if x != nil && x.COs != nil { + return *x.COs + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetMaxClients() int32 { + if x != nil && x.MaxClients != nil { + return *x.MaxClients + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetMaxClasses() int32 { + if x != nil && x.MaxClasses != nil { + return *x.MaxClasses + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetPlayerSlot() int32 { + if x != nil && x.PlayerSlot != nil { + return *x.PlayerSlot + } + return Default_CSVCMsg_ServerInfo_PlayerSlot +} + +func (x *CSVCMsg_ServerInfo) GetTickInterval() float32 { + if x != nil && x.TickInterval != nil { + return *x.TickInterval + } + return 0 +} + +func (x *CSVCMsg_ServerInfo) GetGameDir() string { + if x != nil && x.GameDir != nil { + return *x.GameDir + } + return "" +} + +func (x *CSVCMsg_ServerInfo) GetMapName() string { + if x != nil && x.MapName != nil { + return *x.MapName + } + return "" +} + +func (x *CSVCMsg_ServerInfo) GetSkyName() string { + if x != nil && x.SkyName != nil { + return *x.SkyName + } + return "" +} + +func (x *CSVCMsg_ServerInfo) GetHostName() string { + if x != nil && x.HostName != nil { + return *x.HostName + } + return "" +} + +func (x *CSVCMsg_ServerInfo) GetAddonName() string { + if x != nil && x.AddonName != nil { + return *x.AddonName + } + return "" +} + +func (x *CSVCMsg_ServerInfo) GetGameSessionConfig() *CSVCMsg_GameSessionConfiguration { + if x != nil { + return x.GameSessionConfig + } + return nil +} + +func (x *CSVCMsg_ServerInfo) GetGameSessionManifest() []byte { + if x != nil { + return x.GameSessionManifest + } + return nil +} + +type CSVCMsg_ClassInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreateOnClient *bool `protobuf:"varint,1,opt,name=create_on_client,json=createOnClient" json:"create_on_client,omitempty"` + Classes []*CSVCMsg_ClassInfoClassT `protobuf:"bytes,2,rep,name=classes" json:"classes,omitempty"` +} + +func (x *CSVCMsg_ClassInfo) Reset() { + *x = CSVCMsg_ClassInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_ClassInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_ClassInfo) ProtoMessage() {} + +func (x *CSVCMsg_ClassInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_ClassInfo.ProtoReflect.Descriptor instead. +func (*CSVCMsg_ClassInfo) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{18} +} + +func (x *CSVCMsg_ClassInfo) GetCreateOnClient() bool { + if x != nil && x.CreateOnClient != nil { + return *x.CreateOnClient + } + return false +} + +func (x *CSVCMsg_ClassInfo) GetClasses() []*CSVCMsg_ClassInfoClassT { + if x != nil { + return x.Classes + } + return nil +} + +type CSVCMsg_SetPause struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Paused *bool `protobuf:"varint,1,opt,name=paused" json:"paused,omitempty"` +} + +func (x *CSVCMsg_SetPause) Reset() { + *x = CSVCMsg_SetPause{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SetPause) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SetPause) ProtoMessage() {} + +func (x *CSVCMsg_SetPause) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SetPause.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SetPause) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{19} +} + +func (x *CSVCMsg_SetPause) GetPaused() bool { + if x != nil && x.Paused != nil { + return *x.Paused + } + return false +} + +type CSVCMsg_VoiceInit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Quality *int32 `protobuf:"varint,1,opt,name=quality" json:"quality,omitempty"` + Codec *string `protobuf:"bytes,2,opt,name=codec" json:"codec,omitempty"` + Version *int32 `protobuf:"varint,3,opt,name=version,def=0" json:"version,omitempty"` +} + +// Default values for CSVCMsg_VoiceInit fields. +const ( + Default_CSVCMsg_VoiceInit_Version = int32(0) +) + +func (x *CSVCMsg_VoiceInit) Reset() { + *x = CSVCMsg_VoiceInit{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_VoiceInit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_VoiceInit) ProtoMessage() {} + +func (x *CSVCMsg_VoiceInit) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_VoiceInit.ProtoReflect.Descriptor instead. +func (*CSVCMsg_VoiceInit) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{20} +} + +func (x *CSVCMsg_VoiceInit) GetQuality() int32 { + if x != nil && x.Quality != nil { + return *x.Quality + } + return 0 +} + +func (x *CSVCMsg_VoiceInit) GetCodec() string { + if x != nil && x.Codec != nil { + return *x.Codec + } + return "" +} + +func (x *CSVCMsg_VoiceInit) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return Default_CSVCMsg_VoiceInit_Version +} + +type CSVCMsg_Print struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` +} + +func (x *CSVCMsg_Print) Reset() { + *x = CSVCMsg_Print{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_Print) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_Print) ProtoMessage() {} + +func (x *CSVCMsg_Print) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_Print.ProtoReflect.Descriptor instead. +func (*CSVCMsg_Print) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{21} +} + +func (x *CSVCMsg_Print) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CSVCMsg_Sounds struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReliableSound *bool `protobuf:"varint,1,opt,name=reliable_sound,json=reliableSound" json:"reliable_sound,omitempty"` + Sounds []*CSVCMsg_SoundsSounddataT `protobuf:"bytes,2,rep,name=sounds" json:"sounds,omitempty"` +} + +func (x *CSVCMsg_Sounds) Reset() { + *x = CSVCMsg_Sounds{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_Sounds) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_Sounds) ProtoMessage() {} + +func (x *CSVCMsg_Sounds) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_Sounds.ProtoReflect.Descriptor instead. +func (*CSVCMsg_Sounds) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{22} +} + +func (x *CSVCMsg_Sounds) GetReliableSound() bool { + if x != nil && x.ReliableSound != nil { + return *x.ReliableSound + } + return false +} + +func (x *CSVCMsg_Sounds) GetSounds() []*CSVCMsg_SoundsSounddataT { + if x != nil { + return x.Sounds + } + return nil +} + +type CSVCMsg_Prefetch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SoundIndex *int32 `protobuf:"varint,1,opt,name=sound_index,json=soundIndex" json:"sound_index,omitempty"` + ResourceType *PrefetchType `protobuf:"varint,2,opt,name=resource_type,json=resourceType,enum=com.github.markus_wa.demoinfocs_golang.s2.PrefetchType,def=0" json:"resource_type,omitempty"` +} + +// Default values for CSVCMsg_Prefetch fields. +const ( + Default_CSVCMsg_Prefetch_ResourceType = PrefetchType_PFT_SOUND +) + +func (x *CSVCMsg_Prefetch) Reset() { + *x = CSVCMsg_Prefetch{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_Prefetch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_Prefetch) ProtoMessage() {} + +func (x *CSVCMsg_Prefetch) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_Prefetch.ProtoReflect.Descriptor instead. +func (*CSVCMsg_Prefetch) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{23} +} + +func (x *CSVCMsg_Prefetch) GetSoundIndex() int32 { + if x != nil && x.SoundIndex != nil { + return *x.SoundIndex + } + return 0 +} + +func (x *CSVCMsg_Prefetch) GetResourceType() PrefetchType { + if x != nil && x.ResourceType != nil { + return *x.ResourceType + } + return Default_CSVCMsg_Prefetch_ResourceType +} + +type CSVCMsg_SetView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityIndex *int32 `protobuf:"varint,1,opt,name=entity_index,json=entityIndex,def=-1" json:"entity_index,omitempty"` + Slot *int32 `protobuf:"varint,2,opt,name=slot,def=-1" json:"slot,omitempty"` +} + +// Default values for CSVCMsg_SetView fields. +const ( + Default_CSVCMsg_SetView_EntityIndex = int32(-1) + Default_CSVCMsg_SetView_Slot = int32(-1) +) + +func (x *CSVCMsg_SetView) Reset() { + *x = CSVCMsg_SetView{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SetView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SetView) ProtoMessage() {} + +func (x *CSVCMsg_SetView) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SetView.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SetView) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CSVCMsg_SetView) GetEntityIndex() int32 { + if x != nil && x.EntityIndex != nil { + return *x.EntityIndex + } + return Default_CSVCMsg_SetView_EntityIndex +} + +func (x *CSVCMsg_SetView) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return Default_CSVCMsg_SetView_Slot +} + +type CSVCMsg_FixAngle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Relative *bool `protobuf:"varint,1,opt,name=relative" json:"relative,omitempty"` + Angle *CMsgQAngle `protobuf:"bytes,2,opt,name=angle" json:"angle,omitempty"` +} + +func (x *CSVCMsg_FixAngle) Reset() { + *x = CSVCMsg_FixAngle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_FixAngle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_FixAngle) ProtoMessage() {} + +func (x *CSVCMsg_FixAngle) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_FixAngle.ProtoReflect.Descriptor instead. +func (*CSVCMsg_FixAngle) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CSVCMsg_FixAngle) GetRelative() bool { + if x != nil && x.Relative != nil { + return *x.Relative + } + return false +} + +func (x *CSVCMsg_FixAngle) GetAngle() *CMsgQAngle { + if x != nil { + return x.Angle + } + return nil +} + +type CSVCMsg_CrosshairAngle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Angle *CMsgQAngle `protobuf:"bytes,1,opt,name=angle" json:"angle,omitempty"` +} + +func (x *CSVCMsg_CrosshairAngle) Reset() { + *x = CSVCMsg_CrosshairAngle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_CrosshairAngle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_CrosshairAngle) ProtoMessage() {} + +func (x *CSVCMsg_CrosshairAngle) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_CrosshairAngle.ProtoReflect.Descriptor instead. +func (*CSVCMsg_CrosshairAngle) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CSVCMsg_CrosshairAngle) GetAngle() *CMsgQAngle { + if x != nil { + return x.Angle + } + return nil +} + +type CSVCMsg_BSPDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos *CMsgVector `protobuf:"bytes,1,opt,name=pos" json:"pos,omitempty"` + DecalTextureIndex *int32 `protobuf:"varint,2,opt,name=decal_texture_index,json=decalTextureIndex" json:"decal_texture_index,omitempty"` + EntityIndex *int32 `protobuf:"varint,3,opt,name=entity_index,json=entityIndex,def=-1" json:"entity_index,omitempty"` + ModelIndex *int32 `protobuf:"varint,4,opt,name=model_index,json=modelIndex" json:"model_index,omitempty"` + LowPriority *bool `protobuf:"varint,5,opt,name=low_priority,json=lowPriority" json:"low_priority,omitempty"` +} + +// Default values for CSVCMsg_BSPDecal fields. +const ( + Default_CSVCMsg_BSPDecal_EntityIndex = int32(-1) +) + +func (x *CSVCMsg_BSPDecal) Reset() { + *x = CSVCMsg_BSPDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_BSPDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_BSPDecal) ProtoMessage() {} + +func (x *CSVCMsg_BSPDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_BSPDecal.ProtoReflect.Descriptor instead. +func (*CSVCMsg_BSPDecal) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CSVCMsg_BSPDecal) GetPos() *CMsgVector { + if x != nil { + return x.Pos + } + return nil +} + +func (x *CSVCMsg_BSPDecal) GetDecalTextureIndex() int32 { + if x != nil && x.DecalTextureIndex != nil { + return *x.DecalTextureIndex + } + return 0 +} + +func (x *CSVCMsg_BSPDecal) GetEntityIndex() int32 { + if x != nil && x.EntityIndex != nil { + return *x.EntityIndex + } + return Default_CSVCMsg_BSPDecal_EntityIndex +} + +func (x *CSVCMsg_BSPDecal) GetModelIndex() int32 { + if x != nil && x.ModelIndex != nil { + return *x.ModelIndex + } + return 0 +} + +func (x *CSVCMsg_BSPDecal) GetLowPriority() bool { + if x != nil && x.LowPriority != nil { + return *x.LowPriority + } + return false +} + +type CSVCMsg_SplitScreen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *ESplitScreenMessageType `protobuf:"varint,1,opt,name=type,enum=com.github.markus_wa.demoinfocs_golang.s2.ESplitScreenMessageType,def=0" json:"type,omitempty"` + Slot *int32 `protobuf:"varint,2,opt,name=slot" json:"slot,omitempty"` + PlayerIndex *int32 `protobuf:"varint,3,opt,name=player_index,json=playerIndex,def=-1" json:"player_index,omitempty"` +} + +// Default values for CSVCMsg_SplitScreen fields. +const ( + Default_CSVCMsg_SplitScreen_Type = ESplitScreenMessageType_MSG_SPLITSCREEN_ADDUSER + Default_CSVCMsg_SplitScreen_PlayerIndex = int32(-1) +) + +func (x *CSVCMsg_SplitScreen) Reset() { + *x = CSVCMsg_SplitScreen{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SplitScreen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SplitScreen) ProtoMessage() {} + +func (x *CSVCMsg_SplitScreen) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SplitScreen.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SplitScreen) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{28} +} + +func (x *CSVCMsg_SplitScreen) GetType() ESplitScreenMessageType { + if x != nil && x.Type != nil { + return *x.Type + } + return Default_CSVCMsg_SplitScreen_Type +} + +func (x *CSVCMsg_SplitScreen) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return 0 +} + +func (x *CSVCMsg_SplitScreen) GetPlayerIndex() int32 { + if x != nil && x.PlayerIndex != nil { + return *x.PlayerIndex + } + return Default_CSVCMsg_SplitScreen_PlayerIndex +} + +type CSVCMsg_GetCvarValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cookie *int32 `protobuf:"varint,1,opt,name=cookie" json:"cookie,omitempty"` + CvarName *string `protobuf:"bytes,2,opt,name=cvar_name,json=cvarName" json:"cvar_name,omitempty"` +} + +func (x *CSVCMsg_GetCvarValue) Reset() { + *x = CSVCMsg_GetCvarValue{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GetCvarValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GetCvarValue) ProtoMessage() {} + +func (x *CSVCMsg_GetCvarValue) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GetCvarValue.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GetCvarValue) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{29} +} + +func (x *CSVCMsg_GetCvarValue) GetCookie() int32 { + if x != nil && x.Cookie != nil { + return *x.Cookie + } + return 0 +} + +func (x *CSVCMsg_GetCvarValue) GetCvarName() string { + if x != nil && x.CvarName != nil { + return *x.CvarName + } + return "" +} + +type CSVCMsg_Menu struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DialogType *int32 `protobuf:"varint,1,opt,name=dialog_type,json=dialogType" json:"dialog_type,omitempty"` + MenuKeyValues []byte `protobuf:"bytes,2,opt,name=menu_key_values,json=menuKeyValues" json:"menu_key_values,omitempty"` +} + +func (x *CSVCMsg_Menu) Reset() { + *x = CSVCMsg_Menu{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_Menu) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_Menu) ProtoMessage() {} + +func (x *CSVCMsg_Menu) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_Menu.ProtoReflect.Descriptor instead. +func (*CSVCMsg_Menu) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CSVCMsg_Menu) GetDialogType() int32 { + if x != nil && x.DialogType != nil { + return *x.DialogType + } + return 0 +} + +func (x *CSVCMsg_Menu) GetMenuKeyValues() []byte { + if x != nil { + return x.MenuKeyValues + } + return nil +} + +type CSVCMsg_UserMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *int32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` + MsgData []byte `protobuf:"bytes,2,opt,name=msg_data,json=msgData" json:"msg_data,omitempty"` + Passthrough *int32 `protobuf:"varint,3,opt,name=passthrough" json:"passthrough,omitempty"` +} + +func (x *CSVCMsg_UserMessage) Reset() { + *x = CSVCMsg_UserMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_UserMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_UserMessage) ProtoMessage() {} + +func (x *CSVCMsg_UserMessage) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_UserMessage.ProtoReflect.Descriptor instead. +func (*CSVCMsg_UserMessage) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CSVCMsg_UserMessage) GetMsgType() int32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *CSVCMsg_UserMessage) GetMsgData() []byte { + if x != nil { + return x.MsgData + } + return nil +} + +func (x *CSVCMsg_UserMessage) GetPassthrough() int32 { + if x != nil && x.Passthrough != nil { + return *x.Passthrough + } + return 0 +} + +type CSVCMsg_SendTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsEnd *bool `protobuf:"varint,1,opt,name=is_end,json=isEnd" json:"is_end,omitempty"` + NetTableName *string `protobuf:"bytes,2,opt,name=net_table_name,json=netTableName" json:"net_table_name,omitempty"` + NeedsDecoder *bool `protobuf:"varint,3,opt,name=needs_decoder,json=needsDecoder" json:"needs_decoder,omitempty"` + Props []*CSVCMsg_SendTableSendpropT `protobuf:"bytes,4,rep,name=props" json:"props,omitempty"` +} + +func (x *CSVCMsg_SendTable) Reset() { + *x = CSVCMsg_SendTable{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SendTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SendTable) ProtoMessage() {} + +func (x *CSVCMsg_SendTable) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SendTable.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SendTable) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{32} +} + +func (x *CSVCMsg_SendTable) GetIsEnd() bool { + if x != nil && x.IsEnd != nil { + return *x.IsEnd + } + return false +} + +func (x *CSVCMsg_SendTable) GetNetTableName() string { + if x != nil && x.NetTableName != nil { + return *x.NetTableName + } + return "" +} + +func (x *CSVCMsg_SendTable) GetNeedsDecoder() bool { + if x != nil && x.NeedsDecoder != nil { + return *x.NeedsDecoder + } + return false +} + +func (x *CSVCMsg_SendTable) GetProps() []*CSVCMsg_SendTableSendpropT { + if x != nil { + return x.Props + } + return nil +} + +type CSVCMsg_GameEventList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Descriptors []*CSVCMsg_GameEventListDescriptorT `protobuf:"bytes,1,rep,name=descriptors" json:"descriptors,omitempty"` +} + +func (x *CSVCMsg_GameEventList) Reset() { + *x = CSVCMsg_GameEventList{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameEventList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameEventList) ProtoMessage() {} + +func (x *CSVCMsg_GameEventList) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameEventList.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameEventList) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CSVCMsg_GameEventList) GetDescriptors() []*CSVCMsg_GameEventListDescriptorT { + if x != nil { + return x.Descriptors + } + return nil +} + +type CSVCMsg_PacketEntities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaxEntries *int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` + UpdatedEntries *int32 `protobuf:"varint,2,opt,name=updated_entries,json=updatedEntries" json:"updated_entries,omitempty"` + IsDelta *bool `protobuf:"varint,3,opt,name=is_delta,json=isDelta" json:"is_delta,omitempty"` + UpdateBaseline *bool `protobuf:"varint,4,opt,name=update_baseline,json=updateBaseline" json:"update_baseline,omitempty"` + Baseline *int32 `protobuf:"varint,5,opt,name=baseline" json:"baseline,omitempty"` + DeltaFrom *int32 `protobuf:"varint,6,opt,name=delta_from,json=deltaFrom" json:"delta_from,omitempty"` + EntityData []byte `protobuf:"bytes,7,opt,name=entity_data,json=entityData" json:"entity_data,omitempty"` + PendingFullFrame *bool `protobuf:"varint,8,opt,name=pending_full_frame,json=pendingFullFrame" json:"pending_full_frame,omitempty"` + ActiveSpawngroupHandle *uint32 `protobuf:"varint,9,opt,name=active_spawngroup_handle,json=activeSpawngroupHandle" json:"active_spawngroup_handle,omitempty"` + MaxSpawngroupCreationsequence *uint32 `protobuf:"varint,10,opt,name=max_spawngroup_creationsequence,json=maxSpawngroupCreationsequence" json:"max_spawngroup_creationsequence,omitempty"` + LastCmdNumber *uint32 `protobuf:"varint,11,opt,name=last_cmd_number,json=lastCmdNumber" json:"last_cmd_number,omitempty"` + ServerTick *uint32 `protobuf:"varint,12,opt,name=server_tick,json=serverTick" json:"server_tick,omitempty"` + SerializedEntities []byte `protobuf:"bytes,13,opt,name=serialized_entities,json=serializedEntities" json:"serialized_entities,omitempty"` + CommandQueueInfo *CSVCMsg_PacketEntitiesCommandQueueInfoT `protobuf:"bytes,14,opt,name=command_queue_info,json=commandQueueInfo" json:"command_queue_info,omitempty"` + AlternateBaselines []*CSVCMsg_PacketEntitiesAlternateBaselineT `protobuf:"bytes,15,rep,name=alternate_baselines,json=alternateBaselines" json:"alternate_baselines,omitempty"` +} + +func (x *CSVCMsg_PacketEntities) Reset() { + *x = CSVCMsg_PacketEntities{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_PacketEntities) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_PacketEntities) ProtoMessage() {} + +func (x *CSVCMsg_PacketEntities) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_PacketEntities.ProtoReflect.Descriptor instead. +func (*CSVCMsg_PacketEntities) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{34} +} + +func (x *CSVCMsg_PacketEntities) GetMaxEntries() int32 { + if x != nil && x.MaxEntries != nil { + return *x.MaxEntries + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetUpdatedEntries() int32 { + if x != nil && x.UpdatedEntries != nil { + return *x.UpdatedEntries + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetIsDelta() bool { + if x != nil && x.IsDelta != nil { + return *x.IsDelta + } + return false +} + +func (x *CSVCMsg_PacketEntities) GetUpdateBaseline() bool { + if x != nil && x.UpdateBaseline != nil { + return *x.UpdateBaseline + } + return false +} + +func (x *CSVCMsg_PacketEntities) GetBaseline() int32 { + if x != nil && x.Baseline != nil { + return *x.Baseline + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetDeltaFrom() int32 { + if x != nil && x.DeltaFrom != nil { + return *x.DeltaFrom + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetEntityData() []byte { + if x != nil { + return x.EntityData + } + return nil +} + +func (x *CSVCMsg_PacketEntities) GetPendingFullFrame() bool { + if x != nil && x.PendingFullFrame != nil { + return *x.PendingFullFrame + } + return false +} + +func (x *CSVCMsg_PacketEntities) GetActiveSpawngroupHandle() uint32 { + if x != nil && x.ActiveSpawngroupHandle != nil { + return *x.ActiveSpawngroupHandle + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetMaxSpawngroupCreationsequence() uint32 { + if x != nil && x.MaxSpawngroupCreationsequence != nil { + return *x.MaxSpawngroupCreationsequence + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetLastCmdNumber() uint32 { + if x != nil && x.LastCmdNumber != nil { + return *x.LastCmdNumber + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetServerTick() uint32 { + if x != nil && x.ServerTick != nil { + return *x.ServerTick + } + return 0 +} + +func (x *CSVCMsg_PacketEntities) GetSerializedEntities() []byte { + if x != nil { + return x.SerializedEntities + } + return nil +} + +func (x *CSVCMsg_PacketEntities) GetCommandQueueInfo() *CSVCMsg_PacketEntitiesCommandQueueInfoT { + if x != nil { + return x.CommandQueueInfo + } + return nil +} + +func (x *CSVCMsg_PacketEntities) GetAlternateBaselines() []*CSVCMsg_PacketEntitiesAlternateBaselineT { + if x != nil { + return x.AlternateBaselines + } + return nil +} + +type CSVCMsg_TempEntities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reliable *bool `protobuf:"varint,1,opt,name=reliable" json:"reliable,omitempty"` + NumEntries *int32 `protobuf:"varint,2,opt,name=num_entries,json=numEntries" json:"num_entries,omitempty"` + EntityData []byte `protobuf:"bytes,3,opt,name=entity_data,json=entityData" json:"entity_data,omitempty"` +} + +func (x *CSVCMsg_TempEntities) Reset() { + *x = CSVCMsg_TempEntities{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_TempEntities) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_TempEntities) ProtoMessage() {} + +func (x *CSVCMsg_TempEntities) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_TempEntities.ProtoReflect.Descriptor instead. +func (*CSVCMsg_TempEntities) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CSVCMsg_TempEntities) GetReliable() bool { + if x != nil && x.Reliable != nil { + return *x.Reliable + } + return false +} + +func (x *CSVCMsg_TempEntities) GetNumEntries() int32 { + if x != nil && x.NumEntries != nil { + return *x.NumEntries + } + return 0 +} + +func (x *CSVCMsg_TempEntities) GetEntityData() []byte { + if x != nil { + return x.EntityData + } + return nil +} + +type CSVCMsg_CreateStringTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + NumEntries *int32 `protobuf:"varint,2,opt,name=num_entries,json=numEntries" json:"num_entries,omitempty"` + UserDataFixedSize *bool `protobuf:"varint,3,opt,name=user_data_fixed_size,json=userDataFixedSize" json:"user_data_fixed_size,omitempty"` + UserDataSize *int32 `protobuf:"varint,4,opt,name=user_data_size,json=userDataSize" json:"user_data_size,omitempty"` + UserDataSizeBits *int32 `protobuf:"varint,5,opt,name=user_data_size_bits,json=userDataSizeBits" json:"user_data_size_bits,omitempty"` + Flags *int32 `protobuf:"varint,6,opt,name=flags" json:"flags,omitempty"` + StringData []byte `protobuf:"bytes,7,opt,name=string_data,json=stringData" json:"string_data,omitempty"` + UncompressedSize *int32 `protobuf:"varint,8,opt,name=uncompressed_size,json=uncompressedSize" json:"uncompressed_size,omitempty"` + DataCompressed *bool `protobuf:"varint,9,opt,name=data_compressed,json=dataCompressed" json:"data_compressed,omitempty"` + UsingVarintBitcounts *bool `protobuf:"varint,10,opt,name=using_varint_bitcounts,json=usingVarintBitcounts" json:"using_varint_bitcounts,omitempty"` +} + +func (x *CSVCMsg_CreateStringTable) Reset() { + *x = CSVCMsg_CreateStringTable{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_CreateStringTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_CreateStringTable) ProtoMessage() {} + +func (x *CSVCMsg_CreateStringTable) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_CreateStringTable.ProtoReflect.Descriptor instead. +func (*CSVCMsg_CreateStringTable) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{36} +} + +func (x *CSVCMsg_CreateStringTable) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CSVCMsg_CreateStringTable) GetNumEntries() int32 { + if x != nil && x.NumEntries != nil { + return *x.NumEntries + } + return 0 +} + +func (x *CSVCMsg_CreateStringTable) GetUserDataFixedSize() bool { + if x != nil && x.UserDataFixedSize != nil { + return *x.UserDataFixedSize + } + return false +} + +func (x *CSVCMsg_CreateStringTable) GetUserDataSize() int32 { + if x != nil && x.UserDataSize != nil { + return *x.UserDataSize + } + return 0 +} + +func (x *CSVCMsg_CreateStringTable) GetUserDataSizeBits() int32 { + if x != nil && x.UserDataSizeBits != nil { + return *x.UserDataSizeBits + } + return 0 +} + +func (x *CSVCMsg_CreateStringTable) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CSVCMsg_CreateStringTable) GetStringData() []byte { + if x != nil { + return x.StringData + } + return nil +} + +func (x *CSVCMsg_CreateStringTable) GetUncompressedSize() int32 { + if x != nil && x.UncompressedSize != nil { + return *x.UncompressedSize + } + return 0 +} + +func (x *CSVCMsg_CreateStringTable) GetDataCompressed() bool { + if x != nil && x.DataCompressed != nil { + return *x.DataCompressed + } + return false +} + +func (x *CSVCMsg_CreateStringTable) GetUsingVarintBitcounts() bool { + if x != nil && x.UsingVarintBitcounts != nil { + return *x.UsingVarintBitcounts + } + return false +} + +type CSVCMsg_UpdateStringTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TableId *int32 `protobuf:"varint,1,opt,name=table_id,json=tableId" json:"table_id,omitempty"` + NumChangedEntries *int32 `protobuf:"varint,2,opt,name=num_changed_entries,json=numChangedEntries" json:"num_changed_entries,omitempty"` + StringData []byte `protobuf:"bytes,3,opt,name=string_data,json=stringData" json:"string_data,omitempty"` +} + +func (x *CSVCMsg_UpdateStringTable) Reset() { + *x = CSVCMsg_UpdateStringTable{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_UpdateStringTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_UpdateStringTable) ProtoMessage() {} + +func (x *CSVCMsg_UpdateStringTable) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_UpdateStringTable.ProtoReflect.Descriptor instead. +func (*CSVCMsg_UpdateStringTable) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{37} +} + +func (x *CSVCMsg_UpdateStringTable) GetTableId() int32 { + if x != nil && x.TableId != nil { + return *x.TableId + } + return 0 +} + +func (x *CSVCMsg_UpdateStringTable) GetNumChangedEntries() int32 { + if x != nil && x.NumChangedEntries != nil { + return *x.NumChangedEntries + } + return 0 +} + +func (x *CSVCMsg_UpdateStringTable) GetStringData() []byte { + if x != nil { + return x.StringData + } + return nil +} + +type CSVCMsg_VoiceData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Audio *CMsgVoiceAudio `protobuf:"bytes,1,opt,name=audio" json:"audio,omitempty"` + Client *int32 `protobuf:"varint,2,opt,name=client,def=-1" json:"client,omitempty"` + Proximity *bool `protobuf:"varint,3,opt,name=proximity" json:"proximity,omitempty"` + Xuid *uint64 `protobuf:"fixed64,4,opt,name=xuid" json:"xuid,omitempty"` + AudibleMask *int32 `protobuf:"varint,5,opt,name=audible_mask,json=audibleMask" json:"audible_mask,omitempty"` + Tick *uint32 `protobuf:"varint,6,opt,name=tick" json:"tick,omitempty"` + Passthrough *int32 `protobuf:"varint,7,opt,name=passthrough" json:"passthrough,omitempty"` +} + +// Default values for CSVCMsg_VoiceData fields. +const ( + Default_CSVCMsg_VoiceData_Client = int32(-1) +) + +func (x *CSVCMsg_VoiceData) Reset() { + *x = CSVCMsg_VoiceData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_VoiceData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_VoiceData) ProtoMessage() {} + +func (x *CSVCMsg_VoiceData) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_VoiceData.ProtoReflect.Descriptor instead. +func (*CSVCMsg_VoiceData) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{38} +} + +func (x *CSVCMsg_VoiceData) GetAudio() *CMsgVoiceAudio { + if x != nil { + return x.Audio + } + return nil +} + +func (x *CSVCMsg_VoiceData) GetClient() int32 { + if x != nil && x.Client != nil { + return *x.Client + } + return Default_CSVCMsg_VoiceData_Client +} + +func (x *CSVCMsg_VoiceData) GetProximity() bool { + if x != nil && x.Proximity != nil { + return *x.Proximity + } + return false +} + +func (x *CSVCMsg_VoiceData) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CSVCMsg_VoiceData) GetAudibleMask() int32 { + if x != nil && x.AudibleMask != nil { + return *x.AudibleMask + } + return 0 +} + +func (x *CSVCMsg_VoiceData) GetTick() uint32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CSVCMsg_VoiceData) GetPassthrough() int32 { + if x != nil && x.Passthrough != nil { + return *x.Passthrough + } + return 0 +} + +type CSVCMsg_PacketReliable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tick *int32 `protobuf:"varint,1,opt,name=tick" json:"tick,omitempty"` + Messagessize *int32 `protobuf:"varint,2,opt,name=messagessize" json:"messagessize,omitempty"` + State *bool `protobuf:"varint,3,opt,name=state" json:"state,omitempty"` +} + +func (x *CSVCMsg_PacketReliable) Reset() { + *x = CSVCMsg_PacketReliable{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_PacketReliable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_PacketReliable) ProtoMessage() {} + +func (x *CSVCMsg_PacketReliable) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_PacketReliable.ProtoReflect.Descriptor instead. +func (*CSVCMsg_PacketReliable) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{39} +} + +func (x *CSVCMsg_PacketReliable) GetTick() int32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CSVCMsg_PacketReliable) GetMessagessize() int32 { + if x != nil && x.Messagessize != nil { + return *x.Messagessize + } + return 0 +} + +func (x *CSVCMsg_PacketReliable) GetState() bool { + if x != nil && x.State != nil { + return *x.State + } + return false +} + +type CSVCMsg_FullFrameSplit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tick *int32 `protobuf:"varint,1,opt,name=tick" json:"tick,omitempty"` + Section *int32 `protobuf:"varint,2,opt,name=section" json:"section,omitempty"` + Total *int32 `protobuf:"varint,3,opt,name=total" json:"total,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data" json:"data,omitempty"` +} + +func (x *CSVCMsg_FullFrameSplit) Reset() { + *x = CSVCMsg_FullFrameSplit{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_FullFrameSplit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_FullFrameSplit) ProtoMessage() {} + +func (x *CSVCMsg_FullFrameSplit) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_FullFrameSplit.ProtoReflect.Descriptor instead. +func (*CSVCMsg_FullFrameSplit) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{40} +} + +func (x *CSVCMsg_FullFrameSplit) GetTick() int32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CSVCMsg_FullFrameSplit) GetSection() int32 { + if x != nil && x.Section != nil { + return *x.Section + } + return 0 +} + +func (x *CSVCMsg_FullFrameSplit) GetTotal() int32 { + if x != nil && x.Total != nil { + return *x.Total + } + return 0 +} + +func (x *CSVCMsg_FullFrameSplit) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CSVCMsg_HLTVStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Master *string `protobuf:"bytes,1,opt,name=master" json:"master,omitempty"` + Clients *int32 `protobuf:"varint,2,opt,name=clients" json:"clients,omitempty"` + Slots *int32 `protobuf:"varint,3,opt,name=slots" json:"slots,omitempty"` + Proxies *int32 `protobuf:"varint,4,opt,name=proxies" json:"proxies,omitempty"` +} + +func (x *CSVCMsg_HLTVStatus) Reset() { + *x = CSVCMsg_HLTVStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_HLTVStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_HLTVStatus) ProtoMessage() {} + +func (x *CSVCMsg_HLTVStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_HLTVStatus.ProtoReflect.Descriptor instead. +func (*CSVCMsg_HLTVStatus) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{41} +} + +func (x *CSVCMsg_HLTVStatus) GetMaster() string { + if x != nil && x.Master != nil { + return *x.Master + } + return "" +} + +func (x *CSVCMsg_HLTVStatus) GetClients() int32 { + if x != nil && x.Clients != nil { + return *x.Clients + } + return 0 +} + +func (x *CSVCMsg_HLTVStatus) GetSlots() int32 { + if x != nil && x.Slots != nil { + return *x.Slots + } + return 0 +} + +func (x *CSVCMsg_HLTVStatus) GetProxies() int32 { + if x != nil && x.Proxies != nil { + return *x.Proxies + } + return 0 +} + +type CSVCMsg_ServerSteamID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"varint,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` +} + +func (x *CSVCMsg_ServerSteamID) Reset() { + *x = CSVCMsg_ServerSteamID{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_ServerSteamID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_ServerSteamID) ProtoMessage() {} + +func (x *CSVCMsg_ServerSteamID) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_ServerSteamID.ProtoReflect.Descriptor instead. +func (*CSVCMsg_ServerSteamID) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{42} +} + +func (x *CSVCMsg_ServerSteamID) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +type CSVCMsg_CmdKeyValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` +} + +func (x *CSVCMsg_CmdKeyValues) Reset() { + *x = CSVCMsg_CmdKeyValues{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_CmdKeyValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_CmdKeyValues) ProtoMessage() {} + +func (x *CSVCMsg_CmdKeyValues) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_CmdKeyValues.ProtoReflect.Descriptor instead. +func (*CSVCMsg_CmdKeyValues) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{43} +} + +func (x *CSVCMsg_CmdKeyValues) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CSVCMsg_RconServerDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token []byte `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + Details *string `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"` +} + +func (x *CSVCMsg_RconServerDetails) Reset() { + *x = CSVCMsg_RconServerDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_RconServerDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_RconServerDetails) ProtoMessage() {} + +func (x *CSVCMsg_RconServerDetails) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_RconServerDetails.ProtoReflect.Descriptor instead. +func (*CSVCMsg_RconServerDetails) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{44} +} + +func (x *CSVCMsg_RconServerDetails) GetToken() []byte { + if x != nil { + return x.Token + } + return nil +} + +func (x *CSVCMsg_RconServerDetails) GetDetails() string { + if x != nil && x.Details != nil { + return *x.Details + } + return "" +} + +type CMsgIPCAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ComputerGuid *uint64 `protobuf:"fixed64,1,opt,name=computer_guid,json=computerGuid" json:"computer_guid,omitempty"` + ProcessId *uint32 `protobuf:"varint,2,opt,name=process_id,json=processId" json:"process_id,omitempty"` +} + +func (x *CMsgIPCAddress) Reset() { + *x = CMsgIPCAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgIPCAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgIPCAddress) ProtoMessage() {} + +func (x *CMsgIPCAddress) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgIPCAddress.ProtoReflect.Descriptor instead. +func (*CMsgIPCAddress) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{45} +} + +func (x *CMsgIPCAddress) GetComputerGuid() uint64 { + if x != nil && x.ComputerGuid != nil { + return *x.ComputerGuid + } + return 0 +} + +func (x *CMsgIPCAddress) GetProcessId() uint32 { + if x != nil && x.ProcessId != nil { + return *x.ProcessId + } + return 0 +} + +type CMsgServerPeer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerSlot *int32 `protobuf:"varint,1,opt,name=player_slot,json=playerSlot,def=-1" json:"player_slot,omitempty"` + Steamid *uint64 `protobuf:"fixed64,2,opt,name=steamid" json:"steamid,omitempty"` + Ipc *CMsgIPCAddress `protobuf:"bytes,3,opt,name=ipc" json:"ipc,omitempty"` + TheyHearYou *bool `protobuf:"varint,4,opt,name=they_hear_you,json=theyHearYou" json:"they_hear_you,omitempty"` + YouHearThem *bool `protobuf:"varint,5,opt,name=you_hear_them,json=youHearThem" json:"you_hear_them,omitempty"` + IsListenserverHost *bool `protobuf:"varint,6,opt,name=is_listenserver_host,json=isListenserverHost" json:"is_listenserver_host,omitempty"` +} + +// Default values for CMsgServerPeer fields. +const ( + Default_CMsgServerPeer_PlayerSlot = int32(-1) +) + +func (x *CMsgServerPeer) Reset() { + *x = CMsgServerPeer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerPeer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerPeer) ProtoMessage() {} + +func (x *CMsgServerPeer) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgServerPeer.ProtoReflect.Descriptor instead. +func (*CMsgServerPeer) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{46} +} + +func (x *CMsgServerPeer) GetPlayerSlot() int32 { + if x != nil && x.PlayerSlot != nil { + return *x.PlayerSlot + } + return Default_CMsgServerPeer_PlayerSlot +} + +func (x *CMsgServerPeer) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgServerPeer) GetIpc() *CMsgIPCAddress { + if x != nil { + return x.Ipc + } + return nil +} + +func (x *CMsgServerPeer) GetTheyHearYou() bool { + if x != nil && x.TheyHearYou != nil { + return *x.TheyHearYou + } + return false +} + +func (x *CMsgServerPeer) GetYouHearThem() bool { + if x != nil && x.YouHearThem != nil { + return *x.YouHearThem + } + return false +} + +func (x *CMsgServerPeer) GetIsListenserverHost() bool { + if x != nil && x.IsListenserverHost != nil { + return *x.IsListenserverHost + } + return false +} + +type CSVCMsg_PeerList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer []*CMsgServerPeer `protobuf:"bytes,1,rep,name=peer" json:"peer,omitempty"` +} + +func (x *CSVCMsg_PeerList) Reset() { + *x = CSVCMsg_PeerList{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_PeerList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_PeerList) ProtoMessage() {} + +func (x *CSVCMsg_PeerList) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_PeerList.ProtoReflect.Descriptor instead. +func (*CSVCMsg_PeerList) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{47} +} + +func (x *CSVCMsg_PeerList) GetPeer() []*CMsgServerPeer { + if x != nil { + return x.Peer + } + return nil +} + +type CSVCMsg_ClearAllStringTables struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mapname *string `protobuf:"bytes,1,opt,name=mapname" json:"mapname,omitempty"` +} + +func (x *CSVCMsg_ClearAllStringTables) Reset() { + *x = CSVCMsg_ClearAllStringTables{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_ClearAllStringTables) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_ClearAllStringTables) ProtoMessage() {} + +func (x *CSVCMsg_ClearAllStringTables) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_ClearAllStringTables.ProtoReflect.Descriptor instead. +func (*CSVCMsg_ClearAllStringTables) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{48} +} + +func (x *CSVCMsg_ClearAllStringTables) GetMapname() string { + if x != nil && x.Mapname != nil { + return *x.Mapname + } + return "" +} + +type ProtoFlattenedSerializerFieldT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + VarTypeSym *int32 `protobuf:"varint,1,opt,name=var_type_sym,json=varTypeSym" json:"var_type_sym,omitempty"` + VarNameSym *int32 `protobuf:"varint,2,opt,name=var_name_sym,json=varNameSym" json:"var_name_sym,omitempty"` + BitCount *int32 `protobuf:"varint,3,opt,name=bit_count,json=bitCount" json:"bit_count,omitempty"` + LowValue *float32 `protobuf:"fixed32,4,opt,name=low_value,json=lowValue" json:"low_value,omitempty"` + HighValue *float32 `protobuf:"fixed32,5,opt,name=high_value,json=highValue" json:"high_value,omitempty"` + EncodeFlags *int32 `protobuf:"varint,6,opt,name=encode_flags,json=encodeFlags" json:"encode_flags,omitempty"` + FieldSerializerNameSym *int32 `protobuf:"varint,7,opt,name=field_serializer_name_sym,json=fieldSerializerNameSym" json:"field_serializer_name_sym,omitempty"` + FieldSerializerVersion *int32 `protobuf:"varint,8,opt,name=field_serializer_version,json=fieldSerializerVersion" json:"field_serializer_version,omitempty"` + SendNodeSym *int32 `protobuf:"varint,9,opt,name=send_node_sym,json=sendNodeSym" json:"send_node_sym,omitempty"` + VarEncoderSym *int32 `protobuf:"varint,10,opt,name=var_encoder_sym,json=varEncoderSym" json:"var_encoder_sym,omitempty"` + PolymorphicTypes []*ProtoFlattenedSerializerFieldTPolymorphicFieldT `protobuf:"bytes,11,rep,name=polymorphic_types,json=polymorphicTypes" json:"polymorphic_types,omitempty"` +} + +func (x *ProtoFlattenedSerializerFieldT) Reset() { + *x = ProtoFlattenedSerializerFieldT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtoFlattenedSerializerFieldT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtoFlattenedSerializerFieldT) ProtoMessage() {} + +func (x *ProtoFlattenedSerializerFieldT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtoFlattenedSerializerFieldT.ProtoReflect.Descriptor instead. +func (*ProtoFlattenedSerializerFieldT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{49} +} + +func (x *ProtoFlattenedSerializerFieldT) GetVarTypeSym() int32 { + if x != nil && x.VarTypeSym != nil { + return *x.VarTypeSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetVarNameSym() int32 { + if x != nil && x.VarNameSym != nil { + return *x.VarNameSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetBitCount() int32 { + if x != nil && x.BitCount != nil { + return *x.BitCount + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetLowValue() float32 { + if x != nil && x.LowValue != nil { + return *x.LowValue + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetHighValue() float32 { + if x != nil && x.HighValue != nil { + return *x.HighValue + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetEncodeFlags() int32 { + if x != nil && x.EncodeFlags != nil { + return *x.EncodeFlags + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetFieldSerializerNameSym() int32 { + if x != nil && x.FieldSerializerNameSym != nil { + return *x.FieldSerializerNameSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetFieldSerializerVersion() int32 { + if x != nil && x.FieldSerializerVersion != nil { + return *x.FieldSerializerVersion + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetSendNodeSym() int32 { + if x != nil && x.SendNodeSym != nil { + return *x.SendNodeSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetVarEncoderSym() int32 { + if x != nil && x.VarEncoderSym != nil { + return *x.VarEncoderSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldT) GetPolymorphicTypes() []*ProtoFlattenedSerializerFieldTPolymorphicFieldT { + if x != nil { + return x.PolymorphicTypes + } + return nil +} + +type ProtoFlattenedSerializerT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SerializerNameSym *int32 `protobuf:"varint,1,opt,name=serializer_name_sym,json=serializerNameSym" json:"serializer_name_sym,omitempty"` + SerializerVersion *int32 `protobuf:"varint,2,opt,name=serializer_version,json=serializerVersion" json:"serializer_version,omitempty"` + FieldsIndex []int32 `protobuf:"varint,3,rep,name=fields_index,json=fieldsIndex" json:"fields_index,omitempty"` +} + +func (x *ProtoFlattenedSerializerT) Reset() { + *x = ProtoFlattenedSerializerT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtoFlattenedSerializerT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtoFlattenedSerializerT) ProtoMessage() {} + +func (x *ProtoFlattenedSerializerT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtoFlattenedSerializerT.ProtoReflect.Descriptor instead. +func (*ProtoFlattenedSerializerT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{50} +} + +func (x *ProtoFlattenedSerializerT) GetSerializerNameSym() int32 { + if x != nil && x.SerializerNameSym != nil { + return *x.SerializerNameSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerT) GetSerializerVersion() int32 { + if x != nil && x.SerializerVersion != nil { + return *x.SerializerVersion + } + return 0 +} + +func (x *ProtoFlattenedSerializerT) GetFieldsIndex() []int32 { + if x != nil { + return x.FieldsIndex + } + return nil +} + +type CSVCMsg_FlattenedSerializer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Serializers []*ProtoFlattenedSerializerT `protobuf:"bytes,1,rep,name=serializers" json:"serializers,omitempty"` + Symbols []string `protobuf:"bytes,2,rep,name=symbols" json:"symbols,omitempty"` + Fields []*ProtoFlattenedSerializerFieldT `protobuf:"bytes,3,rep,name=fields" json:"fields,omitempty"` +} + +func (x *CSVCMsg_FlattenedSerializer) Reset() { + *x = CSVCMsg_FlattenedSerializer{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_FlattenedSerializer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_FlattenedSerializer) ProtoMessage() {} + +func (x *CSVCMsg_FlattenedSerializer) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_FlattenedSerializer.ProtoReflect.Descriptor instead. +func (*CSVCMsg_FlattenedSerializer) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{51} +} + +func (x *CSVCMsg_FlattenedSerializer) GetSerializers() []*ProtoFlattenedSerializerT { + if x != nil { + return x.Serializers + } + return nil +} + +func (x *CSVCMsg_FlattenedSerializer) GetSymbols() []string { + if x != nil { + return x.Symbols + } + return nil +} + +func (x *CSVCMsg_FlattenedSerializer) GetFields() []*ProtoFlattenedSerializerFieldT { + if x != nil { + return x.Fields + } + return nil +} + +type CSVCMsg_StopSound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid *uint32 `protobuf:"fixed32,1,opt,name=guid" json:"guid,omitempty"` +} + +func (x *CSVCMsg_StopSound) Reset() { + *x = CSVCMsg_StopSound{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_StopSound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_StopSound) ProtoMessage() {} + +func (x *CSVCMsg_StopSound) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_StopSound.ProtoReflect.Descriptor instead. +func (*CSVCMsg_StopSound) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{52} +} + +func (x *CSVCMsg_StopSound) GetGuid() uint32 { + if x != nil && x.Guid != nil { + return *x.Guid + } + return 0 +} + +type CBidirMsg_RebroadcastGameEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Posttoserver *bool `protobuf:"varint,1,opt,name=posttoserver" json:"posttoserver,omitempty"` + Buftype *int32 `protobuf:"varint,2,opt,name=buftype" json:"buftype,omitempty"` + Clientbitcount *uint32 `protobuf:"varint,3,opt,name=clientbitcount" json:"clientbitcount,omitempty"` + Receivingclients *uint64 `protobuf:"varint,4,opt,name=receivingclients" json:"receivingclients,omitempty"` +} + +func (x *CBidirMsg_RebroadcastGameEvent) Reset() { + *x = CBidirMsg_RebroadcastGameEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CBidirMsg_RebroadcastGameEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CBidirMsg_RebroadcastGameEvent) ProtoMessage() {} + +func (x *CBidirMsg_RebroadcastGameEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CBidirMsg_RebroadcastGameEvent.ProtoReflect.Descriptor instead. +func (*CBidirMsg_RebroadcastGameEvent) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{53} +} + +func (x *CBidirMsg_RebroadcastGameEvent) GetPosttoserver() bool { + if x != nil && x.Posttoserver != nil { + return *x.Posttoserver + } + return false +} + +func (x *CBidirMsg_RebroadcastGameEvent) GetBuftype() int32 { + if x != nil && x.Buftype != nil { + return *x.Buftype + } + return 0 +} + +func (x *CBidirMsg_RebroadcastGameEvent) GetClientbitcount() uint32 { + if x != nil && x.Clientbitcount != nil { + return *x.Clientbitcount + } + return 0 +} + +func (x *CBidirMsg_RebroadcastGameEvent) GetReceivingclients() uint64 { + if x != nil && x.Receivingclients != nil { + return *x.Receivingclients + } + return 0 +} + +type CBidirMsg_RebroadcastSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventsource *int32 `protobuf:"varint,1,opt,name=eventsource" json:"eventsource,omitempty"` +} + +func (x *CBidirMsg_RebroadcastSource) Reset() { + *x = CBidirMsg_RebroadcastSource{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CBidirMsg_RebroadcastSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CBidirMsg_RebroadcastSource) ProtoMessage() {} + +func (x *CBidirMsg_RebroadcastSource) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CBidirMsg_RebroadcastSource.ProtoReflect.Descriptor instead. +func (*CBidirMsg_RebroadcastSource) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{54} +} + +func (x *CBidirMsg_RebroadcastSource) GetEventsource() int32 { + if x != nil && x.Eventsource != nil { + return *x.Eventsource + } + return 0 +} + +type CMsgServerNetworkStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dedicated *bool `protobuf:"varint,1,opt,name=dedicated" json:"dedicated,omitempty"` + CpuUsage *int32 `protobuf:"varint,2,opt,name=cpu_usage,json=cpuUsage" json:"cpu_usage,omitempty"` + MemoryUsedMb *int32 `protobuf:"varint,3,opt,name=memory_used_mb,json=memoryUsedMb" json:"memory_used_mb,omitempty"` + MemoryFreeMb *int32 `protobuf:"varint,4,opt,name=memory_free_mb,json=memoryFreeMb" json:"memory_free_mb,omitempty"` + Uptime *int32 `protobuf:"varint,5,opt,name=uptime" json:"uptime,omitempty"` + SpawnCount *int32 `protobuf:"varint,6,opt,name=spawn_count,json=spawnCount" json:"spawn_count,omitempty"` + NumClients *int32 `protobuf:"varint,8,opt,name=num_clients,json=numClients" json:"num_clients,omitempty"` + NumBots *int32 `protobuf:"varint,9,opt,name=num_bots,json=numBots" json:"num_bots,omitempty"` + NumSpectators *int32 `protobuf:"varint,10,opt,name=num_spectators,json=numSpectators" json:"num_spectators,omitempty"` + NumTvRelays *int32 `protobuf:"varint,11,opt,name=num_tv_relays,json=numTvRelays" json:"num_tv_relays,omitempty"` + Fps *float32 `protobuf:"fixed32,12,opt,name=fps" json:"fps,omitempty"` + Ports []*CMsgServerNetworkStats_Port `protobuf:"bytes,17,rep,name=ports" json:"ports,omitempty"` + AvgLatencyOut *float32 `protobuf:"fixed32,18,opt,name=avg_latency_out,json=avgLatencyOut" json:"avg_latency_out,omitempty"` + AvgLatencyIn *float32 `protobuf:"fixed32,19,opt,name=avg_latency_in,json=avgLatencyIn" json:"avg_latency_in,omitempty"` + AvgPacketsOut *float32 `protobuf:"fixed32,20,opt,name=avg_packets_out,json=avgPacketsOut" json:"avg_packets_out,omitempty"` + AvgPacketsIn *float32 `protobuf:"fixed32,21,opt,name=avg_packets_in,json=avgPacketsIn" json:"avg_packets_in,omitempty"` + AvgLossOut *float32 `protobuf:"fixed32,22,opt,name=avg_loss_out,json=avgLossOut" json:"avg_loss_out,omitempty"` + AvgLossIn *float32 `protobuf:"fixed32,23,opt,name=avg_loss_in,json=avgLossIn" json:"avg_loss_in,omitempty"` + AvgDataOut *float32 `protobuf:"fixed32,24,opt,name=avg_data_out,json=avgDataOut" json:"avg_data_out,omitempty"` + AvgDataIn *float32 `protobuf:"fixed32,25,opt,name=avg_data_in,json=avgDataIn" json:"avg_data_in,omitempty"` + TotalDataIn *uint64 `protobuf:"varint,26,opt,name=total_data_in,json=totalDataIn" json:"total_data_in,omitempty"` + TotalPacketsIn *uint64 `protobuf:"varint,27,opt,name=total_packets_in,json=totalPacketsIn" json:"total_packets_in,omitempty"` + TotalDataOut *uint64 `protobuf:"varint,28,opt,name=total_data_out,json=totalDataOut" json:"total_data_out,omitempty"` + TotalPacketsOut *uint64 `protobuf:"varint,29,opt,name=total_packets_out,json=totalPacketsOut" json:"total_packets_out,omitempty"` + Players []*CMsgServerNetworkStats_Player `protobuf:"bytes,30,rep,name=players" json:"players,omitempty"` +} + +func (x *CMsgServerNetworkStats) Reset() { + *x = CMsgServerNetworkStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerNetworkStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerNetworkStats) ProtoMessage() {} + +func (x *CMsgServerNetworkStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgServerNetworkStats.ProtoReflect.Descriptor instead. +func (*CMsgServerNetworkStats) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{55} +} + +func (x *CMsgServerNetworkStats) GetDedicated() bool { + if x != nil && x.Dedicated != nil { + return *x.Dedicated + } + return false +} + +func (x *CMsgServerNetworkStats) GetCpuUsage() int32 { + if x != nil && x.CpuUsage != nil { + return *x.CpuUsage + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetMemoryUsedMb() int32 { + if x != nil && x.MemoryUsedMb != nil { + return *x.MemoryUsedMb + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetMemoryFreeMb() int32 { + if x != nil && x.MemoryFreeMb != nil { + return *x.MemoryFreeMb + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetUptime() int32 { + if x != nil && x.Uptime != nil { + return *x.Uptime + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetSpawnCount() int32 { + if x != nil && x.SpawnCount != nil { + return *x.SpawnCount + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetNumClients() int32 { + if x != nil && x.NumClients != nil { + return *x.NumClients + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetNumBots() int32 { + if x != nil && x.NumBots != nil { + return *x.NumBots + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetNumSpectators() int32 { + if x != nil && x.NumSpectators != nil { + return *x.NumSpectators + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetNumTvRelays() int32 { + if x != nil && x.NumTvRelays != nil { + return *x.NumTvRelays + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetFps() float32 { + if x != nil && x.Fps != nil { + return *x.Fps + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetPorts() []*CMsgServerNetworkStats_Port { + if x != nil { + return x.Ports + } + return nil +} + +func (x *CMsgServerNetworkStats) GetAvgLatencyOut() float32 { + if x != nil && x.AvgLatencyOut != nil { + return *x.AvgLatencyOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgLatencyIn() float32 { + if x != nil && x.AvgLatencyIn != nil { + return *x.AvgLatencyIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgPacketsOut() float32 { + if x != nil && x.AvgPacketsOut != nil { + return *x.AvgPacketsOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgPacketsIn() float32 { + if x != nil && x.AvgPacketsIn != nil { + return *x.AvgPacketsIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgLossOut() float32 { + if x != nil && x.AvgLossOut != nil { + return *x.AvgLossOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgLossIn() float32 { + if x != nil && x.AvgLossIn != nil { + return *x.AvgLossIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgDataOut() float32 { + if x != nil && x.AvgDataOut != nil { + return *x.AvgDataOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetAvgDataIn() float32 { + if x != nil && x.AvgDataIn != nil { + return *x.AvgDataIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetTotalDataIn() uint64 { + if x != nil && x.TotalDataIn != nil { + return *x.TotalDataIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetTotalPacketsIn() uint64 { + if x != nil && x.TotalPacketsIn != nil { + return *x.TotalPacketsIn + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetTotalDataOut() uint64 { + if x != nil && x.TotalDataOut != nil { + return *x.TotalDataOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetTotalPacketsOut() uint64 { + if x != nil && x.TotalPacketsOut != nil { + return *x.TotalPacketsOut + } + return 0 +} + +func (x *CMsgServerNetworkStats) GetPlayers() []*CMsgServerNetworkStats_Player { + if x != nil { + return x.Players + } + return nil +} + +type CSVCMsg_HltvReplay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Delay *int32 `protobuf:"varint,1,opt,name=delay" json:"delay,omitempty"` + PrimaryTarget *int32 `protobuf:"varint,2,opt,name=primary_target,json=primaryTarget,def=-1" json:"primary_target,omitempty"` + ReplayStopAt *int32 `protobuf:"varint,3,opt,name=replay_stop_at,json=replayStopAt" json:"replay_stop_at,omitempty"` + ReplayStartAt *int32 `protobuf:"varint,4,opt,name=replay_start_at,json=replayStartAt" json:"replay_start_at,omitempty"` + ReplaySlowdownBegin *int32 `protobuf:"varint,5,opt,name=replay_slowdown_begin,json=replaySlowdownBegin" json:"replay_slowdown_begin,omitempty"` + ReplaySlowdownEnd *int32 `protobuf:"varint,6,opt,name=replay_slowdown_end,json=replaySlowdownEnd" json:"replay_slowdown_end,omitempty"` + ReplaySlowdownRate *float32 `protobuf:"fixed32,7,opt,name=replay_slowdown_rate,json=replaySlowdownRate" json:"replay_slowdown_rate,omitempty"` + Reason *int32 `protobuf:"varint,8,opt,name=reason" json:"reason,omitempty"` +} + +// Default values for CSVCMsg_HltvReplay fields. +const ( + Default_CSVCMsg_HltvReplay_PrimaryTarget = int32(-1) +) + +func (x *CSVCMsg_HltvReplay) Reset() { + *x = CSVCMsg_HltvReplay{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_HltvReplay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_HltvReplay) ProtoMessage() {} + +func (x *CSVCMsg_HltvReplay) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_HltvReplay.ProtoReflect.Descriptor instead. +func (*CSVCMsg_HltvReplay) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{56} +} + +func (x *CSVCMsg_HltvReplay) GetDelay() int32 { + if x != nil && x.Delay != nil { + return *x.Delay + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetPrimaryTarget() int32 { + if x != nil && x.PrimaryTarget != nil { + return *x.PrimaryTarget + } + return Default_CSVCMsg_HltvReplay_PrimaryTarget +} + +func (x *CSVCMsg_HltvReplay) GetReplayStopAt() int32 { + if x != nil && x.ReplayStopAt != nil { + return *x.ReplayStopAt + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetReplayStartAt() int32 { + if x != nil && x.ReplayStartAt != nil { + return *x.ReplayStartAt + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetReplaySlowdownBegin() int32 { + if x != nil && x.ReplaySlowdownBegin != nil { + return *x.ReplaySlowdownBegin + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetReplaySlowdownEnd() int32 { + if x != nil && x.ReplaySlowdownEnd != nil { + return *x.ReplaySlowdownEnd + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetReplaySlowdownRate() float32 { + if x != nil && x.ReplaySlowdownRate != nil { + return *x.ReplaySlowdownRate + } + return 0 +} + +func (x *CSVCMsg_HltvReplay) GetReason() int32 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +type CCLCMsg_HltvReplay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Request *int32 `protobuf:"varint,1,opt,name=request" json:"request,omitempty"` + SlowdownLength *float32 `protobuf:"fixed32,2,opt,name=slowdown_length,json=slowdownLength" json:"slowdown_length,omitempty"` + SlowdownRate *float32 `protobuf:"fixed32,3,opt,name=slowdown_rate,json=slowdownRate" json:"slowdown_rate,omitempty"` + PrimaryTarget *int32 `protobuf:"varint,4,opt,name=primary_target,json=primaryTarget,def=-1" json:"primary_target,omitempty"` + EventTime *float32 `protobuf:"fixed32,5,opt,name=event_time,json=eventTime" json:"event_time,omitempty"` +} + +// Default values for CCLCMsg_HltvReplay fields. +const ( + Default_CCLCMsg_HltvReplay_PrimaryTarget = int32(-1) +) + +func (x *CCLCMsg_HltvReplay) Reset() { + *x = CCLCMsg_HltvReplay{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_HltvReplay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_HltvReplay) ProtoMessage() {} + +func (x *CCLCMsg_HltvReplay) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_HltvReplay.ProtoReflect.Descriptor instead. +func (*CCLCMsg_HltvReplay) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{57} +} + +func (x *CCLCMsg_HltvReplay) GetRequest() int32 { + if x != nil && x.Request != nil { + return *x.Request + } + return 0 +} + +func (x *CCLCMsg_HltvReplay) GetSlowdownLength() float32 { + if x != nil && x.SlowdownLength != nil { + return *x.SlowdownLength + } + return 0 +} + +func (x *CCLCMsg_HltvReplay) GetSlowdownRate() float32 { + if x != nil && x.SlowdownRate != nil { + return *x.SlowdownRate + } + return 0 +} + +func (x *CCLCMsg_HltvReplay) GetPrimaryTarget() int32 { + if x != nil && x.PrimaryTarget != nil { + return *x.PrimaryTarget + } + return Default_CCLCMsg_HltvReplay_PrimaryTarget +} + +func (x *CCLCMsg_HltvReplay) GetEventTime() float32 { + if x != nil && x.EventTime != nil { + return *x.EventTime + } + return 0 +} + +type CSVCMsg_Broadcast_Command struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cmd *string `protobuf:"bytes,1,opt,name=cmd" json:"cmd,omitempty"` +} + +func (x *CSVCMsg_Broadcast_Command) Reset() { + *x = CSVCMsg_Broadcast_Command{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_Broadcast_Command) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_Broadcast_Command) ProtoMessage() {} + +func (x *CSVCMsg_Broadcast_Command) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_Broadcast_Command.ProtoReflect.Descriptor instead. +func (*CSVCMsg_Broadcast_Command) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{58} +} + +func (x *CSVCMsg_Broadcast_Command) GetCmd() string { + if x != nil && x.Cmd != nil { + return *x.Cmd + } + return "" +} + +type CCLCMsg_HltvFixupOperatorTick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tick *int32 `protobuf:"varint,1,opt,name=tick" json:"tick,omitempty"` + PropsData []byte `protobuf:"bytes,2,opt,name=props_data,json=propsData" json:"props_data,omitempty"` + Origin *CMsgVector `protobuf:"bytes,3,opt,name=origin" json:"origin,omitempty"` + EyeAngles *CMsgQAngle `protobuf:"bytes,4,opt,name=eye_angles,json=eyeAngles" json:"eye_angles,omitempty"` + ObserverMode *int32 `protobuf:"varint,5,opt,name=observer_mode,json=observerMode" json:"observer_mode,omitempty"` + CameramanScoreboard *bool `protobuf:"varint,6,opt,name=cameraman_scoreboard,json=cameramanScoreboard" json:"cameraman_scoreboard,omitempty"` + ObserverTarget *int32 `protobuf:"varint,7,opt,name=observer_target,json=observerTarget" json:"observer_target,omitempty"` + ViewOffset *CMsgVector `protobuf:"bytes,8,opt,name=view_offset,json=viewOffset" json:"view_offset,omitempty"` +} + +func (x *CCLCMsg_HltvFixupOperatorTick) Reset() { + *x = CCLCMsg_HltvFixupOperatorTick{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CCLCMsg_HltvFixupOperatorTick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CCLCMsg_HltvFixupOperatorTick) ProtoMessage() {} + +func (x *CCLCMsg_HltvFixupOperatorTick) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CCLCMsg_HltvFixupOperatorTick.ProtoReflect.Descriptor instead. +func (*CCLCMsg_HltvFixupOperatorTick) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{59} +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetTick() int32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetPropsData() []byte { + if x != nil { + return x.PropsData + } + return nil +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetEyeAngles() *CMsgQAngle { + if x != nil { + return x.EyeAngles + } + return nil +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetObserverMode() int32 { + if x != nil && x.ObserverMode != nil { + return *x.ObserverMode + } + return 0 +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetCameramanScoreboard() bool { + if x != nil && x.CameramanScoreboard != nil { + return *x.CameramanScoreboard + } + return false +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetObserverTarget() int32 { + if x != nil && x.ObserverTarget != nil { + return *x.ObserverTarget + } + return 0 +} + +func (x *CCLCMsg_HltvFixupOperatorTick) GetViewOffset() *CMsgVector { + if x != nil { + return x.ViewOffset + } + return nil +} + +type CSVCMsg_HltvFixupOperatorStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mode *uint32 `protobuf:"varint,1,opt,name=mode" json:"mode,omitempty"` + OverrideOperatorName *string `protobuf:"bytes,2,opt,name=override_operator_name,json=overrideOperatorName" json:"override_operator_name,omitempty"` +} + +func (x *CSVCMsg_HltvFixupOperatorStatus) Reset() { + *x = CSVCMsg_HltvFixupOperatorStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_HltvFixupOperatorStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_HltvFixupOperatorStatus) ProtoMessage() {} + +func (x *CSVCMsg_HltvFixupOperatorStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_HltvFixupOperatorStatus.ProtoReflect.Descriptor instead. +func (*CSVCMsg_HltvFixupOperatorStatus) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{60} +} + +func (x *CSVCMsg_HltvFixupOperatorStatus) GetMode() uint32 { + if x != nil && x.Mode != nil { + return *x.Mode + } + return 0 +} + +func (x *CSVCMsg_HltvFixupOperatorStatus) GetOverrideOperatorName() string { + if x != nil && x.OverrideOperatorName != nil { + return *x.OverrideOperatorName + } + return "" +} + +type CSVCMsg_ClassInfoClassT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClassId *int32 `protobuf:"varint,1,opt,name=class_id,json=classId" json:"class_id,omitempty"` + ClassName *string `protobuf:"bytes,3,opt,name=class_name,json=className" json:"class_name,omitempty"` +} + +func (x *CSVCMsg_ClassInfoClassT) Reset() { + *x = CSVCMsg_ClassInfoClassT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_ClassInfoClassT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_ClassInfoClassT) ProtoMessage() {} + +func (x *CSVCMsg_ClassInfoClassT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_ClassInfoClassT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_ClassInfoClassT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *CSVCMsg_ClassInfoClassT) GetClassId() int32 { + if x != nil && x.ClassId != nil { + return *x.ClassId + } + return 0 +} + +func (x *CSVCMsg_ClassInfoClassT) GetClassName() string { + if x != nil && x.ClassName != nil { + return *x.ClassName + } + return "" +} + +type CSVCMsg_SoundsSounddataT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginX *int32 `protobuf:"zigzag32,1,opt,name=origin_x,json=originX" json:"origin_x,omitempty"` + OriginY *int32 `protobuf:"zigzag32,2,opt,name=origin_y,json=originY" json:"origin_y,omitempty"` + OriginZ *int32 `protobuf:"zigzag32,3,opt,name=origin_z,json=originZ" json:"origin_z,omitempty"` + Volume *uint32 `protobuf:"varint,4,opt,name=volume" json:"volume,omitempty"` + DelayValue *float32 `protobuf:"fixed32,5,opt,name=delay_value,json=delayValue" json:"delay_value,omitempty"` + SequenceNumber *int32 `protobuf:"varint,6,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"` + EntityIndex *int32 `protobuf:"varint,7,opt,name=entity_index,json=entityIndex,def=-1" json:"entity_index,omitempty"` + Channel *int32 `protobuf:"varint,8,opt,name=channel" json:"channel,omitempty"` + Pitch *int32 `protobuf:"varint,9,opt,name=pitch" json:"pitch,omitempty"` + Flags *int32 `protobuf:"varint,10,opt,name=flags" json:"flags,omitempty"` + SoundNum *uint32 `protobuf:"varint,11,opt,name=sound_num,json=soundNum" json:"sound_num,omitempty"` + SoundNumHandle *uint32 `protobuf:"fixed32,12,opt,name=sound_num_handle,json=soundNumHandle" json:"sound_num_handle,omitempty"` + SpeakerEntity *int32 `protobuf:"varint,13,opt,name=speaker_entity,json=speakerEntity" json:"speaker_entity,omitempty"` + RandomSeed *int32 `protobuf:"varint,14,opt,name=random_seed,json=randomSeed" json:"random_seed,omitempty"` + SoundLevel *int32 `protobuf:"varint,15,opt,name=sound_level,json=soundLevel" json:"sound_level,omitempty"` + IsSentence *bool `protobuf:"varint,16,opt,name=is_sentence,json=isSentence" json:"is_sentence,omitempty"` + IsAmbient *bool `protobuf:"varint,17,opt,name=is_ambient,json=isAmbient" json:"is_ambient,omitempty"` + Guid *uint32 `protobuf:"varint,18,opt,name=guid" json:"guid,omitempty"` + SoundResourceId *uint64 `protobuf:"fixed64,19,opt,name=sound_resource_id,json=soundResourceId" json:"sound_resource_id,omitempty"` +} + +// Default values for CSVCMsg_SoundsSounddataT fields. +const ( + Default_CSVCMsg_SoundsSounddataT_EntityIndex = int32(-1) +) + +func (x *CSVCMsg_SoundsSounddataT) Reset() { + *x = CSVCMsg_SoundsSounddataT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SoundsSounddataT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SoundsSounddataT) ProtoMessage() {} + +func (x *CSVCMsg_SoundsSounddataT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SoundsSounddataT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SoundsSounddataT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{22, 0} +} + +func (x *CSVCMsg_SoundsSounddataT) GetOriginX() int32 { + if x != nil && x.OriginX != nil { + return *x.OriginX + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetOriginY() int32 { + if x != nil && x.OriginY != nil { + return *x.OriginY + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetOriginZ() int32 { + if x != nil && x.OriginZ != nil { + return *x.OriginZ + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetVolume() uint32 { + if x != nil && x.Volume != nil { + return *x.Volume + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetDelayValue() float32 { + if x != nil && x.DelayValue != nil { + return *x.DelayValue + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSequenceNumber() int32 { + if x != nil && x.SequenceNumber != nil { + return *x.SequenceNumber + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetEntityIndex() int32 { + if x != nil && x.EntityIndex != nil { + return *x.EntityIndex + } + return Default_CSVCMsg_SoundsSounddataT_EntityIndex +} + +func (x *CSVCMsg_SoundsSounddataT) GetChannel() int32 { + if x != nil && x.Channel != nil { + return *x.Channel + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetPitch() int32 { + if x != nil && x.Pitch != nil { + return *x.Pitch + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSoundNum() uint32 { + if x != nil && x.SoundNum != nil { + return *x.SoundNum + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSoundNumHandle() uint32 { + if x != nil && x.SoundNumHandle != nil { + return *x.SoundNumHandle + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSpeakerEntity() int32 { + if x != nil && x.SpeakerEntity != nil { + return *x.SpeakerEntity + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetRandomSeed() int32 { + if x != nil && x.RandomSeed != nil { + return *x.RandomSeed + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSoundLevel() int32 { + if x != nil && x.SoundLevel != nil { + return *x.SoundLevel + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetIsSentence() bool { + if x != nil && x.IsSentence != nil { + return *x.IsSentence + } + return false +} + +func (x *CSVCMsg_SoundsSounddataT) GetIsAmbient() bool { + if x != nil && x.IsAmbient != nil { + return *x.IsAmbient + } + return false +} + +func (x *CSVCMsg_SoundsSounddataT) GetGuid() uint32 { + if x != nil && x.Guid != nil { + return *x.Guid + } + return 0 +} + +func (x *CSVCMsg_SoundsSounddataT) GetSoundResourceId() uint64 { + if x != nil && x.SoundResourceId != nil { + return *x.SoundResourceId + } + return 0 +} + +type CSVCMsg_SendTableSendpropT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + VarName *string `protobuf:"bytes,2,opt,name=var_name,json=varName" json:"var_name,omitempty"` + Flags *int32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` + Priority *int32 `protobuf:"varint,4,opt,name=priority" json:"priority,omitempty"` + DtName *string `protobuf:"bytes,5,opt,name=dt_name,json=dtName" json:"dt_name,omitempty"` + NumElements *int32 `protobuf:"varint,6,opt,name=num_elements,json=numElements" json:"num_elements,omitempty"` + LowValue *float32 `protobuf:"fixed32,7,opt,name=low_value,json=lowValue" json:"low_value,omitempty"` + HighValue *float32 `protobuf:"fixed32,8,opt,name=high_value,json=highValue" json:"high_value,omitempty"` + NumBits *int32 `protobuf:"varint,9,opt,name=num_bits,json=numBits" json:"num_bits,omitempty"` +} + +func (x *CSVCMsg_SendTableSendpropT) Reset() { + *x = CSVCMsg_SendTableSendpropT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_SendTableSendpropT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_SendTableSendpropT) ProtoMessage() {} + +func (x *CSVCMsg_SendTableSendpropT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_SendTableSendpropT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_SendTableSendpropT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{32, 0} +} + +func (x *CSVCMsg_SendTableSendpropT) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetVarName() string { + if x != nil && x.VarName != nil { + return *x.VarName + } + return "" +} + +func (x *CSVCMsg_SendTableSendpropT) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetPriority() int32 { + if x != nil && x.Priority != nil { + return *x.Priority + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetDtName() string { + if x != nil && x.DtName != nil { + return *x.DtName + } + return "" +} + +func (x *CSVCMsg_SendTableSendpropT) GetNumElements() int32 { + if x != nil && x.NumElements != nil { + return *x.NumElements + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetLowValue() float32 { + if x != nil && x.LowValue != nil { + return *x.LowValue + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetHighValue() float32 { + if x != nil && x.HighValue != nil { + return *x.HighValue + } + return 0 +} + +func (x *CSVCMsg_SendTableSendpropT) GetNumBits() int32 { + if x != nil && x.NumBits != nil { + return *x.NumBits + } + return 0 +} + +type CSVCMsg_GameEventListKeyT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` +} + +func (x *CSVCMsg_GameEventListKeyT) Reset() { + *x = CSVCMsg_GameEventListKeyT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameEventListKeyT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameEventListKeyT) ProtoMessage() {} + +func (x *CSVCMsg_GameEventListKeyT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameEventListKeyT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameEventListKeyT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{33, 0} +} + +func (x *CSVCMsg_GameEventListKeyT) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CSVCMsg_GameEventListKeyT) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type CSVCMsg_GameEventListDescriptorT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eventid *int32 `protobuf:"varint,1,opt,name=eventid" json:"eventid,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Keys []*CSVCMsg_GameEventListKeyT `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CSVCMsg_GameEventListDescriptorT) Reset() { + *x = CSVCMsg_GameEventListDescriptorT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameEventListDescriptorT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameEventListDescriptorT) ProtoMessage() {} + +func (x *CSVCMsg_GameEventListDescriptorT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameEventListDescriptorT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameEventListDescriptorT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{33, 1} +} + +func (x *CSVCMsg_GameEventListDescriptorT) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CSVCMsg_GameEventListDescriptorT) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CSVCMsg_GameEventListDescriptorT) GetKeys() []*CSVCMsg_GameEventListKeyT { + if x != nil { + return x.Keys + } + return nil +} + +type CSVCMsg_PacketEntitiesCommandQueueInfoT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommandsQueued *uint32 `protobuf:"varint,1,opt,name=commands_queued,json=commandsQueued" json:"commands_queued,omitempty"` + CommandQueueDesiredSize *uint32 `protobuf:"varint,2,opt,name=command_queue_desired_size,json=commandQueueDesiredSize" json:"command_queue_desired_size,omitempty"` + StarvedCommandTicks *uint32 `protobuf:"varint,3,opt,name=starved_command_ticks,json=starvedCommandTicks" json:"starved_command_ticks,omitempty"` + TimeDilationPercent *float32 `protobuf:"fixed32,4,opt,name=time_dilation_percent,json=timeDilationPercent" json:"time_dilation_percent,omitempty"` + DiscardedCommandTicks *uint32 `protobuf:"varint,5,opt,name=discarded_command_ticks,json=discardedCommandTicks" json:"discarded_command_ticks,omitempty"` +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) Reset() { + *x = CSVCMsg_PacketEntitiesCommandQueueInfoT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_PacketEntitiesCommandQueueInfoT) ProtoMessage() {} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_PacketEntitiesCommandQueueInfoT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_PacketEntitiesCommandQueueInfoT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{34, 0} +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetCommandsQueued() uint32 { + if x != nil && x.CommandsQueued != nil { + return *x.CommandsQueued + } + return 0 +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetCommandQueueDesiredSize() uint32 { + if x != nil && x.CommandQueueDesiredSize != nil { + return *x.CommandQueueDesiredSize + } + return 0 +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetStarvedCommandTicks() uint32 { + if x != nil && x.StarvedCommandTicks != nil { + return *x.StarvedCommandTicks + } + return 0 +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetTimeDilationPercent() float32 { + if x != nil && x.TimeDilationPercent != nil { + return *x.TimeDilationPercent + } + return 0 +} + +func (x *CSVCMsg_PacketEntitiesCommandQueueInfoT) GetDiscardedCommandTicks() uint32 { + if x != nil && x.DiscardedCommandTicks != nil { + return *x.DiscardedCommandTicks + } + return 0 +} + +type CSVCMsg_PacketEntitiesAlternateBaselineT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityIndex *int32 `protobuf:"varint,1,opt,name=entity_index,json=entityIndex" json:"entity_index,omitempty"` + BaselineIndex *int32 `protobuf:"varint,2,opt,name=baseline_index,json=baselineIndex" json:"baseline_index,omitempty"` +} + +func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) Reset() { + *x = CSVCMsg_PacketEntitiesAlternateBaselineT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_PacketEntitiesAlternateBaselineT) ProtoMessage() {} + +func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_PacketEntitiesAlternateBaselineT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_PacketEntitiesAlternateBaselineT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{34, 1} +} + +func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) GetEntityIndex() int32 { + if x != nil && x.EntityIndex != nil { + return *x.EntityIndex + } + return 0 +} + +func (x *CSVCMsg_PacketEntitiesAlternateBaselineT) GetBaselineIndex() int32 { + if x != nil && x.BaselineIndex != nil { + return *x.BaselineIndex + } + return 0 +} + +type ProtoFlattenedSerializerFieldTPolymorphicFieldT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PolymorphicFieldSerializerNameSym *int32 `protobuf:"varint,1,opt,name=polymorphic_field_serializer_name_sym,json=polymorphicFieldSerializerNameSym" json:"polymorphic_field_serializer_name_sym,omitempty"` + PolymorphicFieldSerializerVersion *int32 `protobuf:"varint,2,opt,name=polymorphic_field_serializer_version,json=polymorphicFieldSerializerVersion" json:"polymorphic_field_serializer_version,omitempty"` +} + +func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) Reset() { + *x = ProtoFlattenedSerializerFieldTPolymorphicFieldT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtoFlattenedSerializerFieldTPolymorphicFieldT) ProtoMessage() {} + +func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtoFlattenedSerializerFieldTPolymorphicFieldT.ProtoReflect.Descriptor instead. +func (*ProtoFlattenedSerializerFieldTPolymorphicFieldT) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{49, 0} +} + +func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) GetPolymorphicFieldSerializerNameSym() int32 { + if x != nil && x.PolymorphicFieldSerializerNameSym != nil { + return *x.PolymorphicFieldSerializerNameSym + } + return 0 +} + +func (x *ProtoFlattenedSerializerFieldTPolymorphicFieldT) GetPolymorphicFieldSerializerVersion() int32 { + if x != nil && x.PolymorphicFieldSerializerVersion != nil { + return *x.PolymorphicFieldSerializerVersion + } + return 0 +} + +type CMsgServerNetworkStats_Port struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Port *int32 `protobuf:"varint,1,opt,name=port" json:"port,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` +} + +func (x *CMsgServerNetworkStats_Port) Reset() { + *x = CMsgServerNetworkStats_Port{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerNetworkStats_Port) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerNetworkStats_Port) ProtoMessage() {} + +func (x *CMsgServerNetworkStats_Port) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgServerNetworkStats_Port.ProtoReflect.Descriptor instead. +func (*CMsgServerNetworkStats_Port) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{55, 0} +} + +func (x *CMsgServerNetworkStats_Port) GetPort() int32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +func (x *CMsgServerNetworkStats_Port) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type CMsgServerNetworkStats_Player struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"varint,1,opt,name=steamid" json:"steamid,omitempty"` + RemoteAddr *string `protobuf:"bytes,2,opt,name=remote_addr,json=remoteAddr" json:"remote_addr,omitempty"` + PingStddevMs *int32 `protobuf:"varint,3,opt,name=ping_stddev_ms,json=pingStddevMs" json:"ping_stddev_ms,omitempty"` + PingAvgMs *int32 `protobuf:"varint,4,opt,name=ping_avg_ms,json=pingAvgMs" json:"ping_avg_ms,omitempty"` + PacketLossPct *float32 `protobuf:"fixed32,5,opt,name=packet_loss_pct,json=packetLossPct" json:"packet_loss_pct,omitempty"` + IsBot *bool `protobuf:"varint,6,opt,name=is_bot,json=isBot" json:"is_bot,omitempty"` +} + +func (x *CMsgServerNetworkStats_Player) Reset() { + *x = CMsgServerNetworkStats_Player{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_netmessages_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgServerNetworkStats_Player) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgServerNetworkStats_Player) ProtoMessage() {} + +func (x *CMsgServerNetworkStats_Player) ProtoReflect() protoreflect.Message { + mi := &file_s2_netmessages_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgServerNetworkStats_Player.ProtoReflect.Descriptor instead. +func (*CMsgServerNetworkStats_Player) Descriptor() ([]byte, []int) { + return file_s2_netmessages_proto_rawDescGZIP(), []int{55, 1} +} + +func (x *CMsgServerNetworkStats_Player) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgServerNetworkStats_Player) GetRemoteAddr() string { + if x != nil && x.RemoteAddr != nil { + return *x.RemoteAddr + } + return "" +} + +func (x *CMsgServerNetworkStats_Player) GetPingStddevMs() int32 { + if x != nil && x.PingStddevMs != nil { + return *x.PingStddevMs + } + return 0 +} + +func (x *CMsgServerNetworkStats_Player) GetPingAvgMs() int32 { + if x != nil && x.PingAvgMs != nil { + return *x.PingAvgMs + } + return 0 +} + +func (x *CMsgServerNetworkStats_Player) GetPacketLossPct() float32 { + if x != nil && x.PacketLossPct != nil { + return *x.PacketLossPct + } + return 0 +} + +func (x *CMsgServerNetworkStats_Player) GetIsBot() bool { + if x != nil && x.IsBot != nil { + return *x.IsBot + } + return false +} + +var File_s2_netmessages_proto protoreflect.FileDescriptor + +var file_s2_netmessages_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x1a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, + 0x65, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, + 0x12, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0c, 0x73, 0x65, 0x6e, + 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x72, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x69, 0x73, 0x5f, 0x68, 0x6c, 0x74, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x48, 0x6c, 0x74, 0x76, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0c, 0x43, 0x43, 0x4c, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x6c, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, 0x3a, 0x16, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x52, 0x06, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x11, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, + 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, + 0x6b, 0x22, 0x5b, 0x0a, 0x13, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x61, 0x73, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x1f, 0x0a, + 0x0b, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x72, 0x22, 0x35, + 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x7d, 0x0a, 0x18, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x52, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x0a, + 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, + 0x63, 0x22, 0x35, 0x0a, 0x17, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x6f, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3c, 0x0a, 0x1a, 0x43, 0x43, 0x4c, 0x43, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x15, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x33, + 0x0a, 0x1d, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x22, 0x36, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x43, + 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, 0x6e, + 0x67, 0x22, 0x9b, 0x01, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x3a, 0x08, 0x52, 0x50, 0x5f, 0x50, 0x41, + 0x55, 0x53, 0x45, 0x52, 0x09, 0x70, 0x61, 0x75, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, + 0x2a, 0x0a, 0x14, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, + 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x19, 0x43, + 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xec, + 0x04, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x68, 0x6c, + 0x74, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, 0x6c, 0x74, 0x76, + 0x12, 0x11, 0x0a, 0x04, 0x63, 0x5f, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x63, 0x4f, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, + 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, + 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6b, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6b, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x7b, 0x0a, 0x13, + 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x67, 0x61, 0x6d, + 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, 0xe2, 0x01, + 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, + 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x43, 0x0a, + 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x22, 0x60, + 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x23, 0x0a, 0x0d, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x69, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xf6, 0x05, 0x0a, 0x0e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x5d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, + 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x2e, 0x73, 0x6f, 0x75, 0x6e, 0x64, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, 0xdd, + 0x04, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x59, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x7a, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5a, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x25, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x70, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, + 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, + 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x75, + 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x73, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x22, 0x9c, + 0x01, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x67, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, + 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x50, 0x46, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x52, + 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x50, 0x0a, + 0x0f, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x25, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, + 0x7b, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x69, 0x78, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, + 0x4b, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, + 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x65, 0x0a, 0x16, + 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x68, 0x61, 0x69, + 0x72, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x05, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x22, 0xf6, 0x01, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x70, 0x6f, + 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, + 0x64, 0x65, 0x63, 0x61, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x25, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xc1, 0x01, 0x0a, + 0x13, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x12, 0x6f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x45, + 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x17, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x50, 0x4c, 0x49, + 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x41, 0x44, 0x44, 0x55, 0x53, 0x45, 0x52, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, + 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x4b, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x43, + 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, + 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, + 0x0c, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x1f, 0x0a, + 0x0b, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, + 0x0a, 0x0f, 0x6d, 0x65, 0x6e, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6d, 0x65, 0x6e, 0x75, 0x4b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x13, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0xd7, 0x03, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, + 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x45, + 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x74, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x65, 0x64, + 0x73, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x5d, 0x0a, + 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, + 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x70, + 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x1a, 0x80, 0x02, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, + 0x64, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x77, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x69, 0x74, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x69, 0x74, 0x73, 0x22, + 0xd4, 0x02, 0x0a, 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x2f, 0x0a, 0x05, 0x6b, 0x65, + 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x98, 0x01, 0x0a, 0x0c, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xbe, 0x09, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x46, 0x0a, 0x1f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x6d, 0x61, + 0x78, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6d, 0x64, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, + 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x54, 0x69, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x12, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x87, 0x01, 0x0a, + 0x13, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x61, 0x6c, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x74, 0x52, 0x12, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x1a, 0x9c, 0x02, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x69, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, + 0x17, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, + 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x1a, 0x60, 0x0a, 0x14, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x74, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x74, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x54, 0x65, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, + 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x99, 0x03, + 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x53, 0x69, + 0x7a, 0x65, 0x42, 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, + 0x11, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x14, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72, 0x69, 0x6e, 0x74, + 0x42, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x43, 0x53, + 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x11, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, + 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x05, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x06, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x69, + 0x6d, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, + 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x61, 0x75, 0x64, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x22, 0x66, 0x0a, 0x16, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, + 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, + 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, 0x16, 0x43, 0x53, 0x56, + 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x76, 0x0a, 0x12, 0x43, + 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x78, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, + 0x69, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x15, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x19, 0x0a, 0x08, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x53, 0x56, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x52, + 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x22, 0x54, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x67, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x96, 0x02, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, + 0x2d, 0x31, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x4b, 0x0a, 0x03, 0x69, 0x70, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x03, 0x69, 0x70, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x79, 0x5f, 0x68, 0x65, + 0x61, 0x72, 0x5f, 0x79, 0x6f, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x68, + 0x65, 0x79, 0x48, 0x65, 0x61, 0x72, 0x59, 0x6f, 0x75, 0x12, 0x22, 0x0a, 0x0d, 0x79, 0x6f, 0x75, + 0x5f, 0x68, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x79, 0x6f, 0x75, 0x48, 0x65, 0x61, 0x72, 0x54, 0x68, 0x65, 0x6d, 0x12, 0x30, 0x0a, + 0x14, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x22, + 0x61, 0x0a, 0x10, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x65, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x22, 0x38, 0x0a, 0x1c, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6c, + 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x05, 0x0a, + 0x1f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, + 0x79, 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, + 0x79, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x79, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x39, 0x0a, 0x19, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x38, 0x0a, 0x18, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x72, + 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x76, 0x61, 0x72, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x53, 0x79, + 0x6d, 0x12, 0x8b, 0x01, 0x0a, 0x11, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, + 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, + 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, + 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x52, 0x10, 0x70, + 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, + 0xb8, 0x01, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x12, 0x50, 0x0a, 0x25, 0x70, 0x6f, 0x6c, 0x79, 0x6d, + 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, 0x70, + 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x4f, 0x0a, 0x24, 0x70, 0x6f, 0x6c, + 0x79, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x70, 0x6f, 0x6c, 0x79, 0x6d, 0x6f, 0x72, + 0x70, 0x68, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x79, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x79, 0x6d, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x84, 0x02, 0x0a, 0x1b, + 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, + 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x67, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x74, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x62, + 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x22, 0x27, 0x0a, 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, + 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x1e, + 0x43, 0x42, 0x69, 0x64, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x74, 0x6f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x74, 0x6f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x66, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x75, 0x66, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, + 0x67, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x3f, 0x0a, 0x1b, 0x43, 0x42, 0x69, 0x64, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x22, 0xee, 0x09, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, + 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, + 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x65, 0x64, 0x4d, 0x62, 0x12, 0x24, 0x0a, + 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6d, 0x62, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x65, 0x4d, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, + 0x22, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x54, 0x76, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x70, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x03, 0x66, 0x70, 0x73, 0x12, 0x5c, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76, + 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x61, + 0x76, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x69, 0x6e, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, + 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76, 0x67, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x76, 0x67, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, 0x6e, 0x12, + 0x20, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x4f, 0x75, + 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x69, 0x6e, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x73, 0x73, 0x49, + 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x75, + 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x4f, 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x69, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x49, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x49, + 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x6f, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x4f, 0x75, 0x74, 0x12, 0x62, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x1e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xc8, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, + 0x0e, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x64, 0x64, 0x65, 0x76, 0x5f, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x64, 0x64, 0x65, + 0x76, 0x4d, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x67, 0x5f, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x76, + 0x67, 0x4d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, + 0x73, 0x73, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x50, 0x63, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x69, + 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x42, + 0x6f, 0x74, 0x22, 0xd1, 0x02, 0x0a, 0x12, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, + 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, + 0x29, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0d, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x74, + 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, + 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x13, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, + 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x14, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x43, 0x43, 0x4c, 0x43, 0x4d, + 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x77, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x64, 0x6f, 0x77, + 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, + 0x31, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x2d, 0x0a, 0x19, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0xd0, + 0x03, 0x0a, 0x1d, 0x43, 0x43, 0x4c, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, + 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x63, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x74, 0x69, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x12, 0x54, 0x0a, 0x0a, 0x65, 0x79, 0x65, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x09, 0x65, + 0x79, 0x65, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, + 0x14, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x6d, 0x61, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x22, 0x6b, 0x0a, 0x1f, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6c, 0x74, + 0x76, 0x46, 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x8e, + 0x03, 0x0a, 0x0c, 0x43, 0x4c, 0x43, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0x14, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x6c, 0x63, 0x5f, 0x4d, 0x6f, 0x76, 0x65, 0x10, + 0x15, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6c, 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x63, 0x6c, 0x63, 0x5f, 0x42, 0x61, 0x73, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x63, 0x6b, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, + 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x18, 0x12, + 0x18, 0x0a, 0x14, 0x63, 0x6c, 0x63, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x43, 0x76, + 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, + 0x5f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x52, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x10, 0x1a, 0x12, + 0x17, 0x0a, 0x13, 0x63, 0x6c, 0x63, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x1a, 0x0a, 0x16, 0x63, 0x6c, 0x63, 0x5f, + 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x1c, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x6c, 0x63, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x1d, 0x12, 0x1d, 0x0a, 0x19, 0x63, + 0x6c, 0x63, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, + 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x1f, + 0x12, 0x12, 0x0a, 0x0e, 0x63, 0x6c, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x69, + 0x6e, 0x67, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, 0x63, 0x5f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x21, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x6c, + 0x63, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x22, + 0x12, 0x19, 0x0a, 0x15, 0x63, 0x6c, 0x63, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0x23, 0x12, 0x12, 0x0a, 0x0e, 0x63, + 0x6c, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x10, 0x24, 0x2a, + 0x99, 0x05, 0x0a, 0x0c, 0x53, 0x56, 0x43, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0x28, 0x12, 0x1b, 0x0a, 0x17, 0x73, 0x76, 0x63, 0x5f, 0x46, 0x6c, 0x61, 0x74, + 0x74, 0x65, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x10, + 0x29, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0x2a, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x2c, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x2d, 0x12, 0x11, 0x0a, 0x0d, + 0x73, 0x76, 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x2e, 0x12, + 0x11, 0x0a, 0x0d, 0x73, 0x76, 0x63, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x10, 0x2f, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x10, + 0x30, 0x12, 0x0e, 0x0a, 0x0a, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x10, + 0x31, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x10, 0x32, 0x12, 0x1c, 0x0a, 0x18, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, + 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x10, 0x33, + 0x12, 0x14, 0x0a, 0x10, 0x73, 0x76, 0x63, 0x5f, 0x43, 0x6d, 0x64, 0x4b, 0x65, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x34, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x42, 0x53, + 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x10, 0x35, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, + 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x36, 0x12, 0x16, 0x0a, + 0x12, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x10, 0x37, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x74, 0x63, 0x68, 0x10, 0x38, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x76, 0x63, 0x5f, 0x4d, + 0x65, 0x6e, 0x75, 0x10, 0x39, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x76, 0x63, 0x5f, 0x47, 0x65, 0x74, + 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x3a, 0x12, 0x11, 0x0a, 0x0d, 0x73, + 0x76, 0x63, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x3b, 0x12, 0x10, + 0x0a, 0x0c, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x3c, + 0x12, 0x16, 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x76, 0x63, 0x5f, + 0x48, 0x4c, 0x54, 0x56, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x3e, 0x12, 0x15, 0x0a, 0x11, + 0x73, 0x76, 0x63, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x10, 0x3f, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x76, 0x63, 0x5f, 0x46, 0x75, 0x6c, 0x6c, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x10, 0x46, 0x12, 0x19, 0x0a, 0x15, 0x73, + 0x76, 0x63, 0x5f, 0x52, 0x63, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x76, 0x63, 0x5f, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x73, + 0x76, 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x10, 0x49, 0x12, + 0x19, 0x0a, 0x15, 0x73, 0x76, 0x63, 0x5f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, 0x4a, 0x12, 0x1f, 0x0a, 0x1b, 0x73, 0x76, + 0x63, 0x5f, 0x48, 0x6c, 0x74, 0x76, 0x46, 0x69, 0x78, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x4b, 0x2a, 0x4c, 0x0a, 0x11, 0x56, + 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x74, + 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, + 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, + 0x56, 0x4f, 0x49, 0x43, 0x45, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x2a, 0x42, 0x0a, 0x0e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x12, 0x0c, 0x0a, 0x08, 0x52, + 0x50, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x50, 0x5f, + 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x50, 0x5f, + 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x02, 0x2a, 0x1d, 0x0a, + 0x0c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, + 0x09, 0x50, 0x46, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00, 0x2a, 0x56, 0x0a, 0x17, + 0x45, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x53, 0x47, 0x5f, 0x53, + 0x50, 0x4c, 0x49, 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x41, 0x44, 0x44, 0x55, 0x53, + 0x45, 0x52, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x50, 0x4c, 0x49, + 0x54, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x55, 0x53, + 0x45, 0x52, 0x10, 0x01, 0x2a, 0xb3, 0x01, 0x0a, 0x15, 0x45, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, + 0x0a, 0x21, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x43, + 0x76, 0x61, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x22, 0x0a, + 0x1e, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x6f, 0x74, 0x41, 0x43, 0x76, 0x61, 0x72, 0x10, + 0x02, 0x12, 0x27, 0x0a, 0x23, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x76, 0x61, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x43, 0x76, 0x61, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x68, 0x0a, 0x0b, 0x44, 0x49, + 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x41, + 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x53, 0x47, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x49, 0x41, + 0x4c, 0x4f, 0x47, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x49, + 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, + 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x03, 0x12, 0x15, 0x0a, + 0x11, 0x44, 0x49, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x53, 0x4b, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x10, 0x04, 0x2a, 0x2b, 0x0a, 0x19, 0x53, 0x56, 0x43, 0x5f, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x5f, 0x4c, 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x79, 0x12, 0x0e, 0x0a, 0x09, 0x73, 0x76, 0x63, 0x5f, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x10, 0xd8, + 0x04, 0x2a, 0x61, 0x0a, 0x16, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x62, + 0x69, 0x5f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x47, 0x61, 0x6d, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x62, 0x69, 0x5f, 0x52, + 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x69, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x10, 0x12, 0x2a, 0x4d, 0x0a, 0x23, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x4c, + 0x6f, 0x77, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x11, 0x0a, 0x0c, 0x62, + 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xbc, 0x05, 0x12, 0x13, + 0x0a, 0x0e, 0x62, 0x69, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x10, 0xbd, 0x05, 0x2a, 0xa1, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x50, + 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, + 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, + 0x49, 0x43, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x55, 0x43, 0x4b, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x5f, + 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, + 0x14, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x49, + 0x43, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x04, +} + +var ( + file_s2_netmessages_proto_rawDescOnce sync.Once + file_s2_netmessages_proto_rawDescData = file_s2_netmessages_proto_rawDesc +) + +func file_s2_netmessages_proto_rawDescGZIP() []byte { + file_s2_netmessages_proto_rawDescOnce.Do(func() { + file_s2_netmessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_netmessages_proto_rawDescData) + }) + return file_s2_netmessages_proto_rawDescData +} + +var file_s2_netmessages_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_s2_netmessages_proto_msgTypes = make([]protoimpl.MessageInfo, 71) +var file_s2_netmessages_proto_goTypes = []interface{}{ + (CLC_Messages)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.CLC_Messages + (SVC_Messages)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.SVC_Messages + (VoiceDataFormatT)(0), // 2: com.github.markus_wa.demoinfocs_golang.s2.VoiceDataFormat_t + (RequestPauseT)(0), // 3: com.github.markus_wa.demoinfocs_golang.s2.RequestPause_t + (PrefetchType)(0), // 4: com.github.markus_wa.demoinfocs_golang.s2.PrefetchType + (ESplitScreenMessageType)(0), // 5: com.github.markus_wa.demoinfocs_golang.s2.ESplitScreenMessageType + (EQueryCvarValueStatus)(0), // 6: com.github.markus_wa.demoinfocs_golang.s2.EQueryCvarValueStatus + (DIALOG_TYPE)(0), // 7: com.github.markus_wa.demoinfocs_golang.s2.DIALOG_TYPE + (SVC_Messages_LowFrequency)(0), // 8: com.github.markus_wa.demoinfocs_golang.s2.SVC_Messages_LowFrequency + (Bidirectional_Messages)(0), // 9: com.github.markus_wa.demoinfocs_golang.s2.Bidirectional_Messages + (Bidirectional_Messages_LowFrequency)(0), // 10: com.github.markus_wa.demoinfocs_golang.s2.Bidirectional_Messages_LowFrequency + (ReplayEventTypeT)(0), // 11: com.github.markus_wa.demoinfocs_golang.s2.ReplayEventType_t + (*CCLCMsg_ClientInfo)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_ClientInfo + (*CCLCMsg_Move)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_Move + (*CMsgVoiceAudio)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgVoiceAudio + (*CCLCMsg_VoiceData)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_VoiceData + (*CCLCMsg_BaselineAck)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_BaselineAck + (*CCLCMsg_ListenEvents)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_ListenEvents + (*CCLCMsg_RespondCvarValue)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_RespondCvarValue + (*CCLCMsg_FileCRCCheck)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_FileCRCCheck + (*CCLCMsg_LoadingProgress)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_LoadingProgress + (*CCLCMsg_SplitPlayerConnect)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_SplitPlayerConnect + (*CCLCMsg_ClientMessage)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_ClientMessage + (*CCLCMsg_SplitPlayerDisconnect)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_SplitPlayerDisconnect + (*CCLCMsg_ServerStatus)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_ServerStatus + (*CCLCMsg_ServerPing)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_ServerPing + (*CCLCMsg_RequestPause)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_RequestPause + (*CCLCMsg_CmdKeyValues)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_CmdKeyValues + (*CCLCMsg_RconServerDetails)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_RconServerDetails + (*CSVCMsg_ServerInfo)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ServerInfo + (*CSVCMsg_ClassInfo)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ClassInfo + (*CSVCMsg_SetPause)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SetPause + (*CSVCMsg_VoiceInit)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_VoiceInit + (*CSVCMsg_Print)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Print + (*CSVCMsg_Sounds)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Sounds + (*CSVCMsg_Prefetch)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Prefetch + (*CSVCMsg_SetView)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SetView + (*CSVCMsg_FixAngle)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FixAngle + (*CSVCMsg_CrosshairAngle)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_CrosshairAngle + (*CSVCMsg_BSPDecal)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_BSPDecal + (*CSVCMsg_SplitScreen)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SplitScreen + (*CSVCMsg_GetCvarValue)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GetCvarValue + (*CSVCMsg_Menu)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Menu + (*CSVCMsg_UserMessage)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_UserMessage + (*CSVCMsg_SendTable)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SendTable + (*CSVCMsg_GameEventList)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList + (*CSVCMsg_PacketEntities)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities + (*CSVCMsg_TempEntities)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_TempEntities + (*CSVCMsg_CreateStringTable)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_CreateStringTable + (*CSVCMsg_UpdateStringTable)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_UpdateStringTable + (*CSVCMsg_VoiceData)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_VoiceData + (*CSVCMsg_PacketReliable)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketReliable + (*CSVCMsg_FullFrameSplit)(nil), // 52: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FullFrameSplit + (*CSVCMsg_HLTVStatus)(nil), // 53: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_HLTVStatus + (*CSVCMsg_ServerSteamID)(nil), // 54: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ServerSteamID + (*CSVCMsg_CmdKeyValues)(nil), // 55: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_CmdKeyValues + (*CSVCMsg_RconServerDetails)(nil), // 56: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_RconServerDetails + (*CMsgIPCAddress)(nil), // 57: com.github.markus_wa.demoinfocs_golang.s2.CMsgIPCAddress + (*CMsgServerPeer)(nil), // 58: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerPeer + (*CSVCMsg_PeerList)(nil), // 59: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PeerList + (*CSVCMsg_ClearAllStringTables)(nil), // 60: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ClearAllStringTables + (*ProtoFlattenedSerializerFieldT)(nil), // 61: com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializerField_t + (*ProtoFlattenedSerializerT)(nil), // 62: com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializer_t + (*CSVCMsg_FlattenedSerializer)(nil), // 63: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FlattenedSerializer + (*CSVCMsg_StopSound)(nil), // 64: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_StopSound + (*CBidirMsg_RebroadcastGameEvent)(nil), // 65: com.github.markus_wa.demoinfocs_golang.s2.CBidirMsg_RebroadcastGameEvent + (*CBidirMsg_RebroadcastSource)(nil), // 66: com.github.markus_wa.demoinfocs_golang.s2.CBidirMsg_RebroadcastSource + (*CMsgServerNetworkStats)(nil), // 67: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats + (*CSVCMsg_HltvReplay)(nil), // 68: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_HltvReplay + (*CCLCMsg_HltvReplay)(nil), // 69: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_HltvReplay + (*CSVCMsg_Broadcast_Command)(nil), // 70: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Broadcast_Command + (*CCLCMsg_HltvFixupOperatorTick)(nil), // 71: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_HltvFixupOperatorTick + (*CSVCMsg_HltvFixupOperatorStatus)(nil), // 72: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_HltvFixupOperatorStatus + (*CSVCMsg_ClassInfoClassT)(nil), // 73: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ClassInfo.class_t + (*CSVCMsg_SoundsSounddataT)(nil), // 74: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Sounds.sounddata_t + (*CSVCMsg_SendTableSendpropT)(nil), // 75: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SendTable.sendprop_t + (*CSVCMsg_GameEventListKeyT)(nil), // 76: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.key_t + (*CSVCMsg_GameEventListDescriptorT)(nil), // 77: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.descriptor_t + (*CSVCMsg_PacketEntitiesCommandQueueInfoT)(nil), // 78: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.command_queue_info_t + (*CSVCMsg_PacketEntitiesAlternateBaselineT)(nil), // 79: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.alternate_baseline_t + (*ProtoFlattenedSerializerFieldTPolymorphicFieldT)(nil), // 80: com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializerField_t.polymorphic_field_t + (*CMsgServerNetworkStats_Port)(nil), // 81: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.Port + (*CMsgServerNetworkStats_Player)(nil), // 82: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.Player + (*CSVCMsg_GameSessionConfiguration)(nil), // 83: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameSessionConfiguration + (*CMsgQAngle)(nil), // 84: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + (*CMsgVector)(nil), // 85: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector +} +var file_s2_netmessages_proto_depIdxs = []int32{ + 2, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgVoiceAudio.format:type_name -> com.github.markus_wa.demoinfocs_golang.s2.VoiceDataFormat_t + 14, // 1: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_VoiceData.audio:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVoiceAudio + 3, // 2: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_RequestPause.pause_type:type_name -> com.github.markus_wa.demoinfocs_golang.s2.RequestPause_t + 83, // 3: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ServerInfo.game_session_config:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameSessionConfiguration + 73, // 4: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ClassInfo.classes:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_ClassInfo.class_t + 74, // 5: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Sounds.sounds:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Sounds.sounddata_t + 4, // 6: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_Prefetch.resource_type:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PrefetchType + 84, // 7: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FixAngle.angle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 84, // 8: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_CrosshairAngle.angle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 85, // 9: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_BSPDecal.pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 5, // 10: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SplitScreen.type:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ESplitScreenMessageType + 75, // 11: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SendTable.props:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_SendTable.sendprop_t + 77, // 12: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.descriptors:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.descriptor_t + 78, // 13: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.command_queue_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.command_queue_info_t + 79, // 14: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.alternate_baselines:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PacketEntities.alternate_baseline_t + 14, // 15: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_VoiceData.audio:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVoiceAudio + 57, // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerPeer.ipc:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgIPCAddress + 58, // 17: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_PeerList.peer:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgServerPeer + 80, // 18: com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializerField_t.polymorphic_types:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializerField_t.polymorphic_field_t + 62, // 19: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FlattenedSerializer.serializers:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializer_t + 61, // 20: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_FlattenedSerializer.fields:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ProtoFlattenedSerializerField_t + 81, // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.ports:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.Port + 82, // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.players:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgServerNetworkStats.Player + 85, // 23: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_HltvFixupOperatorTick.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 84, // 24: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_HltvFixupOperatorTick.eye_angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 85, // 25: com.github.markus_wa.demoinfocs_golang.s2.CCLCMsg_HltvFixupOperatorTick.view_offset:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 76, // 26: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.descriptor_t.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEventList.key_t + 27, // [27:27] is the sub-list for method output_type + 27, // [27:27] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name +} + +func init() { file_s2_netmessages_proto_init() } +func file_s2_netmessages_proto_init() { + if File_s2_netmessages_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_netmessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_ClientInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_Move); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgVoiceAudio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_VoiceData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_BaselineAck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_ListenEvents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_RespondCvarValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_FileCRCCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_LoadingProgress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_SplitPlayerConnect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_ClientMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_SplitPlayerDisconnect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_ServerStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_ServerPing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_RequestPause); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_CmdKeyValues); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_RconServerDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_ServerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_ClassInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SetPause); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_VoiceInit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_Print); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_Sounds); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_Prefetch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SetView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_FixAngle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_CrosshairAngle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_BSPDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SplitScreen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GetCvarValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_Menu); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_UserMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SendTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketEntities); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_TempEntities); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_CreateStringTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_UpdateStringTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_VoiceData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketReliable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_FullFrameSplit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_HLTVStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_ServerSteamID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_CmdKeyValues); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_RconServerDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgIPCAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerPeer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PeerList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_ClearAllStringTables); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoFlattenedSerializerFieldT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoFlattenedSerializerT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_FlattenedSerializer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_StopSound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CBidirMsg_RebroadcastGameEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CBidirMsg_RebroadcastSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerNetworkStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_HltvReplay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_HltvReplay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_Broadcast_Command); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CCLCMsg_HltvFixupOperatorTick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_HltvFixupOperatorStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_ClassInfoClassT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SoundsSounddataT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_SendTableSendpropT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventListKeyT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventListDescriptorT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketEntitiesCommandQueueInfoT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_PacketEntitiesAlternateBaselineT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoFlattenedSerializerFieldTPolymorphicFieldT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerNetworkStats_Port); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_netmessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgServerNetworkStats_Player); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_netmessages_proto_rawDesc, + NumEnums: 12, + NumMessages: 71, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_netmessages_proto_goTypes, + DependencyIndexes: file_s2_netmessages_proto_depIdxs, + EnumInfos: file_s2_netmessages_proto_enumTypes, + MessageInfos: file_s2_netmessages_proto_msgTypes, + }.Build() + File_s2_netmessages_proto = out.File + file_s2_netmessages_proto_rawDesc = nil + file_s2_netmessages_proto_goTypes = nil + file_s2_netmessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/network_connection.pb.go b/pkg/demoinfocs/msgs2/network_connection.pb.go new file mode 100644 index 00000000..d0f38a37 --- /dev/null +++ b/pkg/demoinfocs/msgs2/network_connection.pb.go @@ -0,0 +1,1119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/network_connection.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ENetworkDisconnectionReason int32 + +const ( + ENetworkDisconnectionReason_NETWORK_DISCONNECT_INVALID ENetworkDisconnectionReason = 0 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SHUTDOWN ENetworkDisconnectionReason = 1 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DISCONNECT_BY_USER ENetworkDisconnectionReason = 2 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DISCONNECT_BY_SERVER ENetworkDisconnectionReason = 3 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOST ENetworkDisconnectionReason = 4 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_OVERFLOW ENetworkDisconnectionReason = 5 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_BANNED ENetworkDisconnectionReason = 6 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_INUSE ENetworkDisconnectionReason = 7 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_TICKET ENetworkDisconnectionReason = 8 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_LOGON ENetworkDisconnectionReason = 9 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_AUTHCANCELLED ENetworkDisconnectionReason = 10 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED ENetworkDisconnectionReason = 11 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_AUTHINVALID ENetworkDisconnectionReason = 12 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_VACBANSTATE ENetworkDisconnectionReason = 13 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE ENetworkDisconnectionReason = 14 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT ENetworkDisconnectionReason = 15 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_DROPPED ENetworkDisconnectionReason = 16 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_OWNERSHIP ENetworkDisconnectionReason = 17 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SERVERINFO_OVERFLOW ENetworkDisconnectionReason = 18 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_TICKMSG_OVERFLOW ENetworkDisconnectionReason = 19 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW ENetworkDisconnectionReason = 20 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW ENetworkDisconnectionReason = 21 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW ENetworkDisconnectionReason = 22 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW ENetworkDisconnectionReason = 23 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SNAPSHOTOVERFLOW ENetworkDisconnectionReason = 24 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SNAPSHOTERROR ENetworkDisconnectionReason = 25 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_RELIABLEOVERFLOW ENetworkDisconnectionReason = 26 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_BADDELTATICK ENetworkDisconnectionReason = 27 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_NOMORESPLITS ENetworkDisconnectionReason = 28 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_TIMEDOUT ENetworkDisconnectionReason = 29 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DISCONNECTED ENetworkDisconnectionReason = 30 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LEAVINGSPLIT ENetworkDisconnectionReason = 31 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DIFFERENTCLASSTABLES ENetworkDisconnectionReason = 32 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_BADRELAYPASSWORD ENetworkDisconnectionReason = 33 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_BADSPECTATORPASSWORD ENetworkDisconnectionReason = 34 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_HLTVRESTRICTED ENetworkDisconnectionReason = 35 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_NOSPECTATORS ENetworkDisconnectionReason = 36 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_HLTVUNAVAILABLE ENetworkDisconnectionReason = 37 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_HLTVSTOP ENetworkDisconnectionReason = 38 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED ENetworkDisconnectionReason = 39 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_BANADDED ENetworkDisconnectionReason = 40 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKBANADDED ENetworkDisconnectionReason = 41 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_HLTVDIRECT ENetworkDisconnectionReason = 42 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA ENetworkDisconnectionReason = 43 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_PURESERVER_MISMATCH ENetworkDisconnectionReason = 44 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_USERCMD ENetworkDisconnectionReason = 45 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECTED_BY_GAME ENetworkDisconnectionReason = 46 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR ENetworkDisconnectionReason = 47 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR ENetworkDisconnectionReason = 48 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_BAD_SERVER_PASSWORD ENetworkDisconnectionReason = 49 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION ENetworkDisconnectionReason = 50 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CONNECTION_FAILURE ENetworkDisconnectionReason = 51 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS ENetworkDisconnectionReason = 52 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_RECONNECTION ENetworkDisconnectionReason = 53 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOOPSHUTDOWN ENetworkDisconnectionReason = 54 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOOPDEACTIVATE ENetworkDisconnectionReason = 55 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_HOST_ENDGAME ENetworkDisconnectionReason = 56 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE ENetworkDisconnectionReason = 57 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CREATE_SERVER_FAILED ENetworkDisconnectionReason = 58 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_EXITING ENetworkDisconnectionReason = 59 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE ENetworkDisconnectionReason = 60 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY ENetworkDisconnectionReason = 61 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL ENetworkDisconnectionReason = 62 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP ENetworkDisconnectionReason = 63 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CLIENT_NO_MAP ENetworkDisconnectionReason = 64 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP ENetworkDisconnectionReason = 65 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM ENetworkDisconnectionReason = 66 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_DENY_MISC ENetworkDisconnectionReason = 67 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT ENetworkDisconnectionReason = 68 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SERVER_SHUTDOWN ENetworkDisconnectionReason = 69 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW ENetworkDisconnectionReason = 70 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE ENetworkDisconnectionReason = 71 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT ENetworkDisconnectionReason = 72 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_SERVER_INCOMPATIBLE ENetworkDisconnectionReason = 73 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS ENetworkDisconnectionReason = 74 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY ENetworkDisconnectionReason = 75 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG ENetworkDisconnectionReason = 76 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_LOCALPROBLEM_OTHER ENetworkDisconnectionReason = 77 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REMOTE_TIMEOUT ENetworkDisconnectionReason = 79 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING ENetworkDisconnectionReason = 80 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REMOTE_OTHER ENetworkDisconnectionReason = 81 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REMOTE_BADCRYPT ENetworkDisconnectionReason = 82 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED ENetworkDisconnectionReason = 83 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_UNUSUAL ENetworkDisconnectionReason = 84 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_INTERNAL_ERROR ENetworkDisconnectionReason = 85 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_BADCHALLENGE ENetworkDisconnectionReason = 128 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_NOLOBBY ENetworkDisconnectionReason = 129 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP ENetworkDisconnectionReason = 130 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER ENetworkDisconnectionReason = 131 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_HIDDEN_GAME ENetworkDisconnectionReason = 132 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_LANRESTRICT ENetworkDisconnectionReason = 133 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_BADPASSWORD ENetworkDisconnectionReason = 134 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_SERVERFULL ENetworkDisconnectionReason = 135 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION ENetworkDisconnectionReason = 136 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL ENetworkDisconnectionReason = 137 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY ENetworkDisconnectionReason = 138 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY ENetworkDisconnectionReason = 139 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH ENetworkDisconnectionReason = 140 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_OLDPROTOCOL ENetworkDisconnectionReason = 141 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_NEWPROTOCOL ENetworkDisconnectionReason = 142 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION ENetworkDisconnectionReason = 143 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN ENetworkDisconnectionReason = 144 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN ENetworkDisconnectionReason = 145 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_STEAM ENetworkDisconnectionReason = 146 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED ENetworkDisconnectionReason = 147 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID ENetworkDisconnectionReason = 148 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_REJECT_BANNED ENetworkDisconnectionReason = 149 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_TEAMKILLING ENetworkDisconnectionReason = 150 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_TK_START ENetworkDisconnectionReason = 151 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT ENetworkDisconnectionReason = 152 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT ENetworkDisconnectionReason = 153 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN ENetworkDisconnectionReason = 154 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_TEAMHURTING ENetworkDisconnectionReason = 155 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING ENetworkDisconnectionReason = 156 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_VOTEDOFF ENetworkDisconnectionReason = 157 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_IDLE ENetworkDisconnectionReason = 158 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_SUICIDE ENetworkDisconnectionReason = 159 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN ENetworkDisconnectionReason = 160 + ENetworkDisconnectionReason_NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET ENetworkDisconnectionReason = 161 +) + +// Enum value maps for ENetworkDisconnectionReason. +var ( + ENetworkDisconnectionReason_name = map[int32]string{ + 0: "NETWORK_DISCONNECT_INVALID", + 1: "NETWORK_DISCONNECT_SHUTDOWN", + 2: "NETWORK_DISCONNECT_DISCONNECT_BY_USER", + 3: "NETWORK_DISCONNECT_DISCONNECT_BY_SERVER", + 4: "NETWORK_DISCONNECT_LOST", + 5: "NETWORK_DISCONNECT_OVERFLOW", + 6: "NETWORK_DISCONNECT_STEAM_BANNED", + 7: "NETWORK_DISCONNECT_STEAM_INUSE", + 8: "NETWORK_DISCONNECT_STEAM_TICKET", + 9: "NETWORK_DISCONNECT_STEAM_LOGON", + 10: "NETWORK_DISCONNECT_STEAM_AUTHCANCELLED", + 11: "NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED", + 12: "NETWORK_DISCONNECT_STEAM_AUTHINVALID", + 13: "NETWORK_DISCONNECT_STEAM_VACBANSTATE", + 14: "NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE", + 15: "NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT", + 16: "NETWORK_DISCONNECT_STEAM_DROPPED", + 17: "NETWORK_DISCONNECT_STEAM_OWNERSHIP", + 18: "NETWORK_DISCONNECT_SERVERINFO_OVERFLOW", + 19: "NETWORK_DISCONNECT_TICKMSG_OVERFLOW", + 20: "NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW", + 21: "NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW", + 22: "NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW", + 23: "NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW", + 24: "NETWORK_DISCONNECT_SNAPSHOTOVERFLOW", + 25: "NETWORK_DISCONNECT_SNAPSHOTERROR", + 26: "NETWORK_DISCONNECT_RELIABLEOVERFLOW", + 27: "NETWORK_DISCONNECT_BADDELTATICK", + 28: "NETWORK_DISCONNECT_NOMORESPLITS", + 29: "NETWORK_DISCONNECT_TIMEDOUT", + 30: "NETWORK_DISCONNECT_DISCONNECTED", + 31: "NETWORK_DISCONNECT_LEAVINGSPLIT", + 32: "NETWORK_DISCONNECT_DIFFERENTCLASSTABLES", + 33: "NETWORK_DISCONNECT_BADRELAYPASSWORD", + 34: "NETWORK_DISCONNECT_BADSPECTATORPASSWORD", + 35: "NETWORK_DISCONNECT_HLTVRESTRICTED", + 36: "NETWORK_DISCONNECT_NOSPECTATORS", + 37: "NETWORK_DISCONNECT_HLTVUNAVAILABLE", + 38: "NETWORK_DISCONNECT_HLTVSTOP", + 39: "NETWORK_DISCONNECT_KICKED", + 40: "NETWORK_DISCONNECT_BANADDED", + 41: "NETWORK_DISCONNECT_KICKBANADDED", + 42: "NETWORK_DISCONNECT_HLTVDIRECT", + 43: "NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA", + 44: "NETWORK_DISCONNECT_PURESERVER_MISMATCH", + 45: "NETWORK_DISCONNECT_USERCMD", + 46: "NETWORK_DISCONNECT_REJECTED_BY_GAME", + 47: "NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR", + 48: "NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR", + 49: "NETWORK_DISCONNECT_BAD_SERVER_PASSWORD", + 50: "NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION", + 51: "NETWORK_DISCONNECT_CONNECTION_FAILURE", + 52: "NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS", + 53: "NETWORK_DISCONNECT_RECONNECTION", + 54: "NETWORK_DISCONNECT_LOOPSHUTDOWN", + 55: "NETWORK_DISCONNECT_LOOPDEACTIVATE", + 56: "NETWORK_DISCONNECT_HOST_ENDGAME", + 57: "NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE", + 58: "NETWORK_DISCONNECT_CREATE_SERVER_FAILED", + 59: "NETWORK_DISCONNECT_EXITING", + 60: "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE", + 61: "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY", + 62: "NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL", + 63: "NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP", + 64: "NETWORK_DISCONNECT_CLIENT_NO_MAP", + 65: "NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP", + 66: "NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM", + 67: "NETWORK_DISCONNECT_STEAM_DENY_MISC", + 68: "NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT", + 69: "NETWORK_DISCONNECT_SERVER_SHUTDOWN", + 70: "NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW", + 71: "NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE", + 72: "NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT", + 73: "NETWORK_DISCONNECT_SERVER_INCOMPATIBLE", + 74: "NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS", + 75: "NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY", + 76: "NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG", + 77: "NETWORK_DISCONNECT_LOCALPROBLEM_OTHER", + 79: "NETWORK_DISCONNECT_REMOTE_TIMEOUT", + 80: "NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING", + 81: "NETWORK_DISCONNECT_REMOTE_OTHER", + 82: "NETWORK_DISCONNECT_REMOTE_BADCRYPT", + 83: "NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED", + 84: "NETWORK_DISCONNECT_UNUSUAL", + 85: "NETWORK_DISCONNECT_INTERNAL_ERROR", + 128: "NETWORK_DISCONNECT_REJECT_BADCHALLENGE", + 129: "NETWORK_DISCONNECT_REJECT_NOLOBBY", + 130: "NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP", + 131: "NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER", + 132: "NETWORK_DISCONNECT_REJECT_HIDDEN_GAME", + 133: "NETWORK_DISCONNECT_REJECT_LANRESTRICT", + 134: "NETWORK_DISCONNECT_REJECT_BADPASSWORD", + 135: "NETWORK_DISCONNECT_REJECT_SERVERFULL", + 136: "NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION", + 137: "NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL", + 138: "NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY", + 139: "NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY", + 140: "NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH", + 141: "NETWORK_DISCONNECT_REJECT_OLDPROTOCOL", + 142: "NETWORK_DISCONNECT_REJECT_NEWPROTOCOL", + 143: "NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION", + 144: "NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN", + 145: "NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN", + 146: "NETWORK_DISCONNECT_REJECT_STEAM", + 147: "NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED", + 148: "NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID", + 149: "NETWORK_DISCONNECT_REJECT_BANNED", + 150: "NETWORK_DISCONNECT_KICKED_TEAMKILLING", + 151: "NETWORK_DISCONNECT_KICKED_TK_START", + 152: "NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT", + 153: "NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT", + 154: "NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN", + 155: "NETWORK_DISCONNECT_KICKED_TEAMHURTING", + 156: "NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING", + 157: "NETWORK_DISCONNECT_KICKED_VOTEDOFF", + 158: "NETWORK_DISCONNECT_KICKED_IDLE", + 159: "NETWORK_DISCONNECT_KICKED_SUICIDE", + 160: "NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN", + 161: "NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET", + } + ENetworkDisconnectionReason_value = map[string]int32{ + "NETWORK_DISCONNECT_INVALID": 0, + "NETWORK_DISCONNECT_SHUTDOWN": 1, + "NETWORK_DISCONNECT_DISCONNECT_BY_USER": 2, + "NETWORK_DISCONNECT_DISCONNECT_BY_SERVER": 3, + "NETWORK_DISCONNECT_LOST": 4, + "NETWORK_DISCONNECT_OVERFLOW": 5, + "NETWORK_DISCONNECT_STEAM_BANNED": 6, + "NETWORK_DISCONNECT_STEAM_INUSE": 7, + "NETWORK_DISCONNECT_STEAM_TICKET": 8, + "NETWORK_DISCONNECT_STEAM_LOGON": 9, + "NETWORK_DISCONNECT_STEAM_AUTHCANCELLED": 10, + "NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED": 11, + "NETWORK_DISCONNECT_STEAM_AUTHINVALID": 12, + "NETWORK_DISCONNECT_STEAM_VACBANSTATE": 13, + "NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE": 14, + "NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT": 15, + "NETWORK_DISCONNECT_STEAM_DROPPED": 16, + "NETWORK_DISCONNECT_STEAM_OWNERSHIP": 17, + "NETWORK_DISCONNECT_SERVERINFO_OVERFLOW": 18, + "NETWORK_DISCONNECT_TICKMSG_OVERFLOW": 19, + "NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW": 20, + "NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW": 21, + "NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW": 22, + "NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW": 23, + "NETWORK_DISCONNECT_SNAPSHOTOVERFLOW": 24, + "NETWORK_DISCONNECT_SNAPSHOTERROR": 25, + "NETWORK_DISCONNECT_RELIABLEOVERFLOW": 26, + "NETWORK_DISCONNECT_BADDELTATICK": 27, + "NETWORK_DISCONNECT_NOMORESPLITS": 28, + "NETWORK_DISCONNECT_TIMEDOUT": 29, + "NETWORK_DISCONNECT_DISCONNECTED": 30, + "NETWORK_DISCONNECT_LEAVINGSPLIT": 31, + "NETWORK_DISCONNECT_DIFFERENTCLASSTABLES": 32, + "NETWORK_DISCONNECT_BADRELAYPASSWORD": 33, + "NETWORK_DISCONNECT_BADSPECTATORPASSWORD": 34, + "NETWORK_DISCONNECT_HLTVRESTRICTED": 35, + "NETWORK_DISCONNECT_NOSPECTATORS": 36, + "NETWORK_DISCONNECT_HLTVUNAVAILABLE": 37, + "NETWORK_DISCONNECT_HLTVSTOP": 38, + "NETWORK_DISCONNECT_KICKED": 39, + "NETWORK_DISCONNECT_BANADDED": 40, + "NETWORK_DISCONNECT_KICKBANADDED": 41, + "NETWORK_DISCONNECT_HLTVDIRECT": 42, + "NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA": 43, + "NETWORK_DISCONNECT_PURESERVER_MISMATCH": 44, + "NETWORK_DISCONNECT_USERCMD": 45, + "NETWORK_DISCONNECT_REJECTED_BY_GAME": 46, + "NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR": 47, + "NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR": 48, + "NETWORK_DISCONNECT_BAD_SERVER_PASSWORD": 49, + "NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION": 50, + "NETWORK_DISCONNECT_CONNECTION_FAILURE": 51, + "NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS": 52, + "NETWORK_DISCONNECT_RECONNECTION": 53, + "NETWORK_DISCONNECT_LOOPSHUTDOWN": 54, + "NETWORK_DISCONNECT_LOOPDEACTIVATE": 55, + "NETWORK_DISCONNECT_HOST_ENDGAME": 56, + "NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE": 57, + "NETWORK_DISCONNECT_CREATE_SERVER_FAILED": 58, + "NETWORK_DISCONNECT_EXITING": 59, + "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE": 60, + "NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY": 61, + "NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL": 62, + "NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP": 63, + "NETWORK_DISCONNECT_CLIENT_NO_MAP": 64, + "NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP": 65, + "NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM": 66, + "NETWORK_DISCONNECT_STEAM_DENY_MISC": 67, + "NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT": 68, + "NETWORK_DISCONNECT_SERVER_SHUTDOWN": 69, + "NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW": 70, + "NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE": 71, + "NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT": 72, + "NETWORK_DISCONNECT_SERVER_INCOMPATIBLE": 73, + "NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS": 74, + "NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY": 75, + "NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG": 76, + "NETWORK_DISCONNECT_LOCALPROBLEM_OTHER": 77, + "NETWORK_DISCONNECT_REMOTE_TIMEOUT": 79, + "NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING": 80, + "NETWORK_DISCONNECT_REMOTE_OTHER": 81, + "NETWORK_DISCONNECT_REMOTE_BADCRYPT": 82, + "NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED": 83, + "NETWORK_DISCONNECT_UNUSUAL": 84, + "NETWORK_DISCONNECT_INTERNAL_ERROR": 85, + "NETWORK_DISCONNECT_REJECT_BADCHALLENGE": 128, + "NETWORK_DISCONNECT_REJECT_NOLOBBY": 129, + "NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP": 130, + "NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER": 131, + "NETWORK_DISCONNECT_REJECT_HIDDEN_GAME": 132, + "NETWORK_DISCONNECT_REJECT_LANRESTRICT": 133, + "NETWORK_DISCONNECT_REJECT_BADPASSWORD": 134, + "NETWORK_DISCONNECT_REJECT_SERVERFULL": 135, + "NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION": 136, + "NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL": 137, + "NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY": 138, + "NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY": 139, + "NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH": 140, + "NETWORK_DISCONNECT_REJECT_OLDPROTOCOL": 141, + "NETWORK_DISCONNECT_REJECT_NEWPROTOCOL": 142, + "NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION": 143, + "NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN": 144, + "NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN": 145, + "NETWORK_DISCONNECT_REJECT_STEAM": 146, + "NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED": 147, + "NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID": 148, + "NETWORK_DISCONNECT_REJECT_BANNED": 149, + "NETWORK_DISCONNECT_KICKED_TEAMKILLING": 150, + "NETWORK_DISCONNECT_KICKED_TK_START": 151, + "NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT": 152, + "NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT": 153, + "NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN": 154, + "NETWORK_DISCONNECT_KICKED_TEAMHURTING": 155, + "NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING": 156, + "NETWORK_DISCONNECT_KICKED_VOTEDOFF": 157, + "NETWORK_DISCONNECT_KICKED_IDLE": 158, + "NETWORK_DISCONNECT_KICKED_SUICIDE": 159, + "NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN": 160, + "NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET": 161, + } +) + +func (x ENetworkDisconnectionReason) Enum() *ENetworkDisconnectionReason { + p := new(ENetworkDisconnectionReason) + *p = x + return p +} + +func (x ENetworkDisconnectionReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ENetworkDisconnectionReason) Descriptor() protoreflect.EnumDescriptor { + return file_s2_network_connection_proto_enumTypes[0].Descriptor() +} + +func (ENetworkDisconnectionReason) Type() protoreflect.EnumType { + return &file_s2_network_connection_proto_enumTypes[0] +} + +func (x ENetworkDisconnectionReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ENetworkDisconnectionReason) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ENetworkDisconnectionReason(num) + return nil +} + +// Deprecated: Use ENetworkDisconnectionReason.Descriptor instead. +func (ENetworkDisconnectionReason) EnumDescriptor() ([]byte, []int) { + return file_s2_network_connection_proto_rawDescGZIP(), []int{0} +} + +var file_s2_network_connection_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.EnumValueOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50500, + Name: "com.github.markus_wa.demoinfocs_golang.s2.network_connection_token", + Tag: "bytes,50500,opt,name=network_connection_token", + Filename: "s2/network_connection.proto", + }, +} + +// Extension fields to descriptorpb.EnumValueOptions. +var ( + // optional string network_connection_token = 50500; + E_NetworkConnectionToken = &file_s2_network_connection_proto_extTypes[0] +) + +var File_s2_network_connection_proto protoreflect.FileDescriptor + +var file_s2_network_connection_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0xb2, 0x4b, 0x0a, 0x1b, 0x45, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x46, 0x0a, 0x25, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x59, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, 0x1a, 0x1b, 0xa2, 0xd4, 0x18, 0x17, 0x23, 0x47, 0x61, 0x6d, + 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x59, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x03, + 0x1a, 0x1d, 0xa2, 0xd4, 0x18, 0x19, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, + 0x42, 0x0a, 0x17, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x04, 0x1a, 0x25, 0xa2, 0xd4, + 0x18, 0x21, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x6f, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x1b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, + 0x4f, 0x57, 0x10, 0x05, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x49, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x42, 0x41, 0x4e, 0x4e, + 0x45, 0x44, 0x10, 0x06, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x1e, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x55, 0x53, 0x45, 0x10, 0x07, 0x1a, 0x23, + 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x49, 0x6e, + 0x55, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x08, 0x1a, 0x22, 0xa2, 0xd4, 0x18, 0x1e, 0x23, 0x47, + 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x1e, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x10, 0x09, + 0x1a, 0x21, 0xa2, 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x6f, + 0x67, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x41, 0x55, 0x54, 0x48, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x0a, 0x1a, + 0x21, 0xa2, 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x67, + 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x28, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, + 0x55, 0x54, 0x48, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x55, 0x53, 0x45, 0x44, 0x10, 0x0b, + 0x1a, 0x21, 0xa2, 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x6f, + 0x67, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x24, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x41, 0x55, 0x54, 0x48, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x0c, 0x1a, 0x21, 0xa2, + 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x67, 0x6f, 0x6e, + 0x12, 0x49, 0x0a, 0x24, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x56, 0x41, 0x43, + 0x42, 0x41, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x0d, 0x1a, 0x1f, 0xa2, 0xd4, 0x18, 0x1b, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x56, 0x41, 0x43, 0x12, 0x53, 0x0a, 0x2c, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4c, 0x4f, 0x47, 0x47, 0x45, 0x44, 0x5f, 0x49, + 0x4e, 0x5f, 0x45, 0x4c, 0x53, 0x45, 0x57, 0x48, 0x45, 0x52, 0x45, 0x10, 0x0e, 0x1a, 0x21, 0xa2, + 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x55, 0x73, 0x65, + 0x12, 0x54, 0x0a, 0x2b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x56, 0x41, 0x43, + 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x4f, 0x55, 0x54, 0x10, + 0x0f, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x54, + 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x20, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x10, 0x1a, 0x23, 0xa2, 0xd4, + 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, + 0x64, 0x12, 0x4d, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4f, 0x57, + 0x4e, 0x45, 0x52, 0x53, 0x48, 0x49, 0x50, 0x10, 0x11, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, + 0x12, 0x55, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x4e, 0x46, + 0x4f, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x12, 0x1a, 0x29, 0xa2, 0xd4, + 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4f, + 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x4b, 0x0a, 0x23, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, + 0x43, 0x4b, 0x4d, 0x53, 0x47, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x13, + 0x1a, 0x22, 0xa2, 0xd4, 0x18, 0x1e, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x2a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, + 0x47, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x4d, 0x53, 0x47, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, + 0x4f, 0x57, 0x10, 0x14, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x53, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x45, 0x4e, 0x54, 0x4d, 0x53, + 0x47, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x15, 0x1a, 0x26, 0xa2, 0xd4, + 0x18, 0x22, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x51, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x45, + 0x4e, 0x54, 0x4d, 0x53, 0x47, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x16, + 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x54, 0x65, 0x6d, 0x70, 0x45, 0x6e, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x4f, + 0x55, 0x4e, 0x44, 0x53, 0x4d, 0x53, 0x47, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, + 0x10, 0x17, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x50, 0x0a, 0x23, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, + 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, + 0x18, 0x1a, 0x27, 0xa2, 0xd4, 0x18, 0x23, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x4a, 0x0a, 0x20, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x19, + 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4c, + 0x49, 0x41, 0x42, 0x4c, 0x45, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x1a, 0x1a, + 0x27, 0xa2, 0xd4, 0x18, 0x23, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x4e, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, + 0x41, 0x44, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x54, 0x49, 0x43, 0x4b, 0x10, 0x1b, 0x1a, 0x29, 0xa2, + 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x42, 0x61, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x48, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4e, + 0x4f, 0x4d, 0x4f, 0x52, 0x45, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x53, 0x10, 0x1c, 0x1a, 0x23, 0xa2, + 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4e, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x6c, 0x69, + 0x74, 0x73, 0x12, 0x40, 0x0a, 0x1b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x4f, 0x55, + 0x54, 0x10, 0x1d, 0x1a, 0x1f, 0xa2, 0xd4, 0x18, 0x1b, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, + 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x54, 0x69, 0x6d, 0x65, + 0x64, 0x4f, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x1e, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x48, + 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x53, 0x50, 0x4c, 0x49, + 0x54, 0x10, 0x1f, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, + 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x65, 0x61, 0x76, + 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x44, + 0x49, 0x46, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x53, 0x10, 0x20, 0x1a, 0x2b, 0xa2, 0xd4, 0x18, 0x27, 0x23, 0x47, 0x61, 0x6d, 0x65, + 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x44, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x12, 0x50, 0x0a, 0x23, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x52, 0x45, 0x4c, 0x41, + 0x59, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0x21, 0x1a, 0x27, 0xa2, 0xd4, 0x18, + 0x23, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x42, 0x61, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x58, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x53, 0x50, + 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, + 0x22, 0x1a, 0x2b, 0xa2, 0xd4, 0x18, 0x27, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x42, 0x61, 0x64, 0x53, 0x70, 0x65, + 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x4c, + 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, + 0x54, 0x45, 0x44, 0x10, 0x23, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, 0x6d, 0x65, + 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x48, 0x4c, + 0x54, 0x56, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x1f, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x53, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, + 0x24, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4e, 0x6f, 0x53, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4e, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x4c, 0x54, + 0x56, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x25, 0x1a, 0x26, + 0xa2, 0xd4, 0x18, 0x22, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x55, 0x6e, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x1b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x4c, 0x54, + 0x56, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x26, 0x1a, 0x1f, 0xa2, 0xd4, 0x18, 0x1b, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x48, 0x4c, 0x54, 0x56, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x3c, 0x0a, 0x19, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, + 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x27, 0x1a, 0x1d, 0xa2, 0xd4, 0x18, 0x19, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x1b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x4e, + 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x28, 0x1a, 0x1f, 0xa2, 0xd4, 0x18, 0x1b, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x42, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, + 0x49, 0x43, 0x4b, 0x42, 0x41, 0x4e, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x29, 0x1a, 0x23, 0xa2, + 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4b, 0x69, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1d, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x44, 0x49, 0x52, + 0x45, 0x43, 0x54, 0x10, 0x2a, 0x1a, 0x21, 0xa2, 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, + 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x48, 0x4c, + 0x54, 0x56, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x5c, 0x0a, 0x29, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x50, + 0x55, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x45, 0x58, 0x54, 0x52, 0x41, 0x10, 0x2b, 0x1a, 0x2d, 0xa2, 0xd4, 0x18, 0x29, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x50, 0x75, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x56, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x50, 0x55, 0x52, + 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, + 0x10, 0x2c, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, 0x26, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x50, 0x75, 0x72, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3e, + 0x0a, 0x1a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x43, 0x4d, 0x44, 0x10, 0x2d, 0x1a, 0x1e, + 0xa2, 0xd4, 0x18, 0x1a, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6d, 0x64, 0x12, 0x4e, + 0x0a, 0x23, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x59, + 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x2e, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x54, + 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x2f, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x73, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x58, 0x0a, 0x28, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x30, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, 0x26, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x54, + 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0x31, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x42, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x2d, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, + 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x53, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, + 0x10, 0x33, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x29, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x52, 0x53, 0x10, 0x34, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, + 0x26, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x4e, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, 0x48, 0x0a, 0x1f, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, + 0x36, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x6f, 0x70, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x4c, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, + 0x50, 0x44, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x37, 0x1a, 0x25, 0xa2, + 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x6f, 0x70, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, + 0x45, 0x4e, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x38, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x48, 0x6f, 0x73, 0x74, 0x5f, 0x45, 0x6e, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x5c, + 0x0a, 0x2a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x39, 0x1a, 0x2c, + 0xa2, 0xd4, 0x18, 0x28, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x27, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x3a, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x3b, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x45, 0x78, 0x69, + 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x54, 0x0a, 0x29, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x3c, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x48, 0x53, 0x49, 0x64, 0x6c, 0x65, + 0x12, 0x5c, 0x0a, 0x2e, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x48, + 0x4f, 0x53, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x52, 0x45, 0x4c, + 0x41, 0x59, 0x10, 0x3d, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x48, 0x4c, 0x54, 0x56, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x51, + 0x0a, 0x2a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x53, + 0x49, 0x53, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x3e, 0x1a, 0x21, + 0xa2, 0xd4, 0x18, 0x1d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x69, + 0x6c, 0x12, 0x51, 0x0a, 0x2b, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x52, 0x43, 0x5f, 0x4d, 0x41, 0x50, + 0x10, 0x3f, 0x1a, 0x20, 0xa2, 0xd4, 0x18, 0x1c, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x43, 0x52, + 0x43, 0x4d, 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x20, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x40, 0x1a, 0x17, 0xa2, 0xd4, 0x18, 0x13, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x4d, 0x61, 0x70, 0x12, 0x4b, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x44, 0x49, 0x46, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x41, + 0x1a, 0x1e, 0xa2, 0xd4, 0x18, 0x1a, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x70, + 0x12, 0x4d, 0x0a, 0x28, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x51, 0x55, 0x49, 0x52, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x42, 0x1a, 0x1f, + 0xa2, 0xd4, 0x18, 0x1b, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x12, + 0x4d, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x44, 0x45, 0x4e, 0x59, + 0x5f, 0x4d, 0x49, 0x53, 0x43, 0x10, 0x43, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x6e, 0x79, 0x5f, 0x4d, 0x69, 0x73, 0x63, 0x12, 0x5f, + 0x0a, 0x2c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x5f, + 0x42, 0x41, 0x44, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x5f, 0x43, 0x48, 0x45, 0x41, 0x54, 0x10, 0x44, + 0x1a, 0x2d, 0xa2, 0xd4, 0x18, 0x29, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x44, 0x65, + 0x6e, 0x79, 0x5f, 0x42, 0x61, 0x64, 0x41, 0x6e, 0x74, 0x69, 0x43, 0x68, 0x65, 0x61, 0x74, 0x12, + 0x4d, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x55, + 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x45, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x62, + 0x0a, 0x2c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x46, + 0x1a, 0x30, 0xa2, 0xd4, 0x18, 0x2c, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, + 0x6f, 0x77, 0x12, 0x55, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, + 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x47, 0x1a, 0x29, + 0xa2, 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x5a, 0x0a, 0x2b, 0x4e, 0x45, 0x54, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, + 0x54, 0x49, 0x4d, 0x45, 0x44, 0x4f, 0x55, 0x54, 0x10, 0x48, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x55, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, + 0x49, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x2a, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x50, 0x52, 0x4f, 0x42, 0x4c, 0x45, 0x4d, 0x5f, + 0x4d, 0x41, 0x4e, 0x59, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x53, 0x10, 0x4a, 0x1a, 0x2e, 0xa2, 0xd4, + 0x18, 0x2a, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x5f, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x7a, 0x0a, 0x38, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x50, 0x52, 0x4f, 0x42, 0x4c, 0x45, 0x4d, 0x5f, + 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4d, + 0x41, 0x52, 0x59, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x4b, 0x1a, 0x3c, 0xa2, 0xd4, 0x18, 0x38, + 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, + 0x48, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x64, 0x0a, 0x2d, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, + 0x4f, 0x43, 0x41, 0x4c, 0x50, 0x52, 0x4f, 0x42, 0x4c, 0x45, 0x4d, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x4c, 0x1a, 0x31, 0xa2, 0xd4, 0x18, + 0x2d, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, + 0x5f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, + 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x50, 0x52, 0x4f, 0x42, 0x4c, 0x45, + 0x4d, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x4d, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x4f, 0x1a, 0x2c, 0xa2, 0xd4, 0x18, + 0x28, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x5f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x68, 0x0a, 0x2c, 0x4e, 0x45, 0x54, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, + 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x50, 0x1a, 0x36, 0xa2, 0xd4, 0x18, + 0x32, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x5f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, + 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x51, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, 0x26, 0x23, 0x47, + 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x5f, 0x42, 0x41, 0x44, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x52, 0x1a, 0x2d, 0xa2, 0xd4, + 0x18, 0x29, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, + 0x65, 0x6d, 0x5f, 0x42, 0x61, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x12, 0x5a, 0x0a, 0x28, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x4e, 0x4f, 0x54, + 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x10, 0x53, 0x1a, 0x2c, 0xa2, 0xd4, 0x18, 0x28, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, + 0x42, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x4e, + 0x55, 0x53, 0x55, 0x41, 0x4c, 0x10, 0x54, 0x1a, 0x1e, 0xa2, 0xd4, 0x18, 0x1a, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x55, 0x6e, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x12, 0x4b, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x55, 0x1a, 0x24, + 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x51, 0x0a, 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x42, 0x41, 0x44, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0x80, + 0x01, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x61, 0x64, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x4c, 0x4f, 0x42, 0x42, 0x59, 0x10, 0x81, 0x01, 0x1a, + 0x19, 0xa2, 0xd4, 0x18, 0x15, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x12, 0x4f, 0x0a, 0x28, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, + 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x82, 0x01, 0x1a, 0x20, 0xa2, 0xd4, 0x18, 0x1c, 0x23, + 0x56, 0x61, 0x6c, 0x76, 0x65, 0x5f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x42, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x4d, 0x61, 0x70, 0x12, 0x4d, 0x0a, 0x27, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, + 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x83, 0x01, 0x1a, 0x1f, 0xa2, 0xd4, 0x18, 0x1b, 0x23, + 0x56, 0x61, 0x6c, 0x76, 0x65, 0x5f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x25, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x48, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x5f, 0x47, + 0x41, 0x4d, 0x45, 0x10, 0x84, 0x01, 0x1a, 0x1d, 0xa2, 0xd4, 0x18, 0x19, 0x23, 0x56, 0x61, 0x6c, + 0x76, 0x65, 0x5f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x4c, 0x41, 0x4e, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x10, 0x85, + 0x01, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x41, 0x4e, 0x52, 0x65, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x4f, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x42, 0x41, 0x44, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, + 0x86, 0x01, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x61, 0x64, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x4d, 0x0a, 0x24, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x46, 0x55, 0x4c, 0x4c, 0x10, + 0x87, 0x01, 0x1a, 0x22, 0xa2, 0xd4, 0x18, 0x1e, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x5d, 0x0a, 0x2c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x88, 0x01, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, 0x26, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, + 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, + 0x10, 0x89, 0x01, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, + 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x2c, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, + 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x4f, 0x42, 0x42, 0x59, 0x10, 0x8a, 0x01, 0x1a, 0x24, 0xa2, + 0xd4, 0x18, 0x20, 0x23, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x5f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x46, 0x72, 0x6f, 0x6d, 0x5f, 0x4c, 0x6f, + 0x62, 0x62, 0x79, 0x12, 0x57, 0x0a, 0x2c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, + 0x42, 0x42, 0x59, 0x10, 0x8b, 0x01, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x56, 0x61, 0x6c, + 0x76, 0x65, 0x5f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x5f, 0x46, 0x6f, 0x72, 0x5f, 0x4c, 0x6f, 0x62, 0x62, 0x79, 0x12, 0x5a, 0x0a, 0x2a, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x4b, 0x45, 0x59, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x8c, 0x01, 0x1a, 0x29, 0xa2, + 0xd4, 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4b, + 0x65, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4f, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, + 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x4c, 0x44, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, + 0x4c, 0x10, 0x8d, 0x01, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, + 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x6c, + 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x25, 0x4e, 0x45, 0x54, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, + 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, + 0x4f, 0x4c, 0x10, 0x8e, 0x01, 0x1a, 0x23, 0xa2, 0xd4, 0x18, 0x1f, 0x23, 0x47, 0x61, 0x6d, 0x65, + 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4e, + 0x65, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x5b, 0x0a, 0x2b, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x8f, 0x01, 0x1a, 0x29, 0xa2, 0xd4, + 0x18, 0x25, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x28, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x43, 0x45, 0x52, 0x54, + 0x4c, 0x45, 0x4e, 0x10, 0x90, 0x01, 0x1a, 0x26, 0xa2, 0xd4, 0x18, 0x22, 0x23, 0x47, 0x61, 0x6d, + 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x65, 0x72, 0x74, 0x4c, 0x65, 0x6e, 0x12, 0x5f, + 0x0a, 0x2d, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x43, 0x45, 0x52, 0x54, 0x4c, 0x45, 0x4e, 0x10, + 0x91, 0x01, 0x1a, 0x2b, 0xa2, 0xd4, 0x18, 0x27, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x4c, 0x65, 0x6e, 0x12, + 0x43, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x45, + 0x41, 0x4d, 0x10, 0x92, 0x01, 0x1a, 0x1d, 0xa2, 0xd4, 0x18, 0x19, 0x23, 0x47, 0x61, 0x6d, 0x65, + 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, + 0x74, 0x65, 0x61, 0x6d, 0x12, 0x51, 0x0a, 0x2c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x41, 0x55, 0x54, 0x48, 0x44, 0x49, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x93, 0x01, 0x1a, 0x1e, 0xa2, 0xd4, 0x18, 0x1a, 0x23, 0x47, 0x61, + 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x30, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x43, 0x44, 0x4b, 0x45, 0x59, + 0x41, 0x55, 0x54, 0x48, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x94, 0x01, 0x1a, 0x22, + 0xa2, 0xd4, 0x18, 0x1e, 0x23, 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x44, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x12, 0x45, 0x0a, 0x20, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, + 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x95, 0x01, 0x1a, 0x1e, 0xa2, 0xd4, 0x18, 0x1a, 0x23, + 0x47, 0x61, 0x6d, 0x65, 0x55, 0x49, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x54, 0x0a, 0x25, 0x4e, 0x45, 0x54, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, + 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x4b, 0x49, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x10, 0x96, 0x01, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, 0x23, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x5f, 0x54, 0x65, 0x61, 0x6d, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x12, + 0x4e, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x54, 0x4b, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x97, 0x01, 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x54, 0x4b, 0x5f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x5e, 0x0a, 0x2a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x55, 0x4e, 0x54, + 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x98, 0x01, + 0x1a, 0x2d, 0xa2, 0xd4, 0x18, 0x29, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x55, + 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x5e, 0x0a, 0x2a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, + 0x56, 0x49, 0x43, 0x54, 0x45, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x99, 0x01, + 0x1a, 0x2d, 0xa2, 0xd4, 0x18, 0x29, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x43, + 0x6f, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x64, 0x0a, 0x2d, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4d, + 0x50, 0x45, 0x54, 0x49, 0x54, 0x49, 0x56, 0x45, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, + 0x10, 0x9a, 0x01, 0x1a, 0x30, 0xa2, 0xd4, 0x18, 0x2c, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6f, + 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x54, 0x0a, 0x25, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, + 0x45, 0x44, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x48, 0x55, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x9b, + 0x01, 0x1a, 0x28, 0xa2, 0xd4, 0x18, 0x24, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, + 0x54, 0x65, 0x61, 0x6d, 0x48, 0x75, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x28, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x41, 0x47, 0x45, + 0x4b, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x9c, 0x01, 0x1a, 0x2b, 0xa2, 0xd4, 0x18, 0x27, + 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x48, 0x6f, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x4e, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, + 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x54, 0x45, 0x44, 0x4f, 0x46, 0x46, 0x10, 0x9d, 0x01, + 0x1a, 0x25, 0xa2, 0xd4, 0x18, 0x21, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x56, + 0x6f, 0x74, 0x65, 0x64, 0x4f, 0x66, 0x66, 0x12, 0x46, 0x0a, 0x1e, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, + 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x9e, 0x01, 0x1a, 0x21, 0xa2, 0xd4, + 0x18, 0x1d, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x49, 0x64, 0x6c, 0x65, 0x12, + 0x4c, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x53, 0x55, 0x49, + 0x43, 0x49, 0x44, 0x45, 0x10, 0x9f, 0x01, 0x1a, 0x24, 0xa2, 0xd4, 0x18, 0x20, 0x23, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x53, 0x75, 0x69, 0x63, 0x69, 0x64, 0x65, 0x12, 0x56, 0x0a, + 0x26, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x53, 0x54, 0x45, + 0x41, 0x4d, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0xa0, 0x01, 0x1a, 0x29, 0xa2, 0xd4, 0x18, 0x25, + 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x4e, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x58, 0x0a, 0x27, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4b, 0x49, 0x43, 0x4b, + 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, + 0x10, 0xa1, 0x01, 0x1a, 0x2a, 0xa2, 0xd4, 0x18, 0x26, 0x23, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x5f, 0x4e, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x3a, + 0x5d, 0x0a, 0x18, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xc4, + 0x8a, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, +} + +var ( + file_s2_network_connection_proto_rawDescOnce sync.Once + file_s2_network_connection_proto_rawDescData = file_s2_network_connection_proto_rawDesc +) + +func file_s2_network_connection_proto_rawDescGZIP() []byte { + file_s2_network_connection_proto_rawDescOnce.Do(func() { + file_s2_network_connection_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_network_connection_proto_rawDescData) + }) + return file_s2_network_connection_proto_rawDescData +} + +var file_s2_network_connection_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_s2_network_connection_proto_goTypes = []interface{}{ + (ENetworkDisconnectionReason)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.ENetworkDisconnectionReason + (*descriptorpb.EnumValueOptions)(nil), // 1: google.protobuf.EnumValueOptions +} +var file_s2_network_connection_proto_depIdxs = []int32{ + 1, // 0: com.github.markus_wa.demoinfocs_golang.s2.network_connection_token:extendee -> google.protobuf.EnumValueOptions + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_s2_network_connection_proto_init() } +func file_s2_network_connection_proto_init() { + if File_s2_network_connection_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_network_connection_proto_rawDesc, + NumEnums: 1, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_s2_network_connection_proto_goTypes, + DependencyIndexes: file_s2_network_connection_proto_depIdxs, + EnumInfos: file_s2_network_connection_proto_enumTypes, + ExtensionInfos: file_s2_network_connection_proto_extTypes, + }.Build() + File_s2_network_connection_proto = out.File + file_s2_network_connection_proto_rawDesc = nil + file_s2_network_connection_proto_goTypes = nil + file_s2_network_connection_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/networkbasetypes.pb.go b/pkg/demoinfocs/msgs2/networkbasetypes.pb.go new file mode 100644 index 00000000..d75df0a9 --- /dev/null +++ b/pkg/demoinfocs/msgs2/networkbasetypes.pb.go @@ -0,0 +1,3164 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/networkbasetypes.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SignonStateT int32 + +const ( + SignonStateT_SIGNONSTATE_NONE SignonStateT = 0 + SignonStateT_SIGNONSTATE_CHALLENGE SignonStateT = 1 + SignonStateT_SIGNONSTATE_CONNECTED SignonStateT = 2 + SignonStateT_SIGNONSTATE_NEW SignonStateT = 3 + SignonStateT_SIGNONSTATE_PRESPAWN SignonStateT = 4 + SignonStateT_SIGNONSTATE_SPAWN SignonStateT = 5 + SignonStateT_SIGNONSTATE_FULL SignonStateT = 6 + SignonStateT_SIGNONSTATE_CHANGELEVEL SignonStateT = 7 +) + +// Enum value maps for SignonStateT. +var ( + SignonStateT_name = map[int32]string{ + 0: "SIGNONSTATE_NONE", + 1: "SIGNONSTATE_CHALLENGE", + 2: "SIGNONSTATE_CONNECTED", + 3: "SIGNONSTATE_NEW", + 4: "SIGNONSTATE_PRESPAWN", + 5: "SIGNONSTATE_SPAWN", + 6: "SIGNONSTATE_FULL", + 7: "SIGNONSTATE_CHANGELEVEL", + } + SignonStateT_value = map[string]int32{ + "SIGNONSTATE_NONE": 0, + "SIGNONSTATE_CHALLENGE": 1, + "SIGNONSTATE_CONNECTED": 2, + "SIGNONSTATE_NEW": 3, + "SIGNONSTATE_PRESPAWN": 4, + "SIGNONSTATE_SPAWN": 5, + "SIGNONSTATE_FULL": 6, + "SIGNONSTATE_CHANGELEVEL": 7, + } +) + +func (x SignonStateT) Enum() *SignonStateT { + p := new(SignonStateT) + *p = x + return p +} + +func (x SignonStateT) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SignonStateT) Descriptor() protoreflect.EnumDescriptor { + return file_s2_networkbasetypes_proto_enumTypes[0].Descriptor() +} + +func (SignonStateT) Type() protoreflect.EnumType { + return &file_s2_networkbasetypes_proto_enumTypes[0] +} + +func (x SignonStateT) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SignonStateT) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SignonStateT(num) + return nil +} + +// Deprecated: Use SignonStateT.Descriptor instead. +func (SignonStateT) EnumDescriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{0} +} + +type NET_Messages int32 + +const ( + NET_Messages_net_NOP NET_Messages = 0 + NET_Messages_net_Disconnect NET_Messages = 1 + NET_Messages_net_SplitScreenUser NET_Messages = 3 + NET_Messages_net_Tick NET_Messages = 4 + NET_Messages_net_StringCmd NET_Messages = 5 + NET_Messages_net_SetConVar NET_Messages = 6 + NET_Messages_net_SignonState NET_Messages = 7 + NET_Messages_net_SpawnGroup_Load NET_Messages = 8 + NET_Messages_net_SpawnGroup_ManifestUpdate NET_Messages = 9 + NET_Messages_net_SpawnGroup_SetCreationTick NET_Messages = 11 + NET_Messages_net_SpawnGroup_Unload NET_Messages = 12 + NET_Messages_net_SpawnGroup_LoadCompleted NET_Messages = 13 + NET_Messages_net_DebugOverlay NET_Messages = 15 +) + +// Enum value maps for NET_Messages. +var ( + NET_Messages_name = map[int32]string{ + 0: "net_NOP", + 1: "net_Disconnect", + 3: "net_SplitScreenUser", + 4: "net_Tick", + 5: "net_StringCmd", + 6: "net_SetConVar", + 7: "net_SignonState", + 8: "net_SpawnGroup_Load", + 9: "net_SpawnGroup_ManifestUpdate", + 11: "net_SpawnGroup_SetCreationTick", + 12: "net_SpawnGroup_Unload", + 13: "net_SpawnGroup_LoadCompleted", + 15: "net_DebugOverlay", + } + NET_Messages_value = map[string]int32{ + "net_NOP": 0, + "net_Disconnect": 1, + "net_SplitScreenUser": 3, + "net_Tick": 4, + "net_StringCmd": 5, + "net_SetConVar": 6, + "net_SignonState": 7, + "net_SpawnGroup_Load": 8, + "net_SpawnGroup_ManifestUpdate": 9, + "net_SpawnGroup_SetCreationTick": 11, + "net_SpawnGroup_Unload": 12, + "net_SpawnGroup_LoadCompleted": 13, + "net_DebugOverlay": 15, + } +) + +func (x NET_Messages) Enum() *NET_Messages { + p := new(NET_Messages) + *p = x + return p +} + +func (x NET_Messages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NET_Messages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_networkbasetypes_proto_enumTypes[1].Descriptor() +} + +func (NET_Messages) Type() protoreflect.EnumType { + return &file_s2_networkbasetypes_proto_enumTypes[1] +} + +func (x NET_Messages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *NET_Messages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = NET_Messages(num) + return nil +} + +// Deprecated: Use NET_Messages.Descriptor instead. +func (NET_Messages) EnumDescriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{1} +} + +type SpawnGroupFlagsT int32 + +const ( + SpawnGroupFlagsT_SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE SpawnGroupFlagsT = 1 + SpawnGroupFlagsT_SPAWN_GROUP_DONT_SPAWN_ENTITIES SpawnGroupFlagsT = 2 + SpawnGroupFlagsT_SPAWN_GROUP_SYNCHRONOUS_SPAWN SpawnGroupFlagsT = 4 + SpawnGroupFlagsT_SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP SpawnGroupFlagsT = 8 + SpawnGroupFlagsT_SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES SpawnGroupFlagsT = 16 + SpawnGroupFlagsT_SPAWN_GROUP_BLOCK_UNTIL_LOADED SpawnGroupFlagsT = 64 + SpawnGroupFlagsT_SPAWN_GROUP_LOAD_STREAMING_DATA SpawnGroupFlagsT = 128 + SpawnGroupFlagsT_SPAWN_GROUP_CREATE_NEW_SCENE_WORLD SpawnGroupFlagsT = 256 +) + +// Enum value maps for SpawnGroupFlagsT. +var ( + SpawnGroupFlagsT_name = map[int32]string{ + 1: "SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE", + 2: "SPAWN_GROUP_DONT_SPAWN_ENTITIES", + 4: "SPAWN_GROUP_SYNCHRONOUS_SPAWN", + 8: "SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP", + 16: "SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES", + 64: "SPAWN_GROUP_BLOCK_UNTIL_LOADED", + 128: "SPAWN_GROUP_LOAD_STREAMING_DATA", + 256: "SPAWN_GROUP_CREATE_NEW_SCENE_WORLD", + } + SpawnGroupFlagsT_value = map[string]int32{ + "SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE": 1, + "SPAWN_GROUP_DONT_SPAWN_ENTITIES": 2, + "SPAWN_GROUP_SYNCHRONOUS_SPAWN": 4, + "SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP": 8, + "SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES": 16, + "SPAWN_GROUP_BLOCK_UNTIL_LOADED": 64, + "SPAWN_GROUP_LOAD_STREAMING_DATA": 128, + "SPAWN_GROUP_CREATE_NEW_SCENE_WORLD": 256, + } +) + +func (x SpawnGroupFlagsT) Enum() *SpawnGroupFlagsT { + p := new(SpawnGroupFlagsT) + *p = x + return p +} + +func (x SpawnGroupFlagsT) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpawnGroupFlagsT) Descriptor() protoreflect.EnumDescriptor { + return file_s2_networkbasetypes_proto_enumTypes[2].Descriptor() +} + +func (SpawnGroupFlagsT) Type() protoreflect.EnumType { + return &file_s2_networkbasetypes_proto_enumTypes[2] +} + +func (x SpawnGroupFlagsT) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SpawnGroupFlagsT) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SpawnGroupFlagsT(num) + return nil +} + +// Deprecated: Use SpawnGroupFlagsT.Descriptor instead. +func (SpawnGroupFlagsT) EnumDescriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{2} +} + +type CMsgVector struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X *float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"` + Y *float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"` + Z *float32 `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"` + W *float32 `protobuf:"fixed32,4,opt,name=w" json:"w,omitempty"` +} + +func (x *CMsgVector) Reset() { + *x = CMsgVector{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgVector) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgVector) ProtoMessage() {} + +func (x *CMsgVector) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgVector.ProtoReflect.Descriptor instead. +func (*CMsgVector) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgVector) GetX() float32 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *CMsgVector) GetY() float32 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +func (x *CMsgVector) GetZ() float32 { + if x != nil && x.Z != nil { + return *x.Z + } + return 0 +} + +func (x *CMsgVector) GetW() float32 { + if x != nil && x.W != nil { + return *x.W + } + return 0 +} + +type CMsgVector2D struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X *float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"` + Y *float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"` +} + +func (x *CMsgVector2D) Reset() { + *x = CMsgVector2D{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgVector2D) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgVector2D) ProtoMessage() {} + +func (x *CMsgVector2D) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgVector2D.ProtoReflect.Descriptor instead. +func (*CMsgVector2D) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgVector2D) GetX() float32 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *CMsgVector2D) GetY() float32 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +type CMsgQAngle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X *float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"` + Y *float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"` + Z *float32 `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"` +} + +func (x *CMsgQAngle) Reset() { + *x = CMsgQAngle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgQAngle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgQAngle) ProtoMessage() {} + +func (x *CMsgQAngle) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgQAngle.ProtoReflect.Descriptor instead. +func (*CMsgQAngle) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgQAngle) GetX() float32 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *CMsgQAngle) GetY() float32 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +func (x *CMsgQAngle) GetZ() float32 { + if x != nil && x.Z != nil { + return *x.Z + } + return 0 +} + +type CMsgQuaternion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X *float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"` + Y *float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"` + Z *float32 `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"` + W *float32 `protobuf:"fixed32,4,opt,name=w" json:"w,omitempty"` +} + +func (x *CMsgQuaternion) Reset() { + *x = CMsgQuaternion{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgQuaternion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgQuaternion) ProtoMessage() {} + +func (x *CMsgQuaternion) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgQuaternion.ProtoReflect.Descriptor instead. +func (*CMsgQuaternion) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgQuaternion) GetX() float32 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *CMsgQuaternion) GetY() float32 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +func (x *CMsgQuaternion) GetZ() float32 { + if x != nil && x.Z != nil { + return *x.Z + } + return 0 +} + +func (x *CMsgQuaternion) GetW() float32 { + if x != nil && x.W != nil { + return *x.W + } + return 0 +} + +type CMsgTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Position *CMsgVector `protobuf:"bytes,1,opt,name=position" json:"position,omitempty"` + Scale *float32 `protobuf:"fixed32,2,opt,name=scale" json:"scale,omitempty"` + Orientation *CMsgQuaternion `protobuf:"bytes,3,opt,name=orientation" json:"orientation,omitempty"` +} + +func (x *CMsgTransform) Reset() { + *x = CMsgTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTransform) ProtoMessage() {} + +func (x *CMsgTransform) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTransform.ProtoReflect.Descriptor instead. +func (*CMsgTransform) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgTransform) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +func (x *CMsgTransform) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgTransform) GetOrientation() *CMsgQuaternion { + if x != nil { + return x.Orientation + } + return nil +} + +type CMsgRGBA struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + R *int32 `protobuf:"varint,1,opt,name=r" json:"r,omitempty"` + G *int32 `protobuf:"varint,2,opt,name=g" json:"g,omitempty"` + B *int32 `protobuf:"varint,3,opt,name=b" json:"b,omitempty"` + A *int32 `protobuf:"varint,4,opt,name=a" json:"a,omitempty"` +} + +func (x *CMsgRGBA) Reset() { + *x = CMsgRGBA{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgRGBA) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgRGBA) ProtoMessage() {} + +func (x *CMsgRGBA) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgRGBA.ProtoReflect.Descriptor instead. +func (*CMsgRGBA) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgRGBA) GetR() int32 { + if x != nil && x.R != nil { + return *x.R + } + return 0 +} + +func (x *CMsgRGBA) GetG() int32 { + if x != nil && x.G != nil { + return *x.G + } + return 0 +} + +func (x *CMsgRGBA) GetB() int32 { + if x != nil && x.B != nil { + return *x.B + } + return 0 +} + +func (x *CMsgRGBA) GetA() int32 { + if x != nil && x.A != nil { + return *x.A + } + return 0 +} + +type CMsgPlayerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Xuid *uint64 `protobuf:"fixed64,2,opt,name=xuid" json:"xuid,omitempty"` + Userid *int32 `protobuf:"varint,3,opt,name=userid" json:"userid,omitempty"` + Steamid *uint64 `protobuf:"fixed64,4,opt,name=steamid" json:"steamid,omitempty"` + Fakeplayer *bool `protobuf:"varint,5,opt,name=fakeplayer" json:"fakeplayer,omitempty"` + Ishltv *bool `protobuf:"varint,6,opt,name=ishltv" json:"ishltv,omitempty"` +} + +func (x *CMsgPlayerInfo) Reset() { + *x = CMsgPlayerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgPlayerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgPlayerInfo) ProtoMessage() {} + +func (x *CMsgPlayerInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgPlayerInfo.ProtoReflect.Descriptor instead. +func (*CMsgPlayerInfo) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgPlayerInfo) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgPlayerInfo) GetXuid() uint64 { + if x != nil && x.Xuid != nil { + return *x.Xuid + } + return 0 +} + +func (x *CMsgPlayerInfo) GetUserid() int32 { + if x != nil && x.Userid != nil { + return *x.Userid + } + return 0 +} + +func (x *CMsgPlayerInfo) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgPlayerInfo) GetFakeplayer() bool { + if x != nil && x.Fakeplayer != nil { + return *x.Fakeplayer + } + return false +} + +func (x *CMsgPlayerInfo) GetIshltv() bool { + if x != nil && x.Ishltv != nil { + return *x.Ishltv + } + return false +} + +type CEntityMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TargetEntity *uint32 `protobuf:"varint,1,opt,name=target_entity,json=targetEntity,def=16777215" json:"target_entity,omitempty"` +} + +// Default values for CEntityMsg fields. +const ( + Default_CEntityMsg_TargetEntity = uint32(16777215) +) + +func (x *CEntityMsg) Reset() { + *x = CEntityMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMsg) ProtoMessage() {} + +func (x *CEntityMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMsg.ProtoReflect.Descriptor instead. +func (*CEntityMsg) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{7} +} + +func (x *CEntityMsg) GetTargetEntity() uint32 { + if x != nil && x.TargetEntity != nil { + return *x.TargetEntity + } + return Default_CEntityMsg_TargetEntity +} + +type CMsg_CVars struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cvars []*CMsg_CVars_CVar `protobuf:"bytes,1,rep,name=cvars" json:"cvars,omitempty"` +} + +func (x *CMsg_CVars) Reset() { + *x = CMsg_CVars{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsg_CVars) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsg_CVars) ProtoMessage() {} + +func (x *CMsg_CVars) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsg_CVars.ProtoReflect.Descriptor instead. +func (*CMsg_CVars) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsg_CVars) GetCvars() []*CMsg_CVars_CVar { + if x != nil { + return x.Cvars + } + return nil +} + +type CNETMsg_NOP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CNETMsg_NOP) Reset() { + *x = CNETMsg_NOP{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_NOP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_NOP) ProtoMessage() {} + +func (x *CNETMsg_NOP) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_NOP.ProtoReflect.Descriptor instead. +func (*CNETMsg_NOP) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{9} +} + +type CNETMsg_SplitScreenUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *int32 `protobuf:"varint,1,opt,name=slot" json:"slot,omitempty"` +} + +func (x *CNETMsg_SplitScreenUser) Reset() { + *x = CNETMsg_SplitScreenUser{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SplitScreenUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SplitScreenUser) ProtoMessage() {} + +func (x *CNETMsg_SplitScreenUser) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SplitScreenUser.ProtoReflect.Descriptor instead. +func (*CNETMsg_SplitScreenUser) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{10} +} + +func (x *CNETMsg_SplitScreenUser) GetSlot() int32 { + if x != nil && x.Slot != nil { + return *x.Slot + } + return 0 +} + +type CNETMsg_Disconnect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reason *ENetworkDisconnectionReason `protobuf:"varint,2,opt,name=reason,enum=com.github.markus_wa.demoinfocs_golang.s2.ENetworkDisconnectionReason,def=0" json:"reason,omitempty"` +} + +// Default values for CNETMsg_Disconnect fields. +const ( + Default_CNETMsg_Disconnect_Reason = ENetworkDisconnectionReason_NETWORK_DISCONNECT_INVALID +) + +func (x *CNETMsg_Disconnect) Reset() { + *x = CNETMsg_Disconnect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_Disconnect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_Disconnect) ProtoMessage() {} + +func (x *CNETMsg_Disconnect) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_Disconnect.ProtoReflect.Descriptor instead. +func (*CNETMsg_Disconnect) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{11} +} + +func (x *CNETMsg_Disconnect) GetReason() ENetworkDisconnectionReason { + if x != nil && x.Reason != nil { + return *x.Reason + } + return Default_CNETMsg_Disconnect_Reason +} + +type CNETMsg_Tick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tick *uint32 `protobuf:"varint,1,opt,name=tick" json:"tick,omitempty"` + HostFrametime *uint32 `protobuf:"varint,2,opt,name=host_frametime,json=hostFrametime" json:"host_frametime,omitempty"` + HostFrametimeStdDeviation *uint32 `protobuf:"varint,3,opt,name=host_frametime_std_deviation,json=hostFrametimeStdDeviation" json:"host_frametime_std_deviation,omitempty"` + HostComputationtime *uint32 `protobuf:"varint,4,opt,name=host_computationtime,json=hostComputationtime" json:"host_computationtime,omitempty"` + HostComputationtimeStdDeviation *uint32 `protobuf:"varint,5,opt,name=host_computationtime_std_deviation,json=hostComputationtimeStdDeviation" json:"host_computationtime_std_deviation,omitempty"` + HostFramestarttimeStdDeviation *uint32 `protobuf:"varint,6,opt,name=host_framestarttime_std_deviation,json=hostFramestarttimeStdDeviation" json:"host_framestarttime_std_deviation,omitempty"` + HostLoss *uint32 `protobuf:"varint,7,opt,name=host_loss,json=hostLoss" json:"host_loss,omitempty"` + HostUnfilteredFrametime *uint32 `protobuf:"varint,8,opt,name=host_unfiltered_frametime,json=hostUnfilteredFrametime" json:"host_unfiltered_frametime,omitempty"` + HltvReplayFlags *uint32 `protobuf:"varint,9,opt,name=hltv_replay_flags,json=hltvReplayFlags" json:"hltv_replay_flags,omitempty"` +} + +func (x *CNETMsg_Tick) Reset() { + *x = CNETMsg_Tick{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_Tick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_Tick) ProtoMessage() {} + +func (x *CNETMsg_Tick) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_Tick.ProtoReflect.Descriptor instead. +func (*CNETMsg_Tick) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{12} +} + +func (x *CNETMsg_Tick) GetTick() uint32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostFrametime() uint32 { + if x != nil && x.HostFrametime != nil { + return *x.HostFrametime + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostFrametimeStdDeviation() uint32 { + if x != nil && x.HostFrametimeStdDeviation != nil { + return *x.HostFrametimeStdDeviation + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostComputationtime() uint32 { + if x != nil && x.HostComputationtime != nil { + return *x.HostComputationtime + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostComputationtimeStdDeviation() uint32 { + if x != nil && x.HostComputationtimeStdDeviation != nil { + return *x.HostComputationtimeStdDeviation + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostFramestarttimeStdDeviation() uint32 { + if x != nil && x.HostFramestarttimeStdDeviation != nil { + return *x.HostFramestarttimeStdDeviation + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostLoss() uint32 { + if x != nil && x.HostLoss != nil { + return *x.HostLoss + } + return 0 +} + +func (x *CNETMsg_Tick) GetHostUnfilteredFrametime() uint32 { + if x != nil && x.HostUnfilteredFrametime != nil { + return *x.HostUnfilteredFrametime + } + return 0 +} + +func (x *CNETMsg_Tick) GetHltvReplayFlags() uint32 { + if x != nil && x.HltvReplayFlags != nil { + return *x.HltvReplayFlags + } + return 0 +} + +type CNETMsg_StringCmd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command *string `protobuf:"bytes,1,opt,name=command" json:"command,omitempty"` + PredictionSync *uint32 `protobuf:"varint,2,opt,name=prediction_sync,json=predictionSync" json:"prediction_sync,omitempty"` +} + +func (x *CNETMsg_StringCmd) Reset() { + *x = CNETMsg_StringCmd{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_StringCmd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_StringCmd) ProtoMessage() {} + +func (x *CNETMsg_StringCmd) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_StringCmd.ProtoReflect.Descriptor instead. +func (*CNETMsg_StringCmd) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{13} +} + +func (x *CNETMsg_StringCmd) GetCommand() string { + if x != nil && x.Command != nil { + return *x.Command + } + return "" +} + +func (x *CNETMsg_StringCmd) GetPredictionSync() uint32 { + if x != nil && x.PredictionSync != nil { + return *x.PredictionSync + } + return 0 +} + +type CNETMsg_SetConVar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Convars *CMsg_CVars `protobuf:"bytes,1,opt,name=convars" json:"convars,omitempty"` +} + +func (x *CNETMsg_SetConVar) Reset() { + *x = CNETMsg_SetConVar{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SetConVar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SetConVar) ProtoMessage() {} + +func (x *CNETMsg_SetConVar) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SetConVar.ProtoReflect.Descriptor instead. +func (*CNETMsg_SetConVar) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{14} +} + +func (x *CNETMsg_SetConVar) GetConvars() *CMsg_CVars { + if x != nil { + return x.Convars + } + return nil +} + +type CNETMsg_SignonState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignonState *SignonStateT `protobuf:"varint,1,opt,name=signon_state,json=signonState,enum=com.github.markus_wa.demoinfocs_golang.s2.SignonStateT,def=0" json:"signon_state,omitempty"` + SpawnCount *uint32 `protobuf:"varint,2,opt,name=spawn_count,json=spawnCount" json:"spawn_count,omitempty"` + NumServerPlayers *uint32 `protobuf:"varint,3,opt,name=num_server_players,json=numServerPlayers" json:"num_server_players,omitempty"` + PlayersNetworkids []string `protobuf:"bytes,4,rep,name=players_networkids,json=playersNetworkids" json:"players_networkids,omitempty"` + MapName *string `protobuf:"bytes,5,opt,name=map_name,json=mapName" json:"map_name,omitempty"` + Addons *string `protobuf:"bytes,6,opt,name=addons" json:"addons,omitempty"` +} + +// Default values for CNETMsg_SignonState fields. +const ( + Default_CNETMsg_SignonState_SignonState = SignonStateT_SIGNONSTATE_NONE +) + +func (x *CNETMsg_SignonState) Reset() { + *x = CNETMsg_SignonState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SignonState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SignonState) ProtoMessage() {} + +func (x *CNETMsg_SignonState) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SignonState.ProtoReflect.Descriptor instead. +func (*CNETMsg_SignonState) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{15} +} + +func (x *CNETMsg_SignonState) GetSignonState() SignonStateT { + if x != nil && x.SignonState != nil { + return *x.SignonState + } + return Default_CNETMsg_SignonState_SignonState +} + +func (x *CNETMsg_SignonState) GetSpawnCount() uint32 { + if x != nil && x.SpawnCount != nil { + return *x.SpawnCount + } + return 0 +} + +func (x *CNETMsg_SignonState) GetNumServerPlayers() uint32 { + if x != nil && x.NumServerPlayers != nil { + return *x.NumServerPlayers + } + return 0 +} + +func (x *CNETMsg_SignonState) GetPlayersNetworkids() []string { + if x != nil { + return x.PlayersNetworkids + } + return nil +} + +func (x *CNETMsg_SignonState) GetMapName() string { + if x != nil && x.MapName != nil { + return *x.MapName + } + return "" +} + +func (x *CNETMsg_SignonState) GetAddons() string { + if x != nil && x.Addons != nil { + return *x.Addons + } + return "" +} + +type CSVCMsg_GameEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventName *string `protobuf:"bytes,1,opt,name=event_name,json=eventName" json:"event_name,omitempty"` + Eventid *int32 `protobuf:"varint,2,opt,name=eventid" json:"eventid,omitempty"` + Keys []*CSVCMsg_GameEventKeyT `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CSVCMsg_GameEvent) Reset() { + *x = CSVCMsg_GameEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameEvent) ProtoMessage() {} + +func (x *CSVCMsg_GameEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameEvent.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameEvent) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{16} +} + +func (x *CSVCMsg_GameEvent) GetEventName() string { + if x != nil && x.EventName != nil { + return *x.EventName + } + return "" +} + +func (x *CSVCMsg_GameEvent) GetEventid() int32 { + if x != nil && x.Eventid != nil { + return *x.Eventid + } + return 0 +} + +func (x *CSVCMsg_GameEvent) GetKeys() []*CSVCMsg_GameEventKeyT { + if x != nil { + return x.Keys + } + return nil +} + +type CSVCMsgList_GameEvents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Events []*CSVCMsgList_GameEventsEventT `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"` +} + +func (x *CSVCMsgList_GameEvents) Reset() { + *x = CSVCMsgList_GameEvents{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsgList_GameEvents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsgList_GameEvents) ProtoMessage() {} + +func (x *CSVCMsgList_GameEvents) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsgList_GameEvents.ProtoReflect.Descriptor instead. +func (*CSVCMsgList_GameEvents) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{17} +} + +func (x *CSVCMsgList_GameEvents) GetEvents() []*CSVCMsgList_GameEventsEventT { + if x != nil { + return x.Events + } + return nil +} + +type CNETMsg_SpawnGroup_Load struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Worldname *string `protobuf:"bytes,1,opt,name=worldname" json:"worldname,omitempty"` + Entitylumpname *string `protobuf:"bytes,2,opt,name=entitylumpname" json:"entitylumpname,omitempty"` + Entityfiltername *string `protobuf:"bytes,3,opt,name=entityfiltername" json:"entityfiltername,omitempty"` + Spawngrouphandle *uint32 `protobuf:"varint,4,opt,name=spawngrouphandle" json:"spawngrouphandle,omitempty"` + Spawngroupownerhandle *uint32 `protobuf:"varint,5,opt,name=spawngroupownerhandle" json:"spawngroupownerhandle,omitempty"` + WorldOffsetPos *CMsgVector `protobuf:"bytes,6,opt,name=world_offset_pos,json=worldOffsetPos" json:"world_offset_pos,omitempty"` + WorldOffsetAngle *CMsgQAngle `protobuf:"bytes,7,opt,name=world_offset_angle,json=worldOffsetAngle" json:"world_offset_angle,omitempty"` + Spawngroupmanifest []byte `protobuf:"bytes,8,opt,name=spawngroupmanifest" json:"spawngroupmanifest,omitempty"` + Flags *uint32 `protobuf:"varint,9,opt,name=flags" json:"flags,omitempty"` + Tickcount *int32 `protobuf:"varint,10,opt,name=tickcount" json:"tickcount,omitempty"` + Manifestincomplete *bool `protobuf:"varint,11,opt,name=manifestincomplete" json:"manifestincomplete,omitempty"` + Localnamefixup *string `protobuf:"bytes,12,opt,name=localnamefixup" json:"localnamefixup,omitempty"` + Parentnamefixup *string `protobuf:"bytes,13,opt,name=parentnamefixup" json:"parentnamefixup,omitempty"` + Manifestloadpriority *int32 `protobuf:"varint,14,opt,name=manifestloadpriority" json:"manifestloadpriority,omitempty"` + Worldgroupid *uint32 `protobuf:"varint,15,opt,name=worldgroupid" json:"worldgroupid,omitempty"` + Creationsequence *uint32 `protobuf:"varint,16,opt,name=creationsequence" json:"creationsequence,omitempty"` + Savegamefilename *string `protobuf:"bytes,17,opt,name=savegamefilename" json:"savegamefilename,omitempty"` + Spawngroupparenthandle *uint32 `protobuf:"varint,18,opt,name=spawngroupparenthandle" json:"spawngroupparenthandle,omitempty"` + Leveltransition *bool `protobuf:"varint,19,opt,name=leveltransition" json:"leveltransition,omitempty"` + Worldgroupname *string `protobuf:"bytes,20,opt,name=worldgroupname" json:"worldgroupname,omitempty"` +} + +func (x *CNETMsg_SpawnGroup_Load) Reset() { + *x = CNETMsg_SpawnGroup_Load{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SpawnGroup_Load) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SpawnGroup_Load) ProtoMessage() {} + +func (x *CNETMsg_SpawnGroup_Load) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SpawnGroup_Load.ProtoReflect.Descriptor instead. +func (*CNETMsg_SpawnGroup_Load) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{18} +} + +func (x *CNETMsg_SpawnGroup_Load) GetWorldname() string { + if x != nil && x.Worldname != nil { + return *x.Worldname + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetEntitylumpname() string { + if x != nil && x.Entitylumpname != nil { + return *x.Entitylumpname + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetEntityfiltername() string { + if x != nil && x.Entityfiltername != nil { + return *x.Entityfiltername + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetSpawngrouphandle() uint32 { + if x != nil && x.Spawngrouphandle != nil { + return *x.Spawngrouphandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetSpawngroupownerhandle() uint32 { + if x != nil && x.Spawngroupownerhandle != nil { + return *x.Spawngroupownerhandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetWorldOffsetPos() *CMsgVector { + if x != nil { + return x.WorldOffsetPos + } + return nil +} + +func (x *CNETMsg_SpawnGroup_Load) GetWorldOffsetAngle() *CMsgQAngle { + if x != nil { + return x.WorldOffsetAngle + } + return nil +} + +func (x *CNETMsg_SpawnGroup_Load) GetSpawngroupmanifest() []byte { + if x != nil { + return x.Spawngroupmanifest + } + return nil +} + +func (x *CNETMsg_SpawnGroup_Load) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetTickcount() int32 { + if x != nil && x.Tickcount != nil { + return *x.Tickcount + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetManifestincomplete() bool { + if x != nil && x.Manifestincomplete != nil { + return *x.Manifestincomplete + } + return false +} + +func (x *CNETMsg_SpawnGroup_Load) GetLocalnamefixup() string { + if x != nil && x.Localnamefixup != nil { + return *x.Localnamefixup + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetParentnamefixup() string { + if x != nil && x.Parentnamefixup != nil { + return *x.Parentnamefixup + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetManifestloadpriority() int32 { + if x != nil && x.Manifestloadpriority != nil { + return *x.Manifestloadpriority + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetWorldgroupid() uint32 { + if x != nil && x.Worldgroupid != nil { + return *x.Worldgroupid + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetCreationsequence() uint32 { + if x != nil && x.Creationsequence != nil { + return *x.Creationsequence + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetSavegamefilename() string { + if x != nil && x.Savegamefilename != nil { + return *x.Savegamefilename + } + return "" +} + +func (x *CNETMsg_SpawnGroup_Load) GetSpawngroupparenthandle() uint32 { + if x != nil && x.Spawngroupparenthandle != nil { + return *x.Spawngroupparenthandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Load) GetLeveltransition() bool { + if x != nil && x.Leveltransition != nil { + return *x.Leveltransition + } + return false +} + +func (x *CNETMsg_SpawnGroup_Load) GetWorldgroupname() string { + if x != nil && x.Worldgroupname != nil { + return *x.Worldgroupname + } + return "" +} + +type CNETMsg_SpawnGroup_ManifestUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spawngrouphandle *uint32 `protobuf:"varint,1,opt,name=spawngrouphandle" json:"spawngrouphandle,omitempty"` + Spawngroupmanifest []byte `protobuf:"bytes,2,opt,name=spawngroupmanifest" json:"spawngroupmanifest,omitempty"` + Manifestincomplete *bool `protobuf:"varint,3,opt,name=manifestincomplete" json:"manifestincomplete,omitempty"` +} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) Reset() { + *x = CNETMsg_SpawnGroup_ManifestUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SpawnGroup_ManifestUpdate) ProtoMessage() {} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SpawnGroup_ManifestUpdate.ProtoReflect.Descriptor instead. +func (*CNETMsg_SpawnGroup_ManifestUpdate) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{19} +} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) GetSpawngrouphandle() uint32 { + if x != nil && x.Spawngrouphandle != nil { + return *x.Spawngrouphandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) GetSpawngroupmanifest() []byte { + if x != nil { + return x.Spawngroupmanifest + } + return nil +} + +func (x *CNETMsg_SpawnGroup_ManifestUpdate) GetManifestincomplete() bool { + if x != nil && x.Manifestincomplete != nil { + return *x.Manifestincomplete + } + return false +} + +type CNETMsg_SpawnGroup_SetCreationTick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spawngrouphandle *uint32 `protobuf:"varint,1,opt,name=spawngrouphandle" json:"spawngrouphandle,omitempty"` + Tickcount *int32 `protobuf:"varint,2,opt,name=tickcount" json:"tickcount,omitempty"` + Creationsequence *uint32 `protobuf:"varint,3,opt,name=creationsequence" json:"creationsequence,omitempty"` +} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) Reset() { + *x = CNETMsg_SpawnGroup_SetCreationTick{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SpawnGroup_SetCreationTick) ProtoMessage() {} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SpawnGroup_SetCreationTick.ProtoReflect.Descriptor instead. +func (*CNETMsg_SpawnGroup_SetCreationTick) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{20} +} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) GetSpawngrouphandle() uint32 { + if x != nil && x.Spawngrouphandle != nil { + return *x.Spawngrouphandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) GetTickcount() int32 { + if x != nil && x.Tickcount != nil { + return *x.Tickcount + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_SetCreationTick) GetCreationsequence() uint32 { + if x != nil && x.Creationsequence != nil { + return *x.Creationsequence + } + return 0 +} + +type CNETMsg_SpawnGroup_Unload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spawngrouphandle *uint32 `protobuf:"varint,1,opt,name=spawngrouphandle" json:"spawngrouphandle,omitempty"` + Flags *uint32 `protobuf:"varint,2,opt,name=flags" json:"flags,omitempty"` + Tickcount *int32 `protobuf:"varint,3,opt,name=tickcount" json:"tickcount,omitempty"` +} + +func (x *CNETMsg_SpawnGroup_Unload) Reset() { + *x = CNETMsg_SpawnGroup_Unload{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SpawnGroup_Unload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SpawnGroup_Unload) ProtoMessage() {} + +func (x *CNETMsg_SpawnGroup_Unload) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SpawnGroup_Unload.ProtoReflect.Descriptor instead. +func (*CNETMsg_SpawnGroup_Unload) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{21} +} + +func (x *CNETMsg_SpawnGroup_Unload) GetSpawngrouphandle() uint32 { + if x != nil && x.Spawngrouphandle != nil { + return *x.Spawngrouphandle + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Unload) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CNETMsg_SpawnGroup_Unload) GetTickcount() int32 { + if x != nil && x.Tickcount != nil { + return *x.Tickcount + } + return 0 +} + +type CNETMsg_SpawnGroup_LoadCompleted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spawngrouphandle *uint32 `protobuf:"varint,1,opt,name=spawngrouphandle" json:"spawngrouphandle,omitempty"` +} + +func (x *CNETMsg_SpawnGroup_LoadCompleted) Reset() { + *x = CNETMsg_SpawnGroup_LoadCompleted{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_SpawnGroup_LoadCompleted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_SpawnGroup_LoadCompleted) ProtoMessage() {} + +func (x *CNETMsg_SpawnGroup_LoadCompleted) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_SpawnGroup_LoadCompleted.ProtoReflect.Descriptor instead. +func (*CNETMsg_SpawnGroup_LoadCompleted) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{22} +} + +func (x *CNETMsg_SpawnGroup_LoadCompleted) GetSpawngrouphandle() uint32 { + if x != nil && x.Spawngrouphandle != nil { + return *x.Spawngrouphandle + } + return 0 +} + +type CSVCMsg_GameSessionConfiguration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsMultiplayer *bool `protobuf:"varint,1,opt,name=is_multiplayer,json=isMultiplayer" json:"is_multiplayer,omitempty"` + IsLoadsavegame *bool `protobuf:"varint,2,opt,name=is_loadsavegame,json=isLoadsavegame" json:"is_loadsavegame,omitempty"` + IsBackgroundMap *bool `protobuf:"varint,3,opt,name=is_background_map,json=isBackgroundMap" json:"is_background_map,omitempty"` + IsHeadless *bool `protobuf:"varint,4,opt,name=is_headless,json=isHeadless" json:"is_headless,omitempty"` + MinClientLimit *uint32 `protobuf:"varint,5,opt,name=min_client_limit,json=minClientLimit" json:"min_client_limit,omitempty"` + MaxClientLimit *uint32 `protobuf:"varint,6,opt,name=max_client_limit,json=maxClientLimit" json:"max_client_limit,omitempty"` + MaxClients *uint32 `protobuf:"varint,7,opt,name=max_clients,json=maxClients" json:"max_clients,omitempty"` + TickInterval *uint32 `protobuf:"fixed32,8,opt,name=tick_interval,json=tickInterval" json:"tick_interval,omitempty"` + Hostname *string `protobuf:"bytes,9,opt,name=hostname" json:"hostname,omitempty"` + Savegamename *string `protobuf:"bytes,10,opt,name=savegamename" json:"savegamename,omitempty"` + S1Mapname *string `protobuf:"bytes,11,opt,name=s1_mapname,json=s1Mapname" json:"s1_mapname,omitempty"` + Gamemode *string `protobuf:"bytes,12,opt,name=gamemode" json:"gamemode,omitempty"` + ServerIpAddress *string `protobuf:"bytes,13,opt,name=server_ip_address,json=serverIpAddress" json:"server_ip_address,omitempty"` + Data []byte `protobuf:"bytes,14,opt,name=data" json:"data,omitempty"` + IsLocalonly *bool `protobuf:"varint,15,opt,name=is_localonly,json=isLocalonly" json:"is_localonly,omitempty"` + NoSteamServer *bool `protobuf:"varint,19,opt,name=no_steam_server,json=noSteamServer" json:"no_steam_server,omitempty"` + IsTransition *bool `protobuf:"varint,16,opt,name=is_transition,json=isTransition" json:"is_transition,omitempty"` + Previouslevel *string `protobuf:"bytes,17,opt,name=previouslevel" json:"previouslevel,omitempty"` + Landmarkname *string `protobuf:"bytes,18,opt,name=landmarkname" json:"landmarkname,omitempty"` +} + +func (x *CSVCMsg_GameSessionConfiguration) Reset() { + *x = CSVCMsg_GameSessionConfiguration{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameSessionConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameSessionConfiguration) ProtoMessage() {} + +func (x *CSVCMsg_GameSessionConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameSessionConfiguration.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameSessionConfiguration) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{23} +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsMultiplayer() bool { + if x != nil && x.IsMultiplayer != nil { + return *x.IsMultiplayer + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsLoadsavegame() bool { + if x != nil && x.IsLoadsavegame != nil { + return *x.IsLoadsavegame + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsBackgroundMap() bool { + if x != nil && x.IsBackgroundMap != nil { + return *x.IsBackgroundMap + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsHeadless() bool { + if x != nil && x.IsHeadless != nil { + return *x.IsHeadless + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetMinClientLimit() uint32 { + if x != nil && x.MinClientLimit != nil { + return *x.MinClientLimit + } + return 0 +} + +func (x *CSVCMsg_GameSessionConfiguration) GetMaxClientLimit() uint32 { + if x != nil && x.MaxClientLimit != nil { + return *x.MaxClientLimit + } + return 0 +} + +func (x *CSVCMsg_GameSessionConfiguration) GetMaxClients() uint32 { + if x != nil && x.MaxClients != nil { + return *x.MaxClients + } + return 0 +} + +func (x *CSVCMsg_GameSessionConfiguration) GetTickInterval() uint32 { + if x != nil && x.TickInterval != nil { + return *x.TickInterval + } + return 0 +} + +func (x *CSVCMsg_GameSessionConfiguration) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetSavegamename() string { + if x != nil && x.Savegamename != nil { + return *x.Savegamename + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetS1Mapname() string { + if x != nil && x.S1Mapname != nil { + return *x.S1Mapname + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetGamemode() string { + if x != nil && x.Gamemode != nil { + return *x.Gamemode + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetServerIpAddress() string { + if x != nil && x.ServerIpAddress != nil { + return *x.ServerIpAddress + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsLocalonly() bool { + if x != nil && x.IsLocalonly != nil { + return *x.IsLocalonly + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetNoSteamServer() bool { + if x != nil && x.NoSteamServer != nil { + return *x.NoSteamServer + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetIsTransition() bool { + if x != nil && x.IsTransition != nil { + return *x.IsTransition + } + return false +} + +func (x *CSVCMsg_GameSessionConfiguration) GetPreviouslevel() string { + if x != nil && x.Previouslevel != nil { + return *x.Previouslevel + } + return "" +} + +func (x *CSVCMsg_GameSessionConfiguration) GetLandmarkname() string { + if x != nil && x.Landmarkname != nil { + return *x.Landmarkname + } + return "" +} + +type CNETMsg_DebugOverlay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Etype *int32 `protobuf:"varint,1,opt,name=etype" json:"etype,omitempty"` + Vectors []*CMsgVector `protobuf:"bytes,2,rep,name=vectors" json:"vectors,omitempty"` + Colors []*CMsgRGBA `protobuf:"bytes,3,rep,name=colors" json:"colors,omitempty"` + Dimensions []float32 `protobuf:"fixed32,4,rep,name=dimensions" json:"dimensions,omitempty"` + Times []float32 `protobuf:"fixed32,5,rep,name=times" json:"times,omitempty"` + Bools []bool `protobuf:"varint,6,rep,name=bools" json:"bools,omitempty"` + Uint64S []uint64 `protobuf:"varint,7,rep,name=uint64s" json:"uint64s,omitempty"` + Strings []string `protobuf:"bytes,8,rep,name=strings" json:"strings,omitempty"` +} + +func (x *CNETMsg_DebugOverlay) Reset() { + *x = CNETMsg_DebugOverlay{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CNETMsg_DebugOverlay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CNETMsg_DebugOverlay) ProtoMessage() {} + +func (x *CNETMsg_DebugOverlay) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CNETMsg_DebugOverlay.ProtoReflect.Descriptor instead. +func (*CNETMsg_DebugOverlay) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{24} +} + +func (x *CNETMsg_DebugOverlay) GetEtype() int32 { + if x != nil && x.Etype != nil { + return *x.Etype + } + return 0 +} + +func (x *CNETMsg_DebugOverlay) GetVectors() []*CMsgVector { + if x != nil { + return x.Vectors + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetColors() []*CMsgRGBA { + if x != nil { + return x.Colors + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetDimensions() []float32 { + if x != nil { + return x.Dimensions + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetTimes() []float32 { + if x != nil { + return x.Times + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetBools() []bool { + if x != nil { + return x.Bools + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetUint64S() []uint64 { + if x != nil { + return x.Uint64S + } + return nil +} + +func (x *CNETMsg_DebugOverlay) GetStrings() []string { + if x != nil { + return x.Strings + } + return nil +} + +type CMsg_CVars_CVar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CMsg_CVars_CVar) Reset() { + *x = CMsg_CVars_CVar{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsg_CVars_CVar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsg_CVars_CVar) ProtoMessage() {} + +func (x *CMsg_CVars_CVar) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsg_CVars_CVar.ProtoReflect.Descriptor instead. +func (*CMsg_CVars_CVar) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *CMsg_CVars_CVar) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsg_CVars_CVar) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CSVCMsg_GameEventKeyT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + ValString *string `protobuf:"bytes,2,opt,name=val_string,json=valString" json:"val_string,omitempty"` + ValFloat *float32 `protobuf:"fixed32,3,opt,name=val_float,json=valFloat" json:"val_float,omitempty"` + ValLong *int32 `protobuf:"varint,4,opt,name=val_long,json=valLong" json:"val_long,omitempty"` + ValShort *int32 `protobuf:"varint,5,opt,name=val_short,json=valShort" json:"val_short,omitempty"` + ValByte *int32 `protobuf:"varint,6,opt,name=val_byte,json=valByte" json:"val_byte,omitempty"` + ValBool *bool `protobuf:"varint,7,opt,name=val_bool,json=valBool" json:"val_bool,omitempty"` + ValUint64 *uint64 `protobuf:"varint,8,opt,name=val_uint64,json=valUint64" json:"val_uint64,omitempty"` +} + +func (x *CSVCMsg_GameEventKeyT) Reset() { + *x = CSVCMsg_GameEventKeyT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsg_GameEventKeyT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsg_GameEventKeyT) ProtoMessage() {} + +func (x *CSVCMsg_GameEventKeyT) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsg_GameEventKeyT.ProtoReflect.Descriptor instead. +func (*CSVCMsg_GameEventKeyT) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{16, 0} +} + +func (x *CSVCMsg_GameEventKeyT) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *CSVCMsg_GameEventKeyT) GetValString() string { + if x != nil && x.ValString != nil { + return *x.ValString + } + return "" +} + +func (x *CSVCMsg_GameEventKeyT) GetValFloat() float32 { + if x != nil && x.ValFloat != nil { + return *x.ValFloat + } + return 0 +} + +func (x *CSVCMsg_GameEventKeyT) GetValLong() int32 { + if x != nil && x.ValLong != nil { + return *x.ValLong + } + return 0 +} + +func (x *CSVCMsg_GameEventKeyT) GetValShort() int32 { + if x != nil && x.ValShort != nil { + return *x.ValShort + } + return 0 +} + +func (x *CSVCMsg_GameEventKeyT) GetValByte() int32 { + if x != nil && x.ValByte != nil { + return *x.ValByte + } + return 0 +} + +func (x *CSVCMsg_GameEventKeyT) GetValBool() bool { + if x != nil && x.ValBool != nil { + return *x.ValBool + } + return false +} + +func (x *CSVCMsg_GameEventKeyT) GetValUint64() uint64 { + if x != nil && x.ValUint64 != nil { + return *x.ValUint64 + } + return 0 +} + +type CSVCMsgList_GameEventsEventT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tick *int32 `protobuf:"varint,1,opt,name=tick" json:"tick,omitempty"` + Event *CSVCMsg_GameEvent `protobuf:"bytes,2,opt,name=event" json:"event,omitempty"` +} + +func (x *CSVCMsgList_GameEventsEventT) Reset() { + *x = CSVCMsgList_GameEventsEventT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_networkbasetypes_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSVCMsgList_GameEventsEventT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSVCMsgList_GameEventsEventT) ProtoMessage() {} + +func (x *CSVCMsgList_GameEventsEventT) ProtoReflect() protoreflect.Message { + mi := &file_s2_networkbasetypes_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSVCMsgList_GameEventsEventT.ProtoReflect.Descriptor instead. +func (*CSVCMsgList_GameEventsEventT) Descriptor() ([]byte, []int) { + return file_s2_networkbasetypes_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *CSVCMsgList_GameEventsEventT) GetTick() int32 { + if x != nil && x.Tick != nil { + return *x.Tick + } + return 0 +} + +func (x *CSVCMsgList_GameEventsEventT) GetEvent() *CSVCMsg_GameEvent { + if x != nil { + return x.Event + } + return nil +} + +var File_s2_networkbasetypes_proto protoreflect.FileDescriptor + +var file_s2_networkbasetypes_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x1b, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x44, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, + 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, + 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x12, 0x0c, 0x0a, 0x01, 0x77, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x77, 0x22, 0x2a, 0x0a, 0x0c, 0x43, 0x4d, 0x73, + 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x44, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x36, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, + 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, + 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x48, 0x0a, + 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x12, + 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, + 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x77, 0x22, 0xd5, 0x01, 0x0a, 0x0d, 0x43, 0x4d, 0x73, 0x67, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x12, 0x5b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x42, 0x0a, 0x08, 0x43, 0x4d, 0x73, 0x67, 0x52, 0x47, 0x42, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x01, 0x62, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x01, 0x61, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x78, 0x75, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6b, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x61, 0x6b, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x68, 0x6c, 0x74, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x69, 0x73, 0x68, 0x6c, 0x74, 0x76, 0x22, 0x3b, 0x0a, 0x0a, 0x43, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, + 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, + 0x56, 0x61, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x05, 0x63, 0x76, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x56, 0x61, 0x72, 0x73, 0x2e, 0x43, 0x56, 0x61, 0x72, 0x52, + 0x05, 0x63, 0x76, 0x61, 0x72, 0x73, 0x1a, 0x30, 0x0a, 0x04, 0x43, 0x56, 0x61, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4e, 0x45, 0x54, + 0x4d, 0x73, 0x67, 0x5f, 0x4e, 0x4f, 0x50, 0x22, 0x2d, 0x0a, 0x17, 0x43, 0x4e, 0x45, 0x54, 0x4d, + 0x73, 0x67, 0x5f, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x43, 0x4e, 0x45, 0x54, 0x4d, + 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x7a, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x45, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, 0x1a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xda, 0x03, 0x0a, 0x0c, 0x43, 0x4e, + 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, + 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x25, + 0x0a, 0x0e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x68, 0x6f, 0x73, + 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x22, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1f, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x21, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, + 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x1e, 0x68, 0x6f, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x3a, + 0x0a, 0x19, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x17, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x6c, + 0x74, 0x76, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x68, 0x6c, 0x74, 0x76, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x56, 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, + 0x67, 0x5f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x64, + 0x0a, 0x11, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x56, 0x61, 0x72, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x76, 0x61, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x56, 0x61, 0x72, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x76, 0x61, 0x72, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x13, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, + 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x0c, + 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x3a, 0x10, 0x53, 0x49, + 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x0b, + 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, + 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x64, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x22, 0x8b, 0x03, 0x0a, + 0x11, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x56, 0x0a, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x52, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x1a, 0xe4, 0x01, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x76, 0x61, 0x6c, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x5f, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x61, 0x6c, + 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x76, + 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x22, 0xee, 0x01, 0x0a, 0x16, 0x43, + 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x71, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xd3, 0x07, 0x0a, 0x17, + 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6c, + 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x6c, + 0x75, 0x6d, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x6c, 0x75, 0x6d, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x63, 0x0a, 0x12, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, + 0x10, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, + 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6e, 0x61, + 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x12, 0x28, 0x0a, + 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x66, 0x69, 0x78, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6c, + 0x6f, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, + 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, + 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x66, + 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x6f, 0x72, + 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x21, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x12, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x12, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, + 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, + 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0x7b, 0x0a, 0x19, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, + 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4e, 0x0a, + 0x20, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x61, + 0x77, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xce, 0x05, + 0x0a, 0x20, 0x43, 0x53, 0x56, 0x43, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x5f, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, + 0x73, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x70, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, + 0x28, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0c, 0x74, 0x69, 0x63, + 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x61, 0x76, + 0x65, 0x67, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x31, 0x5f, + 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x31, 0x4d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, + 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x6e, 0x6f, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, + 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xca, + 0x02, 0x0a, 0x14, 0x43, 0x4e, 0x45, 0x54, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, + 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4b, + 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x52, + 0x47, 0x42, 0x41, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x08, + 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2a, 0xd4, 0x01, 0x0a, 0x0d, + 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x12, 0x14, 0x0a, + 0x10, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, + 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x49, 0x47, + 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x03, 0x12, 0x18, + 0x0a, 0x14, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, + 0x45, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x47, 0x4e, + 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x05, 0x12, + 0x14, 0x0a, 0x10, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, + 0x55, 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x49, 0x47, 0x4e, 0x4f, 0x4e, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x10, 0x07, 0x2a, 0xc4, 0x02, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x5f, 0x4e, 0x4f, 0x50, 0x10, 0x00, + 0x12, 0x12, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x6c, 0x69, + 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x10, 0x03, 0x12, 0x0c, 0x0a, + 0x08, 0x6e, 0x65, 0x74, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6e, + 0x65, 0x74, 0x5f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6d, 0x64, 0x10, 0x05, 0x12, 0x11, + 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x10, + 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x08, 0x12, + 0x21, 0x0a, 0x1d, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x63, 0x6b, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x10, + 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x5f, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x10, 0x0f, 0x2a, 0xcc, 0x02, 0x0a, 0x11, 0x53, 0x70, + 0x61, 0x77, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x74, 0x12, + 0x27, 0x0a, 0x23, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x49, 0x45, 0x53, 0x5f, 0x46, 0x52, 0x4f, + 0x4d, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x50, 0x41, 0x57, + 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x53, 0x50, 0x41, + 0x57, 0x4e, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x49, 0x45, 0x53, 0x10, 0x02, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x59, 0x4e, + 0x43, 0x48, 0x52, 0x4f, 0x4e, 0x4f, 0x55, 0x53, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x10, 0x04, + 0x12, 0x26, 0x0a, 0x22, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x49, 0x53, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x50, 0x41, 0x57, 0x4e, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x53, 0x50, 0x41, 0x57, + 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, + 0x49, 0x45, 0x53, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x54, 0x49, 0x4c, + 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x40, 0x12, 0x24, 0x0a, 0x1f, 0x53, 0x50, 0x41, + 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x80, 0x01, 0x12, + 0x27, 0x0a, 0x22, 0x53, 0x50, 0x41, 0x57, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x5f, + 0x57, 0x4f, 0x52, 0x4c, 0x44, 0x10, 0x80, 0x02, +} + +var ( + file_s2_networkbasetypes_proto_rawDescOnce sync.Once + file_s2_networkbasetypes_proto_rawDescData = file_s2_networkbasetypes_proto_rawDesc +) + +func file_s2_networkbasetypes_proto_rawDescGZIP() []byte { + file_s2_networkbasetypes_proto_rawDescOnce.Do(func() { + file_s2_networkbasetypes_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_networkbasetypes_proto_rawDescData) + }) + return file_s2_networkbasetypes_proto_rawDescData +} + +var file_s2_networkbasetypes_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_s2_networkbasetypes_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_s2_networkbasetypes_proto_goTypes = []interface{}{ + (SignonStateT)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.SignonState_t + (NET_Messages)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.NET_Messages + (SpawnGroupFlagsT)(0), // 2: com.github.markus_wa.demoinfocs_golang.s2.SpawnGroupFlags_t + (*CMsgVector)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + (*CMsgVector2D)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector2D + (*CMsgQAngle)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + (*CMsgQuaternion)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgQuaternion + (*CMsgTransform)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgTransform + (*CMsgRGBA)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + (*CMsgPlayerInfo)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgPlayerInfo + (*CEntityMsg)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + (*CMsg_CVars)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsg_CVars + (*CNETMsg_NOP)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_NOP + (*CNETMsg_SplitScreenUser)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SplitScreenUser + (*CNETMsg_Disconnect)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_Disconnect + (*CNETMsg_Tick)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_Tick + (*CNETMsg_StringCmd)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_StringCmd + (*CNETMsg_SetConVar)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SetConVar + (*CNETMsg_SignonState)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SignonState + (*CSVCMsg_GameEvent)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEvent + (*CSVCMsgList_GameEvents)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsgList_GameEvents + (*CNETMsg_SpawnGroup_Load)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_Load + (*CNETMsg_SpawnGroup_ManifestUpdate)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_ManifestUpdate + (*CNETMsg_SpawnGroup_SetCreationTick)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_SetCreationTick + (*CNETMsg_SpawnGroup_Unload)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_Unload + (*CNETMsg_SpawnGroup_LoadCompleted)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_LoadCompleted + (*CSVCMsg_GameSessionConfiguration)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameSessionConfiguration + (*CNETMsg_DebugOverlay)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_DebugOverlay + (*CMsg_CVars_CVar)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsg_CVars.CVar + (*CSVCMsg_GameEventKeyT)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEvent.key_t + (*CSVCMsgList_GameEventsEventT)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsgList_GameEvents.event_t + (ENetworkDisconnectionReason)(0), // 31: com.github.markus_wa.demoinfocs_golang.s2.ENetworkDisconnectionReason +} +var file_s2_networkbasetypes_proto_depIdxs = []int32{ + 3, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgTransform.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 6, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgTransform.orientation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQuaternion + 28, // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsg_CVars.cvars:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsg_CVars.CVar + 31, // 3: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_Disconnect.reason:type_name -> com.github.markus_wa.demoinfocs_golang.s2.ENetworkDisconnectionReason + 11, // 4: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SetConVar.convars:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsg_CVars + 0, // 5: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SignonState.signon_state:type_name -> com.github.markus_wa.demoinfocs_golang.s2.SignonState_t + 29, // 6: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEvent.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEvent.key_t + 30, // 7: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsgList_GameEvents.events:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsgList_GameEvents.event_t + 3, // 8: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_Load.world_offset_pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 5, // 9: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_SpawnGroup_Load.world_offset_angle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 3, // 10: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_DebugOverlay.vectors:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 8, // 11: com.github.markus_wa.demoinfocs_golang.s2.CNETMsg_DebugOverlay.colors:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgRGBA + 19, // 12: com.github.markus_wa.demoinfocs_golang.s2.CSVCMsgList_GameEvents.event_t.event:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CSVCMsg_GameEvent + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_s2_networkbasetypes_proto_init() } +func file_s2_networkbasetypes_proto_init() { + if File_s2_networkbasetypes_proto != nil { + return + } + file_s2_network_connection_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_networkbasetypes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgVector); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgVector2D); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgQAngle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgQuaternion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTransform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgRGBA); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgPlayerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsg_CVars); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_NOP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SplitScreenUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_Disconnect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_Tick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_StringCmd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SetConVar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SignonState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsgList_GameEvents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SpawnGroup_Load); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SpawnGroup_ManifestUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SpawnGroup_SetCreationTick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SpawnGroup_Unload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_SpawnGroup_LoadCompleted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameSessionConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CNETMsg_DebugOverlay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsg_CVars_CVar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsg_GameEventKeyT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_networkbasetypes_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSVCMsgList_GameEventsEventT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_networkbasetypes_proto_rawDesc, + NumEnums: 3, + NumMessages: 28, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_networkbasetypes_proto_goTypes, + DependencyIndexes: file_s2_networkbasetypes_proto_depIdxs, + EnumInfos: file_s2_networkbasetypes_proto_enumTypes, + MessageInfos: file_s2_networkbasetypes_proto_msgTypes, + }.Build() + File_s2_networkbasetypes_proto = out.File + file_s2_networkbasetypes_proto_rawDesc = nil + file_s2_networkbasetypes_proto_goTypes = nil + file_s2_networkbasetypes_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages.proto new file mode 100644 index 00000000..edcde54b --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages.proto @@ -0,0 +1,553 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInQueue = 4008; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum GC_BannedWordType { + GC_BANNED_WORD_DISABLE_WORD = 0; + GC_BANNED_WORD_ENABLE_WORD = 1; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; + optional string url = 3; + repeated uint64 item_ids = 4; +} + +message CSOPartyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CSOLobbyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_invite = 3; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional uint32 team_invite = 4; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional fixed32 bonus_xp_timestamp_refresh = 12; + optional uint32 bonus_xp_usedflags = 13; + optional uint32 elevated_state = 14; + optional uint32 elevated_timestamp = 15; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated CSOItemCriteriaCondition conditions = 9; + optional int32 item_rarity = 10; + optional bool item_rarity_set = 11; + optional bool recent_only = 12; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated CSOItemCriteria input_items_criteria = 20; + repeated CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional CSOItemCriteria criteria = 2; +} + +message CMsgIncrementKillCountAttribute { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 amount = 5; +} + +message CMsgApplySticker { + optional uint64 sticker_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 sticker_slot = 3; + optional uint32 baseitem_defidx = 4; + optional float sticker_wear = 5; +} + +message CMsgModifyItemAttribute { + optional uint64 item_id = 1; + optional uint32 attr_defidx = 2; + optional uint32 attr_value = 3; +} + +message CMsgApplyStatTrakSwap { + optional uint64 tool_item_id = 1; + optional uint64 item_1_item_id = 2; + optional uint64 item_2_item_id = 3; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + repeated CSOEconItemAttribute attribute = 12; + optional CSOEconItem interior_item = 13; + optional bool in_use = 14 [default = false]; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated CSOEconItemEquipped equipped_state = 18; + optional uint32 rarity = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional bool swap = 4; +} + +message CMsgAdjustItemEquippedStateMulti { + repeated uint64 t_equips = 1; + repeated uint64 ct_equips = 2; + repeated uint64 noteam_equips = 3; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgStoreGetUserData { + optional fixed32 price_sheet_version = 1; + optional int32 currency = 2; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency_deprecated = 2; + optional string country_deprecated = 3; + optional fixed32 price_sheet_version = 4; + optional bytes price_sheet = 8; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url_DEPRECATED2013 = 3; + optional string items_game_url = 4; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated CMsgConVarValue convars = 1; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged__DEPRECATED { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; + optional uint64 item_id = 7; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint32 legacy_item_id = 1; + optional uint32 position = 2; + optional uint64 item_id = 3; + } + + repeated CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1; + optional fixed32 expiration_date = 2; + optional float bonus = 3; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 admin = 3; + optional uint32 itemindex = 4; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CMsgGCItemPreviewItemBoughtNotification { + optional uint32 item_def_index = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCBannedWordListRequest { + optional uint32 ban_list_group_id = 1; + optional uint32 word_id = 2; +} + +message CMsgGCRequestAnnouncements { +} + +message CMsgGCRequestAnnouncementsResponse { + optional string announcement_title = 1; + optional string announcement = 2; + optional string nextmatch_title = 3; + optional string nextmatch = 4; +} + +message CMsgGCBannedWord { + optional uint32 word_id = 1; + optional GC_BannedWordType word_type = 2 [default = GC_BANNED_WORD_DISABLE_WORD]; + optional string word = 3; +} + +message CMsgGCBannedWordListResponse { + optional uint32 ban_list_group_id = 1; + repeated CMsgGCBannedWord word_list = 2; +} + +message CMsgGCToGCBannedWordListBroadcast { + optional CMsgGCBannedWordListResponse broadcast = 1; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CSOEconDefaultEquippedDefinitionInstanceClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 item_definition = 2; + optional uint32 class_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCToGCIsTrustedServer { + optional fixed64 steam_id = 1; +} + +message CMsgGCToGCIsTrustedServerResponse { + optional bool is_trusted = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgGCToGCRequestPassportItemGrant { + optional fixed64 steam_id = 1; + optional uint32 league_id = 2; + optional int32 reward_flag = 3; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; +} + +message CSOEconEquipSlot { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint64 item_id = 4; + optional uint32 item_definition = 5; +} + +message CMsgAdjustEquipSlot { + optional uint32 class_id = 1; + optional uint32 slot_id = 2; + optional uint64 item_id = 3; +} + +message CMsgAdjustEquipSlots { + repeated CMsgAdjustEquipSlot slots = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages_csgo.proto b/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages_csgo.proto new file mode 100644 index 00000000..d0921a01 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/base_gcmessages_csgo.proto @@ -0,0 +1,549 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages.proto"; + +enum EGCBaseMsg { + k_EMsgGCSystemMessage = 4001; + k_EMsgGCReplicateConVars = 4002; + k_EMsgGCConVarUpdated = 4003; + k_EMsgGCInQueue = 4008; + k_EMsgGCInviteToParty = 4501; + k_EMsgGCInvitationCreated = 4502; + k_EMsgGCPartyInviteResponse = 4503; + k_EMsgGCKickFromParty = 4504; + k_EMsgGCLeaveParty = 4505; + k_EMsgGCServerAvailable = 4506; + k_EMsgGCClientConnectToServer = 4507; + k_EMsgGCGameServerInfo = 4508; + k_EMsgGCError = 4509; + k_EMsgGCReplay_UploadedToYouTube = 4510; + k_EMsgGCLANServerAvailable = 4511; +} + +enum EGCBaseProtoObjectTypes { + k_EProtoObjectPartyInvite = 1001; + k_EProtoObjectLobbyInvite = 1002; +} + +enum GC_BannedWordType { + GC_BANNED_WORD_DISABLE_WORD = 0; + GC_BANNED_WORD_ENABLE_WORD = 1; +} + +message CGCStorePurchaseInit_LineItem { + optional uint32 item_def_id = 1; + optional uint32 quantity = 2; + optional uint32 cost_in_local_currency = 3; + optional uint32 purchase_type = 4; +} + +message CMsgGCStorePurchaseInit { + optional string country = 1; + optional int32 language = 2; + optional int32 currency = 3; + repeated CGCStorePurchaseInit_LineItem line_items = 4; +} + +message CMsgGCStorePurchaseInitResponse { + optional int32 result = 1; + optional uint64 txn_id = 2; + optional string url = 3; + repeated uint64 item_ids = 4; +} + +message CSOPartyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CSOLobbyInvite { + optional uint64 group_id = 1 [(key_field) = true]; + optional fixed64 sender_id = 2; + optional string sender_name = 3; +} + +message CMsgSystemBroadcast { + optional string message = 1; +} + +message CMsgInviteToParty { + optional fixed64 steam_id = 1; + optional uint32 client_version = 2; + optional uint32 team_invite = 3; +} + +message CMsgInvitationCreated { + optional uint64 group_id = 1; + optional fixed64 steam_id = 2; +} + +message CMsgPartyInviteResponse { + optional uint64 party_id = 1; + optional bool accept = 2; + optional uint32 client_version = 3; + optional uint32 team_invite = 4; +} + +message CMsgKickFromParty { + optional fixed64 steam_id = 1; +} + +message CMsgLeaveParty { +} + +message CMsgServerAvailable { +} + +message CMsgLANServerAvailable { + optional fixed64 lobby_id = 1; +} + +message CSOEconGameAccountClient { + optional uint32 additional_backpack_slots = 1 [default = 0]; + optional fixed32 bonus_xp_timestamp_refresh = 12; + optional uint32 bonus_xp_usedflags = 13; + optional uint32 elevated_state = 14; + optional uint32 elevated_timestamp = 15; +} + +message CSOItemCriteriaCondition { + optional int32 op = 1; + optional string field = 2; + optional bool required = 3; + optional float float_value = 4; + optional string string_value = 5; +} + +message CSOItemCriteria { + optional uint32 item_level = 1; + optional int32 item_quality = 2; + optional bool item_level_set = 3; + optional bool item_quality_set = 4; + optional uint32 initial_inventory = 5; + optional uint32 initial_quantity = 6; + optional bool ignore_enabled_flag = 8; + repeated CSOItemCriteriaCondition conditions = 9; + optional int32 item_rarity = 10; + optional bool item_rarity_set = 11; + optional bool recent_only = 12; +} + +message CSOItemRecipe { + optional uint32 def_index = 1; + optional string name = 2; + optional string n_a = 3; + optional string desc_inputs = 4; + optional string desc_outputs = 5; + optional string di_a = 6; + optional string di_b = 7; + optional string di_c = 8; + optional string do_a = 9; + optional string do_b = 10; + optional string do_c = 11; + optional bool requires_all_same_class = 12; + optional bool requires_all_same_slot = 13; + optional int32 class_usage_for_output = 14; + optional int32 slot_usage_for_output = 15; + optional int32 set_for_output = 16; + repeated CSOItemCriteria input_items_criteria = 20; + repeated CSOItemCriteria output_items_criteria = 21; + repeated uint32 input_item_dupe_counts = 22; +} + +message CMsgDevNewItemRequest { + optional fixed64 receiver = 1; + optional CSOItemCriteria criteria = 2; +} + +message CMsgIncrementKillCountAttribute { + optional fixed32 killer_account_id = 1; + optional fixed32 victim_account_id = 2; + optional uint64 item_id = 3; + optional uint32 event_type = 4; + optional uint32 amount = 5; +} + +message CMsgApplySticker { + optional uint64 sticker_item_id = 1; + optional uint64 item_item_id = 2; + optional uint32 sticker_slot = 3; + optional uint32 baseitem_defidx = 4; + optional float sticker_wear = 5; +} + +message CMsgModifyItemAttribute { + optional uint64 item_id = 1; + optional uint32 attr_defidx = 2; + optional uint32 attr_value = 3; +} + +message CMsgApplyStatTrakSwap { + optional uint64 tool_item_id = 1; + optional uint64 item_1_item_id = 2; + optional uint64 item_2_item_id = 3; +} + +message CMsgApplyStrangePart { + optional uint64 strange_part_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgApplyPennantUpgrade { + optional uint64 upgrade_item_id = 1; + optional uint64 pennant_item_id = 2; +} + +message CMsgApplyEggEssence { + optional uint64 essence_item_id = 1; + optional uint64 egg_item_id = 2; +} + +message CSOEconItemAttribute { + optional uint32 def_index = 1; + optional uint32 value = 2; + optional bytes value_bytes = 3; +} + +message CSOEconItemEquipped { + optional uint32 new_class = 1; + optional uint32 new_slot = 2; +} + +message CSOEconItem { + optional uint64 id = 1; + optional uint32 account_id = 2; + optional uint32 inventory = 3; + optional uint32 def_index = 4; + optional uint32 quantity = 5; + optional uint32 level = 6; + optional uint32 quality = 7; + optional uint32 flags = 8 [default = 0]; + optional uint32 origin = 9; + optional string custom_name = 10; + optional string custom_desc = 11; + repeated CSOEconItemAttribute attribute = 12; + optional CSOEconItem interior_item = 13; + optional bool in_use = 14 [default = false]; + optional uint32 style = 15 [default = 0]; + optional uint64 original_id = 16 [default = 0]; + repeated CSOEconItemEquipped equipped_state = 18; + optional uint32 rarity = 19; +} + +message CMsgAdjustItemEquippedState { + optional uint64 item_id = 1; + optional uint32 new_class = 2; + optional uint32 new_slot = 3; + optional bool swap = 4; +} + +message CMsgAdjustItemEquippedStateMulti { + repeated uint64 t_equips = 1; + repeated uint64 ct_equips = 2; + repeated uint64 noteam_equips = 3; +} + +message CMsgSortItems { + optional uint32 sort_type = 1; +} + +message CSOEconClaimCode { + optional uint32 account_id = 1; + optional uint32 code_type = 2; + optional uint32 time_acquired = 3; + optional string code = 4; +} + +message CMsgStoreGetUserData { + optional fixed32 price_sheet_version = 1; + optional int32 currency = 2; +} + +message CMsgStoreGetUserDataResponse { + optional int32 result = 1; + optional int32 currency_deprecated = 2; + optional string country_deprecated = 3; + optional fixed32 price_sheet_version = 4; + optional bytes price_sheet = 8; +} + +message CMsgUpdateItemSchema { + optional bytes items_game = 1; + optional fixed32 item_schema_version = 2; + optional string items_game_url = 4; +} + +message CMsgGCError { + optional string error_text = 1; +} + +message CMsgRequestInventoryRefresh { +} + +message CMsgConVarValue { + optional string name = 1; + optional string value = 2; +} + +message CMsgReplicateConVars { + repeated CMsgConVarValue convars = 1; +} + +message CMsgUseItem { + optional uint64 item_id = 1; + optional fixed64 target_steam_id = 2; + repeated uint32 gift__potential_targets = 3; + optional uint32 duel__class_lock = 4; + optional fixed64 initiator_steam_id = 5; +} + +message CMsgReplayUploadedToYouTube { + optional string youtube_url = 1; + optional string youtube_account_name = 2; + optional uint64 session_id = 3; +} + +message CMsgConsumableExhausted { + optional int32 item_def_id = 1; +} + +message CMsgItemAcknowledged__DEPRECATED { + optional uint32 account_id = 1; + optional uint32 inventory = 2; + optional uint32 def_index = 3; + optional uint32 quality = 4; + optional uint32 rarity = 5; + optional uint32 origin = 6; + optional uint64 item_id = 7; +} + +message CMsgSetItemPositions { + message ItemPosition { + optional uint32 legacy_item_id = 1; + optional uint32 position = 2; + optional uint64 item_id = 3; + } + + repeated CMsgSetItemPositions.ItemPosition item_positions = 1; +} + +message CMsgGCReportAbuse { + optional fixed64 target_steam_id = 1; + optional string description = 4; + optional uint64 gid = 5; + optional uint32 abuse_type = 2; + optional uint32 content_type = 3; + optional fixed32 target_game_server_ip = 6; + optional uint32 target_game_server_port = 7; +} + +message CMsgGCReportAbuseResponse { + optional fixed64 target_steam_id = 1; + optional uint32 result = 2; + optional string error_message = 3; +} + +message CMsgGCNameItemNotification { + optional fixed64 player_steamid = 1; + optional uint32 item_def_index = 2; + optional string item_name_custom = 3; +} + +message CMsgGCClientDisplayNotification { + optional string notification_title_localization_key = 1; + optional string notification_body_localization_key = 2; + repeated string body_substring_keys = 3; + repeated string body_substring_values = 4; +} + +message CMsgGCShowItemsPickedUp { + optional fixed64 player_steamid = 1; +} + +message CMsgGCIncrementKillCountResponse { + optional uint32 killer_account_id = 1 [(key_field) = true]; + optional uint32 num_kills = 2; + optional uint32 item_def = 3; + optional uint32 level_type = 4; +} + +message CSOEconItemDropRateBonus { + optional uint32 account_id = 1; + optional fixed32 expiration_date = 2; + optional float bonus = 3; + optional uint32 bonus_count = 4; + optional uint64 item_id = 5; + optional uint32 def_index = 6; +} + +message CSOEconItemLeagueViewPass { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 league_id = 2 [(key_field) = true]; + optional uint32 admin = 3; + optional uint32 itemindex = 4; +} + +message CSOEconItemEventTicket { + optional uint32 account_id = 1; + optional uint32 event_id = 2; + optional uint64 item_id = 3; +} + +message CMsgGCItemPreviewItemBoughtNotification { + optional uint32 item_def_index = 1; +} + +message CMsgGCStorePurchaseCancel { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseCancelResponse { + optional uint32 result = 1; +} + +message CMsgGCStorePurchaseFinalize { + optional uint64 txn_id = 1; +} + +message CMsgGCStorePurchaseFinalizeResponse { + optional uint32 result = 1; + repeated uint64 item_ids = 2; +} + +message CMsgGCBannedWordListRequest { + optional uint32 ban_list_group_id = 1; + optional uint32 word_id = 2; +} + +message CMsgGCRequestAnnouncements { +} + +message CMsgGCRequestAnnouncementsResponse { + optional string announcement_title = 1; + optional string announcement = 2; + optional string nextmatch_title = 3; + optional string nextmatch = 4; +} + +message CMsgGCBannedWord { + optional uint32 word_id = 1; + optional GC_BannedWordType word_type = 2 [default = GC_BANNED_WORD_DISABLE_WORD]; + optional string word = 3; +} + +message CMsgGCBannedWordListResponse { + optional uint32 ban_list_group_id = 1; + repeated CMsgGCBannedWord word_list = 2; +} + +message CMsgGCToGCBannedWordListBroadcast { + optional CMsgGCBannedWordListResponse broadcast = 1; +} + +message CMsgGCToGCBannedWordListUpdated { + optional uint32 group_id = 1; +} + +message CSOEconDefaultEquippedDefinitionInstanceClient { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 item_definition = 2; + optional uint32 class_id = 3 [(key_field) = true]; + optional uint32 slot_id = 4 [(key_field) = true]; +} + +message CMsgGCToGCDirtySDOCache { + optional uint32 sdo_type = 1; + optional uint64 key_uint64 = 2; +} + +message CMsgGCToGCDirtyMultipleSDOCache { + optional uint32 sdo_type = 1; + repeated uint64 key_uint64 = 2; +} + +message CMsgGCCollectItem { + optional uint64 collection_item_id = 1; + optional uint64 subject_item_id = 2; +} + +message CMsgSDONoMemcached { +} + +message CMsgGCToGCUpdateSQLKeyValue { + optional string key_name = 1; +} + +message CMsgGCToGCIsTrustedServer { + optional fixed64 steam_id = 1; +} + +message CMsgGCToGCIsTrustedServerResponse { + optional bool is_trusted = 1; +} + +message CMsgGCToGCBroadcastConsoleCommand { + optional string con_command = 1; +} + +message CMsgGCServerVersionUpdated { + optional uint32 server_version = 1; +} + +message CMsgGCClientVersionUpdated { + optional uint32 client_version = 1; +} + +message CMsgGCToGCWebAPIAccountChanged { +} + +message CMsgGCToGCRequestPassportItemGrant { + optional fixed64 steam_id = 1; + optional uint32 league_id = 2; + optional int32 reward_flag = 3; +} + +message CMsgGameServerInfo { + enum ServerType { + UNSPECIFIED = 0; + GAME = 1; + PROXY = 2; + } + + optional fixed32 server_public_ip_addr = 1; + optional fixed32 server_private_ip_addr = 2; + optional uint32 server_port = 3; + optional uint32 server_tv_port = 4; + optional string server_key = 5; + optional bool server_hibernation = 6; + optional CMsgGameServerInfo.ServerType server_type = 7 [default = UNSPECIFIED]; + optional uint32 server_region = 8; + optional float server_loadavg = 9; + optional float server_tv_broadcast_time = 10; + optional float server_game_time = 11; + optional fixed64 server_relay_connected_steam_id = 12; + optional uint32 relay_slots_max = 13; + optional int32 relays_connected = 14; + optional int32 relay_clients_connected = 15; + optional fixed64 relayed_game_server_steam_id = 16; + optional uint32 parent_relay_count = 17; + optional fixed64 tv_secret_code = 18; +} + +message CSOEconEquipSlot { + optional uint32 account_id = 1 [(key_field) = true]; + optional uint32 class_id = 2 [(key_field) = true]; + optional uint32 slot_id = 3 [(key_field) = true]; + optional uint64 item_id = 4; + optional uint32 item_definition = 5; +} + +message CMsgAdjustEquipSlot { + optional uint32 class_id = 1; + optional uint32 slot_id = 2; + optional uint64 item_id = 3; +} + +message CMsgAdjustEquipSlots { + repeated CMsgAdjustEquipSlot slots = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/c_peer2peer_netmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/c_peer2peer_netmessages.proto new file mode 100644 index 00000000..ee282749 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/c_peer2peer_netmessages.proto @@ -0,0 +1,57 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/netmessages.proto"; +import "s2/networkbasetypes.proto"; + +enum P2P_Messages { + p2p_TextMessage = 256; + p2p_Voice = 257; + p2p_Ping = 258; + p2p_VRAvatarPosition = 259; + p2p_WatchSynchronization = 260; +} + +message CP2P_TextMessage { + optional bytes text = 1; +} + +message CSteam_Voice_Encoding { + optional bytes voice_data = 1; +} + +message CP2P_Voice { + enum Handler_Flags { + Played_Audio = 1; + } + + optional CMsgVoiceAudio audio = 1; + optional uint32 broadcast_group = 2; +} + +message CP2P_Ping { + required uint64 send_time = 1; + required bool is_reply = 2; +} + +message CP2P_VRAvatarPosition { + message COrientation { + optional CMsgVector pos = 1; + optional CMsgQAngle ang = 2; + } + + repeated CP2P_VRAvatarPosition.COrientation body_parts = 1; + optional int32 hat_id = 2; + optional int32 scene_id = 3; + optional int32 world_scale = 4; +} + +message CP2P_WatchSynchronization { + optional int32 demo_tick = 1; + optional bool paused = 2; + optional uint64 tv_listen_voice_indices = 3; + optional int32 dota_spectator_mode = 4; + optional bool dota_spectator_watching_broadcaster = 5; + optional int32 dota_spectator_hero_index = 6; + optional int32 dota_spectator_autospeed = 7; + optional int32 dota_replay_speed = 8; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/clientmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/clientmessages.proto new file mode 100644 index 00000000..28a36e14 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/clientmessages.proto @@ -0,0 +1,50 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +enum EBaseClientMessages { + CM_CustomGameEvent = 280; + CM_CustomGameEventBounce = 281; + CM_ClientUIEvent = 282; + CM_DevPaletteVisibilityChanged = 283; + CM_WorldUIControllerHasPanelChanged = 284; + CM_RotateAnchor = 285; + CM_MAX_BASE = 300; +} + +enum EClientUIEvent { + EClientUIEvent_Invalid = 0; + EClientUIEvent_DialogFinished = 1; + EClientUIEvent_FireOutput = 2; +} + +message CClientMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CClientMsg_CustomGameEventBounce { + optional string event_name = 1; + optional bytes data = 2; + optional int32 player_slot = 3 [default = -1]; +} + +message CClientMsg_ClientUIEvent { + optional EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; + optional uint32 ent_ehandle = 2; + optional uint32 client_ehandle = 3; + optional string data1 = 4; + optional string data2 = 5; +} + +message CClientMsg_DevPaletteVisibilityChangedEvent { + optional bool visible = 1; +} + +message CClientMsg_WorldUIControllerHasPanelChangedEvent { + optional bool has_panel = 1; + optional uint32 client_ehandle = 2; + optional uint32 literal_hand_type = 3; +} + +message CClientMsg_RotateAnchor { + optional float angle = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/connectionless_netmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/connectionless_netmessages.proto new file mode 100644 index 00000000..95529d47 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/connectionless_netmessages.proto @@ -0,0 +1,21 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/netmessages.proto"; + +message C2S_CONNECT_Message { + optional uint32 host_version = 1; + optional uint32 auth_protocol = 2; + optional uint32 challenge_number = 3; + optional fixed64 reservation_cookie = 4; + optional bool low_violence = 5; + optional bytes encrypted_password = 6; + repeated CCLCMsg_SplitPlayerConnect splitplayers = 7; + optional bytes auth_steam = 8; + optional string challenge_context = 9; + optional sint32 use_snp = 10; +} + +message C2S_CONNECTION_Message { + optional string addon_name = 1; + optional bool use_snp = 2; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/cs_gameevents.proto b/pkg/demoinfocs/msgs2/proto/s2/cs_gameevents.proto new file mode 100644 index 00000000..9114931f --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/cs_gameevents.proto @@ -0,0 +1,34 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum ECsgoGameEvents { + GE_PlayerAnimEventId = 450; + GE_RadioIconEventId = 451; + GE_FireBulletsId = 452; +} + +message CMsgTEPlayerAnimEvent { + optional fixed32 player = 1 [default = 16777215]; + optional uint32 event = 2; + optional int32 data = 3; +} + +message CMsgTERadioIcon { + optional fixed32 player = 1 [default = 16777215]; +} + +message CMsgTEFireBullets { + optional CMsgVector origin = 1; + optional CMsgQAngle angles = 2; + optional uint32 weapon_id = 3 [default = 16777215]; + optional uint32 mode = 4; + optional uint32 seed = 5; + optional fixed32 player = 6 [default = 16777215]; + optional float inaccuracy = 7; + optional float recoil_index = 8; + optional float spread = 9; + optional int32 sound_type = 10; + optional uint32 item_def_index = 11; + optional fixed32 sound_dsp_effect = 12; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/cs_usercmd.proto b/pkg/demoinfocs/msgs2/proto/s2/cs_usercmd.proto new file mode 100644 index 00000000..8d3baa1a --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/cs_usercmd.proto @@ -0,0 +1,36 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; +import "s2/usercmd.proto"; + +message CSGOInterpolationInfoPB { + optional int32 src_tick = 1 [default = -1]; + optional int32 dst_tick = 2 [default = -1]; + optional float frac = 3 [default = 0]; +} + +message CSGOInputHistoryEntryPB { + optional CMsgQAngle view_angles = 2; + optional int32 render_tick_count = 4; + optional float render_tick_fraction = 5; + optional int32 player_tick_count = 6; + optional float player_tick_fraction = 7; + optional CSGOInterpolationInfoPB cl_interp = 12; + optional CSGOInterpolationInfoPB sv_interp0 = 13; + optional CSGOInterpolationInfoPB sv_interp1 = 14; + optional CSGOInterpolationInfoPB player_interp = 15; + optional int32 frame_number = 20; + optional int32 target_ent_index = 8 [default = -1]; + optional CMsgVector shoot_position = 3; + optional CMsgVector target_head_pos_check = 9; + optional CMsgVector target_abs_pos_check = 10; + optional CMsgQAngle target_abs_ang_check = 11; +} + +message CSGOUserCmdPB { + optional CBaseUserCmdPB base = 1; + repeated CSGOInputHistoryEntryPB input_history = 2; + optional int32 attack1_start_history_index = 6 [default = -1]; + optional int32 attack2_start_history_index = 7 [default = -1]; + optional int32 attack3_start_history_index = 8 [default = -1]; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/cstrike15_gcmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/cstrike15_gcmessages.proto new file mode 100644 index 00000000..954e788b --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/cstrike15_gcmessages.proto @@ -0,0 +1,1361 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages.proto"; +import "s2/engine_gcmessages.proto"; +import "s2/gcsdk_gcmessages.proto"; + +enum ECsgoGCMsg { + k_EMsgGCCStrike15_v2_Base = 9100; + k_EMsgGCCStrike15_v2_MatchmakingStart = 9101; + k_EMsgGCCStrike15_v2_MatchmakingStop = 9102; + k_EMsgGCCStrike15_v2_MatchmakingClient2ServerPing = 9103; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate = 9104; + k_EMsgGCCStrike15_v2_MatchmakingServerReservationResponse = 9106; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve = 9107; + k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello = 9109; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello = 9110; + k_EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon = 9112; + k_EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate = 9117; + k_EMsgGCCStrike15_v2_ServerNotificationForUserPenalty = 9118; + k_EMsgGCCStrike15_v2_ClientReportPlayer = 9119; + k_EMsgGCCStrike15_v2_ClientReportServer = 9120; + k_EMsgGCCStrike15_v2_ClientCommendPlayer = 9121; + k_EMsgGCCStrike15_v2_ClientReportResponse = 9122; + k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery = 9123; + k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse = 9124; + k_EMsgGCCStrike15_v2_WatchInfoUsers = 9126; + k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile = 9127; + k_EMsgGCCStrike15_v2_PlayersProfile = 9128; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate = 9131; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment = 9132; + k_EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus = 9133; + k_EMsgGCCStrike15_v2_GC2ClientTextMsg = 9134; + k_EMsgGCCStrike15_v2_Client2GCTextMsg = 9135; + k_EMsgGCCStrike15_v2_MatchEndRunRewardDrops = 9136; + k_EMsgGCCStrike15_v2_MatchEndRewardDropsNotification = 9137; + k_EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2 = 9138; + k_EMsgGCCStrike15_v2_MatchList = 9139; + k_EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames = 9140; + k_EMsgGCCStrike15_v2_MatchListRequestRecentUserGames = 9141; + k_EMsgGCCStrike15_v2_GC2ServerReservationUpdate = 9142; + k_EMsgGCCStrike15_v2_ClientVarValueNotificationInfo = 9144; + k_EMsgGCCStrike15_v2_MatchListRequestTournamentGames = 9146; + k_EMsgGCCStrike15_v2_MatchListRequestFullGameInfo = 9147; + k_EMsgGCCStrike15_v2_GiftsLeaderboardRequest = 9148; + k_EMsgGCCStrike15_v2_GiftsLeaderboardResponse = 9149; + k_EMsgGCCStrike15_v2_ServerVarValueNotificationInfo = 9150; + k_EMsgGCCStrike15_v2_ClientSubmitSurveyVote = 9152; + k_EMsgGCCStrike15_v2_Server2GCClientValidate = 9153; + k_EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser = 9154; + k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest = 9156; + k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse = 9157; + k_EMsgGCCStrike15_v2_AccountPrivacySettings = 9158; + k_EMsgGCCStrike15_v2_SetMyActivityInfo = 9159; + k_EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions = 9160; + k_EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions = 9161; + k_EMsgGCCStrike15_v2_DraftSummary = 9162; + k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData = 9163; + k_EMsgGCCStrike15_v2_ClientRequestJoinServerData = 9164; + k_EMsgGCCStrike15_v2_ClientRequestNewMission = 9165; + k_EMsgGCCStrike15_v2_GC2ClientTournamentInfo = 9167; + k_EMsgGC_GlobalGame_Subscribe = 9168; + k_EMsgGC_GlobalGame_Unsubscribe = 9169; + k_EMsgGC_GlobalGame_Play = 9170; + k_EMsgGCCStrike15_v2_AcknowledgePenalty = 9171; + k_EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin = 9172; + k_EMsgGCCStrike15_v2_GC2ClientGlobalStats = 9173; + k_EMsgGCCStrike15_v2_Client2GCStreamUnlock = 9174; + k_EMsgGCCStrike15_v2_FantasyRequestClientData = 9175; + k_EMsgGCCStrike15_v2_FantasyUpdateClientData = 9176; + k_EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket = 9177; + k_EMsgGCCStrike15_v2_ClientToGCRequestTicket = 9178; + k_EMsgGCCStrike15_v2_ClientToGCRequestElevate = 9179; + k_EMsgGCCStrike15_v2_GlobalChat = 9180; + k_EMsgGCCStrike15_v2_GlobalChat_Subscribe = 9181; + k_EMsgGCCStrike15_v2_GlobalChat_Unsubscribe = 9182; + k_EMsgGCCStrike15_v2_ClientAuthKeyCode = 9183; + k_EMsgGCCStrike15_v2_GotvSyncPacket = 9184; + k_EMsgGCCStrike15_v2_ClientPlayerDecalSign = 9185; + k_EMsgGCCStrike15_v2_ClientLogonFatalError = 9187; + k_EMsgGCCStrike15_v2_ClientPollState = 9188; + k_EMsgGCCStrike15_v2_Party_Register = 9189; + k_EMsgGCCStrike15_v2_Party_Unregister = 9190; + k_EMsgGCCStrike15_v2_Party_Search = 9191; + k_EMsgGCCStrike15_v2_Party_Invite = 9192; + k_EMsgGCCStrike15_v2_Account_RequestCoPlays = 9193; + k_EMsgGCCStrike15_v2_ClientGCRankUpdate = 9194; + k_EMsgGCCStrike15_v2_ClientRequestOffers = 9195; + k_EMsgGCCStrike15_v2_ClientAccountBalance = 9196; + k_EMsgGCCStrike15_v2_ClientPartyJoinRelay = 9197; + k_EMsgGCCStrike15_v2_ClientPartyWarning = 9198; + k_EMsgGCCStrike15_v2_SetEventFavorite = 9200; + k_EMsgGCCStrike15_v2_GetEventFavorites_Request = 9201; + k_EMsgGCCStrike15_v2_ClientPerfReport = 9202; + k_EMsgGCCStrike15_v2_GetEventFavorites_Response = 9203; + k_EMsgGCCStrike15_v2_ClientRequestSouvenir = 9204; + k_EMsgGCCStrike15_v2_ClientReportValidation = 9205; + k_EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode = 9206; + k_EMsgGCCStrike15_v2_GC2ClientRequestValidation = 9207; + k_EMsgGCCStrike15_v2_ClientRedeemMissionReward = 9209; + k_EMsgGCCStrike15_ClientDeepStats = 9210; + k_EMsgGCCStrike15_StartAgreementSessionInGame = 9211; + k_EMsgGCCStrike15_v2_GC2ClientInitSystem = 9212; + k_EMsgGCCStrike15_v2_GC2ClientInitSystem_Response = 9213; + k_EMsgGCCStrike15_v2_PrivateQueues = 9214; + k_EMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt = 9215; +} + +enum ECsgoSteamUserStat { + k_ECsgoSteamUserStat_XpEarnedGames = 1; + k_ECsgoSteamUserStat_MatchWinsCompetitive = 2; + k_ECsgoSteamUserStat_SurvivedDangerZone = 3; +} + +enum EClientReportingVersion { + k_EClientReportingVersion_OldVersion = 0; + k_EClientReportingVersion_BetaVersion = 1; + k_EClientReportingVersion_SupportsTrustedMode = 2; +} + +enum EInitSystemResult { + k_EInitSystemResult_Invalid = 0; + k_EInitSystemResult_Success = 1; + k_EInitSystemResult_None = 2; + k_EInitSystemResult_NotFound = 3; + k_EInitSystemResult_Existing = 4; + k_EInitSystemResult_FailedOpen = 5; + k_EInitSystemResult_Mismatch = 6; + k_EInitSystemResult_FailedInit = 7; + k_EInitSystemResult_Max = 8; +} + +message GameServerPing { + optional int32 ping = 2; + optional uint32 ip = 3; + optional uint32 instances = 5; +} + +message DataCenterPing { + optional fixed32 data_center_id = 1; + optional sint32 ping = 2; +} + +message DetailedSearchStatistic { + optional uint32 game_type = 1; + optional uint32 search_time_avg = 2; + optional uint32 players_searching = 4; +} + +message TournamentPlayer { + optional uint32 account_id = 1; + optional string player_nick = 2; + optional string player_name = 3; + optional uint32 player_dob = 4; + optional string player_flag = 5; + optional string player_location = 6; + optional string player_desc = 7; +} + +message TournamentTeam { + optional int32 team_id = 1; + optional string team_tag = 2; + optional string team_flag = 3; + optional string team_name = 4; + repeated TournamentPlayer players = 5; +} + +message TournamentEvent { + optional int32 event_id = 1; + optional string event_tag = 2; + optional string event_name = 3; + optional uint32 event_time_start = 4; + optional uint32 event_time_end = 5; + optional int32 event_public = 6; + optional int32 event_stage_id = 7; + optional string event_stage_name = 8; + optional uint32 active_section_id = 9; +} + +message GlobalStatistics { + optional uint32 players_online = 1; + optional uint32 servers_online = 2; + optional uint32 players_searching = 3; + optional uint32 servers_available = 4; + optional uint32 ongoing_matches = 5; + optional uint32 search_time_avg = 6; + repeated DetailedSearchStatistic search_statistics = 7; + optional string main_post_url = 8; + optional uint32 required_appid_version = 9; + optional uint32 pricesheet_version = 10; + optional uint32 twitch_streams_version = 11; + optional uint32 active_tournament_eventid = 12; + optional uint32 active_survey_id = 13; + optional uint32 rtime32_cur = 14; + optional uint32 rtime32_event_start = 15; + optional uint32 required_appid_version2 = 16; +} + +message OperationalStatisticDescription { + optional string name = 1; + optional uint32 idkey = 2; +} + +message OperationalStatisticElement { + optional uint32 idkey = 1; + repeated int32 values = 2; +} + +message OperationalStatisticsPacket { + optional int32 packetid = 1; + optional int32 mstimestamp = 2; + repeated OperationalStatisticElement values = 3; +} + +message PlayerRankingInfo { + optional uint32 account_id = 1; + optional uint32 rank_id = 2; + optional uint32 wins = 3; + optional float rank_change = 4; + optional uint32 rank_type_id = 6; + optional uint32 tv_control = 7; +} + +message PlayerCommendationInfo { + optional uint32 cmd_friendly = 1; + optional uint32 cmd_teaching = 2; + optional uint32 cmd_leader = 4; +} + +message PlayerMedalsInfo { + repeated uint32 display_items_defidx = 7; + optional uint32 featured_display_item_defidx = 8; +} + +message AccountActivity { + optional uint32 activity = 1; + optional uint32 mode = 2; + optional uint32 map = 3; + optional uint64 matchid = 4; +} + +message TournamentMatchSetup { + optional int32 event_id = 1; + optional int32 team_id_ct = 2; + optional int32 team_id_t = 3; + optional int32 event_stage_id = 4; +} + +message ServerHltvInfo { + optional uint32 tv_udp_port = 1; + optional uint64 tv_watch_key = 2; + optional uint32 tv_slots = 3; + optional uint32 tv_clients = 4; + optional uint32 tv_proxies = 5; + optional uint32 tv_time = 6; + optional uint32 game_type = 8; + optional string game_mapgroup = 9; + optional string game_map = 10; + optional uint64 tv_master_steamid = 11; + optional uint32 tv_local_slots = 12; + optional uint32 tv_local_clients = 13; + optional uint32 tv_local_proxies = 14; + optional uint32 tv_relay_slots = 15; + optional uint32 tv_relay_clients = 16; + optional uint32 tv_relay_proxies = 17; + optional uint32 tv_relay_address = 18; + optional uint32 tv_relay_port = 19; + optional uint64 tv_relay_steamid = 20; + optional uint32 flags = 21; +} + +message IpAddressMask { + optional uint32 a = 1; + optional uint32 b = 2; + optional uint32 c = 3; + optional uint32 d = 4; + optional uint32 bits = 5; + optional uint32 token = 6; +} + +message CMsgCsgoSteamUserStatChange { + optional int32 ecsgosteamuserstat = 1; + optional int32 delta = 2; + optional bool absolute = 3; +} + +message XpProgressData { + optional uint32 xp_points = 1; + optional int32 xp_category = 2; +} + +message MatchEndItemUpdates { + optional uint64 item_id = 1; + optional uint32 item_attr_defidx = 2; + optional uint32 item_attr_delta_value = 3; +} + +message ScoreLeaderboardData { + message Entry { + optional uint32 tag = 1; + optional uint32 val = 2; + } + + message AccountEntries { + optional uint32 accountid = 1; + repeated ScoreLeaderboardData.Entry entries = 2; + } + + optional uint64 quest_id = 1; + optional uint32 score = 2; + repeated ScoreLeaderboardData.AccountEntries accountentries = 3; + repeated ScoreLeaderboardData.Entry matchentries = 5; +} + +message PlayerQuestData { + message QuestItemData { + optional uint64 quest_id = 1; + optional int32 quest_normal_points_earned = 2; + optional int32 quest_bonus_points_earned = 3; + } + + optional uint32 quester_account_id = 1; + repeated PlayerQuestData.QuestItemData quest_item_data = 2; + repeated XpProgressData xp_progress_data = 3; + optional uint32 time_played = 4; + optional uint32 mm_game_mode = 5; + repeated MatchEndItemUpdates item_updates = 6; + optional bool operation_points_eligible = 7; + repeated CMsgCsgoSteamUserStatChange userstatchanges = 8; +} + +message DeepPlayerStatsEntry { + optional uint32 accountid = 1; + optional uint64 match_id = 2; + optional uint32 mm_game_mode = 3; + optional uint32 mapid = 4; + optional bool b_starting_ct = 5; + optional uint32 match_outcome = 6; + optional uint32 rounds_won = 7; + optional uint32 rounds_lost = 8; + optional uint32 stat_score = 9; + optional uint32 stat_deaths = 12; + optional uint32 stat_mvps = 13; + optional uint32 enemy_kills = 14; + optional uint32 enemy_headshots = 15; + optional uint32 enemy_2ks = 16; + optional uint32 enemy_3ks = 17; + optional uint32 enemy_4ks = 18; + optional uint32 total_damage = 19; + optional uint32 engagements_entry_count = 23; + optional uint32 engagements_entry_wins = 24; + optional uint32 engagements_1v1_count = 25; + optional uint32 engagements_1v1_wins = 26; + optional uint32 engagements_1v2_count = 27; + optional uint32 engagements_1v2_wins = 28; + optional uint32 utility_count = 29; + optional uint32 utility_success = 30; + optional uint32 flash_count = 32; + optional uint32 flash_success = 33; + repeated uint32 mates = 34; +} + +message DeepPlayerMatchEvent { + optional uint32 accountid = 1; + optional uint64 match_id = 2; + optional uint32 event_id = 3; + optional uint32 event_type = 4; + optional bool b_playing_ct = 5; + optional int32 user_pos_x = 6; + optional int32 user_pos_y = 7; + optional int32 user_pos_z = 12; + optional uint32 user_defidx = 8; + optional int32 other_pos_x = 9; + optional int32 other_pos_y = 10; + optional int32 other_pos_z = 13; + optional uint32 other_defidx = 11; + optional int32 event_data = 14; +} + +message CMsgGC_ServerQuestUpdateData { + repeated PlayerQuestData player_quest_data = 1; + optional bytes binary_data = 2; + optional uint32 mm_game_mode = 3; + optional ScoreLeaderboardData missionlbsdata = 4; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm { + optional uint32 token = 1; + optional uint32 stamp = 2; + optional uint64 exchange = 3; +} + +message CMsgGCCStrike15_v2_GC2ServerReservationUpdate { + optional uint32 viewers_external_total = 1; + optional uint32 viewers_external_steam = 2; +} + +message CMsgGCCStrike15_v2_MatchmakingStart { + repeated uint32 account_ids = 1; + optional uint32 game_type = 2; + optional string ticket_data = 3; + optional uint32 client_version = 4; + optional TournamentMatchSetup tournament_match = 5; + optional bool prime_only = 6; + optional uint32 tv_control = 7; + optional uint64 lobby_id = 8; +} + +message CMsgGCCStrike15_v2_MatchmakingStop { + optional int32 abandon = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingClient2ServerPing { + repeated GameServerPing gameserverpings = 1; + optional int32 offset_index = 2; + optional int32 final_batch = 3; + repeated DataCenterPing data_center_pings = 4; + optional uint32 max_ping = 5; + optional fixed32 test_token = 6; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate { + message Note { + optional int32 type = 1; + optional int32 region_id = 2; + optional float region_r = 3; + optional float distance = 4; + } + + optional int32 matchmaking = 1; + repeated uint32 waiting_account_id_sessions = 2; + optional string error = 3; + repeated uint32 ongoingmatch_account_id_sessions = 6; + optional GlobalStatistics global_stats = 7; + repeated uint32 failping_account_id_sessions = 8; + repeated uint32 penalty_account_id_sessions = 9; + repeated uint32 failready_account_id_sessions = 10; + repeated uint32 vacbanned_account_id_sessions = 11; + optional IpAddressMask server_ipaddress_mask = 12; + repeated CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate.Note notes = 13; + repeated uint32 penalty_account_id_sessions_green = 14; + repeated uint32 insufficientlevel_sessions = 15; + repeated uint32 vsncheck_account_id_sessions = 16; + repeated uint32 launcher_mismatch_sessions = 17; + repeated uint32 insecure_account_id_sessions = 18; +} + +message CDataGCCStrike15_v2_TournamentMatchDraft { + message Entry { + optional int32 mapid = 1; + optional int32 team_id_ct = 2; + } + + optional int32 event_id = 1; + optional int32 event_stage_id = 2; + optional int32 team_id_0 = 3; + optional int32 team_id_1 = 4; + optional int32 maps_count = 5; + optional int32 maps_current = 6; + optional int32 team_id_start = 7; + optional int32 team_id_veto1 = 8; + optional int32 team_id_pickn = 9; + repeated CDataGCCStrike15_v2_TournamentMatchDraft.Entry drafts = 10; + repeated int32 vote_mapid_0 = 11; + repeated int32 vote_mapid_1 = 12; + repeated int32 vote_mapid_2 = 13; + repeated int32 vote_mapid_3 = 14; + repeated int32 vote_mapid_4 = 15; + repeated int32 vote_mapid_5 = 16; + repeated int32 vote_starting_side = 17; + optional int32 vote_phase = 18; + optional float vote_phase_start = 19; + optional float vote_phase_length = 20; +} + +message CPreMatchInfoData { + message TeamStats { + optional int32 match_info_idxtxt = 1; + optional string match_info_txt = 2; + repeated string match_info_teams = 3; + } + + optional int32 predictions_pct = 1; + optional CDataGCCStrike15_v2_TournamentMatchDraft draft = 4; + repeated CPreMatchInfoData.TeamStats stats = 5; + repeated int32 wins = 6; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve { + repeated uint32 account_ids = 1; + optional uint32 game_type = 2; + optional uint64 match_id = 3; + optional uint32 server_version = 4; + optional uint32 flags = 18; + repeated PlayerRankingInfo rankings = 5; + optional uint64 encryption_key = 6; + optional uint64 encryption_key_pub = 7; + repeated uint32 party_ids = 8; + repeated IpAddressMask whitelist = 9; + optional uint64 tv_master_steamid = 10; + optional TournamentEvent tournament_event = 11; + repeated TournamentTeam tournament_teams = 12; + repeated uint32 tournament_casters_account_ids = 13; + optional uint64 tv_relay_steamid = 14; + optional CPreMatchInfoData pre_match_data = 15; + optional uint32 rtime32_event_start = 16; + optional uint32 tv_control = 17; +} + +message CMsgGCCStrike15_v2_MatchmakingServerReservationResponse { + optional uint64 reservationid = 1; + optional CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; + optional string map = 3; + optional uint64 gc_reservation_sent = 4; + optional uint32 server_version = 5; + optional ServerHltvInfo tv_info = 6; + repeated uint32 reward_player_accounts = 7; + repeated uint32 idle_player_accounts = 8; + optional uint32 reward_item_attr_def_idx = 9; + optional uint32 reward_item_attr_value = 10; + optional uint32 reward_item_attr_reward_idx = 11; + optional uint32 reward_drop_list = 12; + optional string tournament_tag = 13; + optional uint32 legacy_steamdatagram_port = 14; + optional uint32 steamdatagram_routing = 17; + optional fixed32 test_token = 15; + optional uint32 flags = 16; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve { + optional uint64 serverid = 1; + optional uint32 direct_udp_ip = 2; + optional uint32 direct_udp_port = 3; + optional uint64 reservationid = 4; + optional CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 5; + optional string map = 6; + optional string server_address = 7; +} + +message CMsgGCCStrike15_v2_MatchmakingServerRoundStats { + message DropInfo { + optional uint32 account_mvp = 1; + } + + optional uint64 reservationid = 1; + optional CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; + optional string map = 3; + optional int32 round = 4; + repeated int32 kills = 5; + repeated int32 assists = 6; + repeated int32 deaths = 7; + repeated int32 scores = 8; + repeated int32 pings = 9; + optional int32 round_result = 10; + optional int32 match_result = 11; + repeated int32 team_scores = 12; + optional CMsgGCCStrike15_v2_MatchmakingGC2ServerConfirm confirm = 13; + optional int32 reservation_stage = 14; + optional int32 match_duration = 15; + repeated int32 enemy_kills = 16; + repeated int32 enemy_headshots = 17; + repeated int32 enemy_3ks = 18; + repeated int32 enemy_4ks = 19; + repeated int32 enemy_5ks = 20; + repeated int32 mvps = 21; + optional uint32 spectators_count = 22; + optional uint32 spectators_count_tv = 23; + optional uint32 spectators_count_lnk = 24; + repeated int32 enemy_kills_agg = 25; + optional CMsgGCCStrike15_v2_MatchmakingServerRoundStats.DropInfo drop_info = 26; + optional bool b_switched_teams = 27; + repeated int32 enemy_2ks = 28; + repeated int32 player_spawned = 29; + repeated int32 team_spawn_count = 30; + optional uint32 max_rounds = 31; +} + +message CMsgGCCStrike15_v2_MatchmakingClient2GCHello { +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientHello { + optional uint32 account_id = 1; + optional CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve ongoingmatch = 2; + optional GlobalStatistics global_stats = 3; + optional uint32 penalty_seconds = 4; + optional uint32 penalty_reason = 5; + optional int32 vac_banned = 6; + optional PlayerRankingInfo ranking = 7; + optional PlayerCommendationInfo commendation = 8; + optional PlayerMedalsInfo medals = 9; + optional TournamentEvent my_current_event = 10; + repeated TournamentTeam my_current_event_teams = 11; + optional TournamentTeam my_current_team = 12; + repeated TournamentEvent my_current_event_stages = 13; + optional uint32 survey_vote = 14; + optional AccountActivity activity = 15; + optional int32 player_level = 17; + optional int32 player_cur_xp = 18; + optional int32 player_xp_bonus_flags = 19; + repeated PlayerRankingInfo rankings = 20; +} + +message CMsgGCCStrike15_v2_AccountPrivacySettings { + message Setting { + optional uint32 setting_type = 1; + optional uint32 setting_value = 2; + } + + repeated CMsgGCCStrike15_v2_AccountPrivacySettings.Setting settings = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon { + optional uint32 account_id = 1; + optional CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve abandoned_match = 2; + optional uint32 penalty_seconds = 3; + optional uint32 penalty_reason = 4; +} + +message CMsgGCCStrike15_v2_ClientGCRankUpdate { + repeated PlayerRankingInfo rankings = 1; +} + +message CMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate { + optional string main_post_url = 1; +} + +message CMsgGCCStrike15_v2_ServerNotificationForUserPenalty { + optional uint32 account_id = 1; + optional uint32 reason = 2; + optional uint32 seconds = 3; + optional bool communication_cooldown = 4; +} + +message CMsgGCCStrike15_v2_ClientReportPlayer { + optional uint32 account_id = 1; + optional uint32 rpt_aimbot = 2; + optional uint32 rpt_wallhack = 3; + optional uint32 rpt_speedhack = 4; + optional uint32 rpt_teamharm = 5; + optional uint32 rpt_textabuse = 6; + optional uint32 rpt_voiceabuse = 7; + optional uint64 match_id = 8; + optional bool report_from_demo = 9; +} + +message CMsgGCCStrike15_v2_ClientCommendPlayer { + optional uint32 account_id = 1; + optional uint64 match_id = 8; + optional PlayerCommendationInfo commendation = 9; + optional uint32 tokens = 10; +} + +message CMsgGCCStrike15_v2_ClientReportServer { + optional uint32 rpt_poorperf = 1; + optional uint32 rpt_abusivemodels = 2; + optional uint32 rpt_badmotd = 3; + optional uint32 rpt_listingabuse = 4; + optional uint32 rpt_inventoryabuse = 5; + optional uint64 match_id = 8; +} + +message CMsgGCCStrike15_v2_ClientReportResponse { + optional uint64 confirmation_id = 1; + optional uint32 account_id = 2; + optional uint32 server_ip = 3; + optional uint32 response_type = 4; + optional uint32 response_result = 5; + optional uint32 tokens = 6; +} + +message CMsgGCCStrike15_v2_ClientRequestWatchInfoFriends { + optional uint32 request_id = 1; + repeated uint32 account_ids = 2; + optional uint64 serverid = 3; + optional uint64 matchid = 4; + optional uint32 client_launcher = 5; + repeated DataCenterPing data_center_pings = 6; +} + +message WatchableMatchInfo { + optional uint32 server_ip = 1; + optional uint32 tv_port = 2; + optional uint32 tv_spectators = 3; + optional uint32 tv_time = 4; + optional bytes tv_watch_password = 5; + optional uint64 cl_decryptdata_key = 6; + optional uint64 cl_decryptdata_key_pub = 7; + optional uint32 game_type = 8; + optional string game_mapgroup = 9; + optional string game_map = 10; + optional uint64 server_id = 11; + optional uint64 match_id = 12; + optional uint64 reservation_id = 13; +} + +message CMsgGCCStrike15_v2_ClientRequestJoinFriendData { + optional uint32 version = 1; + optional uint32 account_id = 2; + optional uint32 join_token = 3; + optional uint32 join_ipp = 4; + optional CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve res = 5; + optional string errormsg = 6; +} + +message CMsgGCCStrike15_v2_ClientRequestJoinServerData { + optional uint32 version = 1; + optional uint32 account_id = 2; + optional uint64 serverid = 3; + optional uint32 server_ip = 4; + optional uint32 server_port = 5; + optional CMsgGCCStrike15_v2_MatchmakingGC2ClientReserve res = 6; + optional string errormsg = 7; +} + +message CMsgGCCstrike15_v2_ClientRequestNewMission { + optional uint32 mission_id = 2; + optional uint32 campaign_id = 3; +} + +message CMsgGCCstrike15_v2_ClientRedeemMissionReward { + optional uint32 campaign_id = 1; + optional uint32 redeem_id = 2; + optional uint32 redeemable_balance = 3; + optional uint32 expected_cost = 4; +} + +message CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded { + repeated XpProgressData xp_progress_data = 1; + optional uint32 account_id = 2; + optional uint32 current_xp = 3; + optional uint32 current_level = 4; + optional uint32 upgraded_defidx = 5; + optional uint32 operation_points_awarded = 6; +} + +message CMsgGCCStrike15_ClientDeepStats { + message DeepStatsRange { + optional uint32 begin = 1; + optional uint32 end = 2; + optional bool frozen = 3; + } + + message DeepStatsMatch { + optional DeepPlayerStatsEntry player = 1; + repeated DeepPlayerMatchEvent events = 2; + } + + optional uint32 account_id = 1; + optional CMsgGCCStrike15_ClientDeepStats.DeepStatsRange range = 2; + repeated CMsgGCCStrike15_ClientDeepStats.DeepStatsMatch matches = 3; +} + +message CMsgGCCStrike15_v2_WatchInfoUsers { + optional uint32 request_id = 1; + repeated uint32 account_ids = 2; + repeated WatchableMatchInfo watchable_match_infos = 3; + optional uint32 extended_timeout = 5; +} + +message CMsgGCCStrike15_v2_ClientRequestPlayersProfile { + optional uint32 request_id__deprecated = 1; + repeated uint32 account_ids__deprecated = 2; + optional uint32 account_id = 3; + optional uint32 request_level = 4; +} + +message CMsgGCCStrike15_v2_PlayersProfile { + optional uint32 request_id = 1; + repeated CMsgGCCStrike15_v2_MatchmakingGC2ClientHello account_profiles = 2; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate { + optional uint64 caseid = 1; + optional uint32 suspectid = 3; + optional uint32 fractionid = 4; + optional uint32 rpt_aimbot = 5; + optional uint32 rpt_wallhack = 6; + optional uint32 rpt_speedhack = 7; + optional uint32 rpt_teamharm = 8; + optional uint32 reason = 9; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment { + optional uint64 caseid = 1; + optional string caseurl = 2; + optional uint32 verdict = 3; + optional uint32 timestamp = 4; + optional uint32 throttleseconds = 5; + optional uint32 suspectid = 6; + optional uint32 fractionid = 7; + optional uint32 numrounds = 8; + optional uint32 fractionrounds = 9; + optional int32 streakconvictions = 10; + optional uint32 reason = 11; +} + +message CMsgGCCStrike15_v2_PlayerOverwatchCaseStatus { + optional uint64 caseid = 1; + optional uint32 statusid = 2; +} + +message CClientHeaderOverwatchEvidence { + optional uint32 accountid = 1; + optional uint64 caseid = 2; +} + +message CMsgGCCStrike15_v2_GC2ClientTextMsg { + optional uint32 id = 1; + optional uint32 type = 2; + optional bytes payload = 3; +} + +message CMsgGCCStrike15_v2_Client2GCTextMsg { + optional uint32 id = 1; + repeated bytes args = 2; +} + +message CMsgGCCStrike15_v2_MatchEndRunRewardDrops { + optional CMsgGCCStrike15_v2_MatchmakingServerReservationResponse serverinfo = 3; + optional CMsgGC_ServerQuestUpdateData match_end_quest_data = 4; +} + +message CEconItemPreviewDataBlock { + message Sticker { + optional uint32 slot = 1; + optional uint32 sticker_id = 2; + optional float wear = 3; + optional float scale = 4; + optional float rotation = 5; + optional uint32 tint_id = 6; + } + + optional uint32 accountid = 1; + optional uint64 itemid = 2; + optional uint32 defindex = 3; + optional uint32 paintindex = 4; + optional uint32 rarity = 5; + optional uint32 quality = 6; + optional uint32 paintwear = 7; + optional uint32 paintseed = 8; + optional uint32 killeaterscoretype = 9; + optional uint32 killeatervalue = 10; + optional string customname = 11; + repeated CEconItemPreviewDataBlock.Sticker stickers = 12; + optional uint32 inventory = 13; + optional uint32 origin = 14; + optional uint32 questid = 15; + optional uint32 dropreason = 16; + optional uint32 musicindex = 17; + optional int32 entindex = 18; +} + +message CMsgGCCStrike15_v2_MatchEndRewardDropsNotification { + optional CEconItemPreviewDataBlock iteminfo = 6; +} + +message CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest { + optional uint64 param_s = 1; + optional uint64 param_a = 2; + optional uint64 param_d = 3; + optional uint64 param_m = 4; +} + +message CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse { + optional CEconItemPreviewDataBlock iteminfo = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames { +} + +message CMsgGCCStrike15_v2_MatchListRequestLiveGameForUser { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestRecentUserGames { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestTournamentGames { + optional int32 eventid = 1; +} + +message CMsgGCCStrike15_v2_MatchListRequestFullGameInfo { + optional uint64 matchid = 1; + optional uint64 outcomeid = 2; + optional uint32 token = 3; +} + +message CDataGCCStrike15_v2_MatchInfo { + optional uint64 matchid = 1; + optional uint32 matchtime = 2; + optional WatchableMatchInfo watchablematchinfo = 3; + optional CMsgGCCStrike15_v2_MatchmakingServerRoundStats roundstats_legacy = 4; + repeated CMsgGCCStrike15_v2_MatchmakingServerRoundStats roundstatsall = 5; +} + +message CDataGCCStrike15_v2_TournamentGroupTeam { + optional int32 team_id = 1; + optional int32 score = 2; + optional bool correctpick = 3; +} + +message CDataGCCStrike15_v2_TournamentGroup { + message Picks { + repeated int32 pickids = 1; + } + + optional uint32 groupid = 1; + optional string name = 2; + optional string desc = 3; + optional uint32 picks__deprecated = 4; + repeated CDataGCCStrike15_v2_TournamentGroupTeam teams = 5; + repeated int32 stage_ids = 6; + optional uint32 picklockuntiltime = 7; + optional uint32 pickableteams = 8; + optional uint32 points_per_pick = 9; + repeated CDataGCCStrike15_v2_TournamentGroup.Picks picks = 10; +} + +message CDataGCCStrike15_v2_TournamentSection { + optional uint32 sectionid = 1; + optional string name = 2; + optional string desc = 3; + repeated CDataGCCStrike15_v2_TournamentGroup groups = 4; +} + +message CDataGCCStrike15_v2_TournamentInfo { + repeated CDataGCCStrike15_v2_TournamentSection sections = 1; + optional TournamentEvent tournament_event = 2; + repeated TournamentTeam tournament_teams = 3; +} + +message CMsgGCCStrike15_v2_MatchList { + optional uint32 msgrequestid = 1; + optional uint32 accountid = 2; + optional uint32 servertime = 3; + repeated CDataGCCStrike15_v2_MatchInfo matches = 4; + repeated TournamentTeam streams = 5; + optional CDataGCCStrike15_v2_TournamentInfo tournamentinfo = 6; +} + +message CMsgGCCStrike15_v2_MatchListTournamentOperatorMgmt { + optional int32 eventid = 1; + repeated CDataGCCStrike15_v2_MatchInfo matches = 2; + optional uint32 accountid = 3; +} + +message CMsgGCCStrike15_v2_Predictions { + message GroupMatchTeamPick { + optional int32 sectionid = 1; + optional int32 groupid = 2; + optional int32 index = 3; + optional int32 teamid = 4; + optional uint64 itemid = 5; + } + + optional uint32 event_id = 1; + repeated CMsgGCCStrike15_v2_Predictions.GroupMatchTeamPick group_match_team_picks = 2; +} + +message CMsgGCCStrike15_v2_Fantasy { + message FantasySlot { + optional int32 type = 1; + optional int32 pick = 2; + optional uint64 itemid = 3; + } + + message FantasyTeam { + optional int32 sectionid = 1; + repeated CMsgGCCStrike15_v2_Fantasy.FantasySlot slots = 2; + } + + optional uint32 event_id = 1; + repeated CMsgGCCStrike15_v2_Fantasy.FantasyTeam teams = 2; +} + +message CMsgLegacySource1ClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional CMsgLegacySource1ClientWelcome.Location location = 5; + optional bytes game_data2 = 6; + optional uint32 rtime32_gc_welcome_timestamp = 7; + optional uint32 currency = 8; + optional uint32 balance = 9; + optional string balance_url = 10; + optional string txn_country_code = 11; +} + +message CMsgCStrike15Welcome { + optional uint32 store_item_hash = 5; + optional uint32 timeplayedconsecutively = 6; + optional uint32 time_first_played = 10; + optional uint32 last_time_played = 12; + optional uint32 last_ip_address = 13; + optional uint64 gscookieid = 18; + optional uint64 uniqueid = 19; +} + +message CMsgGCCStrike15_v2_ClientVarValueNotificationInfo { + optional string value_name = 1; + optional int32 value_int = 2; + optional uint32 server_addr = 3; + optional uint32 server_port = 4; + repeated string choked_blocks = 5; +} + +message CMsgGCCStrike15_v2_ServerVarValueNotificationInfo { + optional uint32 accountid = 1; + repeated uint32 viewangles = 2; + optional uint32 type = 3; + repeated uint32 userdata = 4; +} + +message CMsgGCCStrike15_v2_GiftsLeaderboardRequest { +} + +message CMsgGCCStrike15_v2_GiftsLeaderboardResponse { + message GiftLeaderboardEntry { + optional uint32 accountid = 1; + optional uint32 gifts = 2; + } + + optional uint32 servertime = 1; + optional uint32 time_period_seconds = 2; + optional uint32 total_gifts_given = 3; + optional uint32 total_givers = 4; + repeated CMsgGCCStrike15_v2_GiftsLeaderboardResponse.GiftLeaderboardEntry entries = 5; +} + +message CMsgGCCStrike15_v2_ClientSubmitSurveyVote { + optional uint32 survey_id = 1; + optional uint32 vote = 2; +} + +message CMsgGCCStrike15_v2_Server2GCClientValidate { + optional uint32 accountid = 1; +} + +message CMsgGCCStrike15_v2_GC2ClientTournamentInfo { + optional uint32 eventid = 1; + optional uint32 stageid = 2; + optional uint32 game_type = 3; + repeated uint32 teamids = 4; +} + +message CSOEconCoupon { + optional uint32 entryid = 1 [(key_field) = true]; + optional uint32 defidx = 2; + optional fixed32 expiration_date = 3; +} + +message CSOQuestProgress { + optional uint32 questid = 1 [(key_field) = true]; + optional uint32 points_remaining = 2; + optional uint32 bonus_points = 3; +} + +message CSOAccountSeasonalOperation { + optional uint32 season_value = 1 [(key_field) = true]; + optional uint32 tier_unlocked = 2; + optional uint32 premium_tiers = 3; + optional uint32 mission_id = 4; + optional uint32 missions_completed = 5; + optional uint32 redeemable_balance = 6; + optional uint32 season_pass_time = 7; +} + +message CSOAccountRecurringSubscription { + optional uint32 time_next_cycle = 1; + optional uint32 time_initiated = 2; +} + +message CSOPersonaDataPublic { + optional int32 player_level = 1; + optional PlayerCommendationInfo commendation = 2; + optional bool elevated_state = 3; +} + +message CMsgGC_GlobalGame_Subscribe { + optional uint64 ticket = 1; +} + +message CMsgGC_GlobalGame_Unsubscribe { + optional int32 timeleft = 1; +} + +message CMsgGC_GlobalGame_Play { + optional uint64 ticket = 1; + optional uint32 gametimems = 2; + optional uint32 msperpoint = 3; +} + +message CMsgGCCStrike15_v2_AcknowledgePenalty { + optional int32 acknowledged = 1; +} + +message CMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin { + optional uint32 defindex = 1; + optional uint64 upgradeid = 2; + optional uint32 hours = 3; + optional uint32 prestigetime = 4; +} + +message CMsgGCCStrike15_v2_Client2GCStreamUnlock { + optional uint64 ticket = 1; + optional int32 os = 2; +} + +message CMsgGCCStrike15_v2_ClientToGCRequestElevate { + optional uint32 stage = 1; +} + +message CMsgGCCStrike15_v2_ClientToGCChat { + optional uint64 match_id = 1; + optional string text = 2; +} + +message CMsgGCCStrike15_v2_GCToClientChat { + optional uint32 account_id = 1; + optional string text = 2; +} + +message CMsgGCCStrike15_v2_ClientAuthKeyCode { + optional uint32 eventid = 1; + optional string code = 2; +} + +message CMsgGCCStrike15_GotvSyncPacket { + optional CEngineGotvSyncPacket data = 1; +} + +message PlayerDecalDigitalSignature { + optional bytes signature = 1; + optional uint32 accountid = 2; + optional uint32 rtime = 3; + repeated float endpos = 4; + repeated float startpos = 5; + repeated float left = 6; + optional uint32 tx_defidx = 7; + optional int32 entindex = 8; + optional uint32 hitbox = 9; + optional float creationtime = 10; + optional uint32 equipslot = 11; + optional uint32 trace_id = 12; + repeated float normal = 13; + optional uint32 tint_id = 14; +} + +message CMsgGCCStrike15_v2_ClientPlayerDecalSign { + optional PlayerDecalDigitalSignature data = 1; + optional uint64 itemid = 2; +} + +message CMsgGCCStrike15_v2_ClientLogonFatalError { + optional uint32 errorcode = 1; + optional string message = 2; + optional string country = 3; +} + +message CMsgGCCStrike15_v2_ClientPollState { + optional uint32 pollid = 1; + repeated string names = 2; + repeated int32 values = 3; +} + +message CMsgGCCStrike15_v2_Party_Register { + optional uint32 id = 1; + optional uint32 ver = 2; + optional uint32 apr = 3; + optional uint32 ark = 4; + optional uint32 nby = 5; + optional uint32 grp = 6; + optional uint32 slots = 7; + optional uint32 launcher = 8; + optional uint32 game_type = 9; +} + +message CMsgGCCStrike15_v2_Party_Search { + optional uint32 ver = 1; + optional uint32 apr = 2; + optional uint32 ark = 3; + repeated uint32 grps = 4; + optional uint32 launcher = 5; + optional uint32 game_type = 6; +} + +message CMsgGCCStrike15_v2_Party_SearchResults { + message Entry { + optional uint32 id = 1; + optional uint32 grp = 2; + optional uint32 game_type = 3; + optional uint32 apr = 4; + optional uint32 ark = 5; + optional uint32 loc = 6; + optional uint32 accountid = 7; + } + + repeated CMsgGCCStrike15_v2_Party_SearchResults.Entry entries = 1; +} + +message CMsgGCCStrike15_v2_Party_Invite { + optional uint32 accountid = 1; + optional uint32 lobbyid = 2; +} + +message CMsgGCCStrike15_v2_Account_RequestCoPlays { + message Player { + optional uint32 accountid = 1; + optional uint32 rtcoplay = 2; + optional bool online = 3; + } + + repeated CMsgGCCStrike15_v2_Account_RequestCoPlays.Player players = 1; + optional uint32 servertime = 2; +} + +message CMsgGCCStrike15_v2_ClientToGCRequestTicket { + optional fixed64 authorized_steam_id = 1; + optional fixed32 authorized_public_ip = 2; + optional fixed64 gameserver_steam_id = 3; + optional string gameserver_sdr_routing = 5; +} + +message CMsgGCToClientSteamDatagramTicket { + optional bytes serialized_ticket = 16; +} + +message CMsgGCCStrike15_v2_ClientRequestOffers { +} + +message CMsgGCCStrike15_v2_ClientRequestSouvenir { + optional uint64 itemid = 1; + optional uint64 matchid = 2; + optional int32 eventid = 3; +} + +message CMsgGCCStrike15_v2_ClientAccountBalance { + optional uint64 amount = 1; + optional string url = 2; +} + +message CMsgGCCStrike15_v2_ClientPartyJoinRelay { + optional uint32 accountid = 1; + optional uint64 lobbyid = 2; +} + +message CMsgGCCStrike15_v2_ClientPartyWarning { + message Entry { + optional uint32 accountid = 1; + optional uint32 warntype = 2; + } + + repeated CMsgGCCStrike15_v2_ClientPartyWarning.Entry entries = 1; +} + +message CMsgGCCStrike15_v2_SetEventFavorite { + optional uint64 eventid = 1; + optional bool is_favorite = 2; +} + +message CMsgGCCStrike15_v2_GetEventFavorites_Request { + optional bool all_events = 1; +} + +message CMsgGCCStrike15_v2_GetEventFavorites_Response { + optional bool all_events = 1; + optional string json_favorites = 2; + optional string json_featured = 3; +} + +message CMsgGCCStrike15_v2_ClientPerfReport { + message Entry { + optional uint32 perfcounter = 1; + optional uint32 length = 2; + optional bytes reference = 3; + optional bytes actual = 4; + optional uint32 sourceid = 5; + optional uint32 status = 6; + } + + repeated CMsgGCCStrike15_v2_ClientPerfReport.Entry entries = 1; +} + +message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; +} + +message CMsgGCCStrike15_v2_ClientReportValidation { + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 internal_error = 4; + optional uint32 trust_time = 5; + optional uint32 count_pending = 6; + optional uint32 count_completed = 7; + optional uint32 process_id = 8; + optional int32 osversion = 9; + optional uint32 clientreportversion = 10; + optional uint32 status_id = 11; + optional uint32 diagnostic1 = 12; + optional uint64 diagnostic2 = 13; + optional uint64 diagnostic3 = 14; + optional string last_launch_data = 15; + optional uint32 report_count = 16; + optional uint64 client_time = 17; + optional uint64 diagnostic4 = 18; + optional uint64 diagnostic5 = 19; + repeated CVDiagnostic diagnostics = 20; +} + +message CMsgGCCStrike15_v2_GC2ClientRefuseSecureMode { + optional string file_report = 1; + optional bool offer_insecure_mode = 2; + optional bool offer_secure_mode = 3; + optional bool show_unsigned_ui = 4; + optional bool kick_user = 5; + optional bool show_trusted_ui = 6; + optional bool show_warning_not_trusted = 7; + optional bool show_warning_not_trusted_2 = 8; + optional string files_prevented_trusted = 9; +} + +message CMsgGCCStrike15_v2_GC2ClientRequestValidation { + optional bool full_report = 1; + optional string module = 2; +} + +message CMsgGCCStrike15_v2_GC2ClientInitSystem { + optional bool load = 1; + optional string name = 2; + optional string outputname = 3; + optional bytes key_data = 4; + optional bytes sha_hash = 5; + optional int32 cookie = 6; + optional string manifest = 7; + optional bytes system_package = 8; + optional bool load_system = 9; +} + +message CMsgGCCStrike15_v2_GC2ClientInitSystem_Response { + optional bool success = 1; + optional string diagnostic = 2; + optional bytes sha_hash = 3; + optional int32 response = 4; + optional int32 error_code1 = 5; + optional int32 error_code2 = 6; + optional int64 handle = 7; + optional EInitSystemResult einit_result = 8 [default = k_EInitSystemResult_Invalid]; + optional int32 aux_system1 = 9; + optional int32 aux_system2 = 10; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/cstrike15_usermessages.proto b/pkg/demoinfocs/msgs2/proto/s2/cstrike15_usermessages.proto new file mode 100644 index 00000000..1bd76bab --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/cstrike15_usermessages.proto @@ -0,0 +1,592 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; +import "s2/cstrike15_gcmessages.proto"; + +enum ECstrike15UserMessages { + CS_UM_VGUIMenu = 301; + CS_UM_Geiger = 302; + CS_UM_Train = 303; + CS_UM_HudText = 304; + CS_UM_SayText = 305; + CS_UM_SayText2 = 306; + CS_UM_TextMsg = 307; + CS_UM_HudMsg = 308; + CS_UM_ResetHud = 309; + CS_UM_GameTitle = 310; + CS_UM_Shake = 312; + CS_UM_Fade = 313; + CS_UM_Rumble = 314; + CS_UM_CloseCaption = 315; + CS_UM_CloseCaptionDirect = 316; + CS_UM_SendAudio = 317; + CS_UM_RawAudio = 318; + CS_UM_VoiceMask = 319; + CS_UM_RequestState = 320; + CS_UM_Damage = 321; + CS_UM_RadioText = 322; + CS_UM_HintText = 323; + CS_UM_KeyHintText = 324; + CS_UM_ProcessSpottedEntityUpdate = 325; + CS_UM_ReloadEffect = 326; + CS_UM_AdjustMoney = 327; + CS_UM_UpdateTeamMoney = 328; + CS_UM_StopSpectatorMode = 329; + CS_UM_KillCam = 330; + CS_UM_DesiredTimescale = 331; + CS_UM_CurrentTimescale = 332; + CS_UM_AchievementEvent = 333; + CS_UM_MatchEndConditions = 334; + CS_UM_DisconnectToLobby = 335; + CS_UM_PlayerStatsUpdate = 336; + CS_UM_WarmupHasEnded = 338; + CS_UM_ClientInfo = 339; + CS_UM_XRankGet = 340; + CS_UM_XRankUpd = 341; + CS_UM_CallVoteFailed = 345; + CS_UM_VoteStart = 346; + CS_UM_VotePass = 347; + CS_UM_VoteFailed = 348; + CS_UM_VoteSetup = 349; + CS_UM_ServerRankRevealAll = 350; + CS_UM_SendLastKillerDamageToClient = 351; + CS_UM_ServerRankUpdate = 352; + CS_UM_ItemPickup = 353; + CS_UM_ShowMenu = 354; + CS_UM_BarTime = 355; + CS_UM_AmmoDenied = 356; + CS_UM_MarkAchievement = 357; + CS_UM_MatchStatsUpdate = 358; + CS_UM_ItemDrop = 359; + CS_UM_GlowPropTurnOff = 360; + CS_UM_SendPlayerItemDrops = 361; + CS_UM_RoundBackupFilenames = 362; + CS_UM_SendPlayerItemFound = 363; + CS_UM_ReportHit = 364; + CS_UM_XpUpdate = 365; + CS_UM_QuestProgress = 366; + CS_UM_ScoreLeaderboardData = 367; + CS_UM_PlayerDecalDigitalSignature = 368; + CS_UM_WeaponSound = 369; + CS_UM_UpdateScreenHealthBar = 370; + CS_UM_EntityOutlineHighlight = 371; + CS_UM_SSUI = 372; + CS_UM_SurvivalStats = 373; + CS_UM_DisconnectToLobby2 = 374; + CS_UM_EndOfMatchAllPlayersData = 375; + CS_UM_PostRoundDamageReport = 376; + CS_UM_RoundEndReportData = 379; + CS_UM_CurrentRoundOdds = 380; + CS_UM_DeepStats = 381; + CS_UM_UtilMsg = 382; + CS_UM_ShootInfo = 383; +} + +enum ECSUsrMsg_DisconnectToLobby_Action { + k_ECSUsrMsg_DisconnectToLobby_Action_Default = 0; + k_ECSUsrMsg_DisconnectToLobby_Action_GoQueue = 1; +} + +message CCSUsrMsg_VGUIMenu { + message Keys { + optional string name = 1; + optional string value = 2; + } + + optional string name = 1; + optional bool show = 2; + repeated CCSUsrMsg_VGUIMenu.Keys keys = 3; +} + +message CCSUsrMsg_Geiger { + optional int32 range = 1; +} + +message CCSUsrMsg_Train { + optional int32 train = 1; +} + +message CCSUsrMsg_HudText { + optional string text = 1; +} + +message CCSUsrMsg_HudMsg { + optional int32 channel = 1; + optional CMsgVector2D pos = 2; + optional CMsgRGBA clr1 = 3; + optional CMsgRGBA clr2 = 4; + optional int32 effect = 5; + optional float fade_in_time = 6; + optional float fade_out_time = 7; + optional float hold_time = 9; + optional float fx_time = 10; + optional string text = 11; +} + +message CCSUsrMsg_Shake { + optional int32 command = 1; + optional float local_amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CCSUsrMsg_Fade { + optional int32 duration = 1; + optional int32 hold_time = 2; + optional int32 flags = 3; + optional CMsgRGBA clr = 4; +} + +message CCSUsrMsg_Rumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CCSUsrMsg_CloseCaption { + optional uint32 hash = 1; + optional int32 duration = 2; + optional bool from_player = 3; + optional string cctoken = 4; +} + +message CCSUsrMsg_CloseCaptionDirect { + optional uint32 hash = 1; + optional int32 duration = 2; + optional bool from_player = 3; +} + +message CCSUsrMsg_SendAudio { + optional string radio_sound = 1; +} + +message CCSUsrMsg_RawAudio { + optional int32 pitch = 1; + optional int32 entidx = 2 [default = -1]; + optional float duration = 3; + optional string voice_filename = 4; +} + +message CCSUsrMsg_VoiceMask { + message PlayerMask { + optional int32 game_rules_mask = 1; + optional int32 ban_masks = 2; + } + + repeated CCSUsrMsg_VoiceMask.PlayerMask player_masks = 1; + optional bool player_mod_enable = 2; +} + +message CCSUsrMsg_Damage { + optional int32 amount = 1; + optional CMsgVector inflictor_world_pos = 2; + optional int32 victim_entindex = 3 [default = -1]; +} + +message CCSUsrMsg_RadioText { + optional int32 msg_dst = 1; + optional int32 client = 2 [default = -1]; + optional string msg_name = 3; + repeated string params = 4; +} + +message CCSUsrMsg_HintText { + optional string message = 1; +} + +message CCSUsrMsg_KeyHintText { + repeated string messages = 1; +} + +message CCSUsrMsg_ProcessSpottedEntityUpdate { + message SpottedEntityUpdate { + optional int32 entity_idx = 1 [default = -1]; + optional int32 class_id = 2; + optional int32 origin_x = 3; + optional int32 origin_y = 4; + optional int32 origin_z = 5; + optional int32 angle_y = 6; + optional bool defuser = 7; + optional bool player_has_defuser = 8; + optional bool player_has_c4 = 9; + } + + optional bool new_update = 1; + repeated CCSUsrMsg_ProcessSpottedEntityUpdate.SpottedEntityUpdate entity_updates = 2; +} + +message CCSUsrMsg_SendPlayerItemDrops { + repeated CEconItemPreviewDataBlock entity_updates = 1; +} + +message CCSUsrMsg_SendPlayerItemFound { + optional CEconItemPreviewDataBlock iteminfo = 1; + optional int32 playerslot = 2 [default = -1]; +} + +message CCSUsrMsg_ReloadEffect { + optional int32 entidx = 1 [default = -1]; + optional int32 actanim = 2; + optional float origin_x = 3; + optional float origin_y = 4; + optional float origin_z = 5; +} + +message CCSUsrMsg_WeaponSound { + optional int32 entidx = 1 [default = -1]; + optional float origin_x = 2; + optional float origin_y = 3; + optional float origin_z = 4; + optional string sound = 5; + optional float game_timestamp = 6; + optional fixed32 source_soundscapeid = 7; +} + +message CCSUsrMsg_UpdateScreenHealthBar { + optional int32 entidx = 1 [default = -1]; + optional float healthratio_old = 2; + optional float healthratio_new = 3; + optional int32 style = 4; +} + +message CCSUsrMsg_EntityOutlineHighlight { + optional int32 entidx = 1 [default = -1]; + optional bool removehighlight = 2; +} + +message CCSUsrMsg_AdjustMoney { + optional int32 amount = 1; +} + +message CCSUsrMsg_ReportHit { + optional float pos_x = 1; + optional float pos_y = 2; + optional float timestamp = 4; + optional float pos_z = 3; +} + +message CCSUsrMsg_KillCam { + optional int32 obs_mode = 1; + optional int32 first_target = 2 [default = -1]; + optional int32 second_target = 3 [default = -1]; +} + +message CCSUsrMsg_DesiredTimescale { + optional float desired_timescale = 1; + optional float duration_realtime_sec = 2; + optional int32 interpolator_type = 3; + optional float start_blend_time = 4; +} + +message CCSUsrMsg_CurrentTimescale { + optional float cur_timescale = 1; +} + +message CCSUsrMsg_AchievementEvent { + optional int32 achievement = 1; + optional int32 count = 2; + optional int32 user_id = 3; +} + +message CCSUsrMsg_MatchEndConditions { + optional int32 fraglimit = 1; + optional int32 mp_maxrounds = 2; + optional int32 mp_winlimit = 3; + optional float mp_timelimit = 4; +} + +message CCSUsrMsg_PlayerStatsUpdate { + message Stat { + optional int32 idx = 1; + optional int32 delta = 2; + } + + optional int32 version = 1; + repeated CCSUsrMsg_PlayerStatsUpdate.Stat stats = 4; + optional uint32 ehandle = 5; + optional int32 crc = 6; +} + +message CCSUsrMsg_QuestProgress { + optional uint32 quest_id = 1; + optional uint32 normal_points = 2; + optional uint32 bonus_points = 3; + optional bool is_event_quest = 4; +} + +message CCSUsrMsg_ScoreLeaderboardData { + optional ScoreLeaderboardData data = 1; +} + +message CCSUsrMsg_PlayerDecalDigitalSignature { + optional PlayerDecalDigitalSignature data = 1; +} + +message CCSUsrMsg_XRankGet { + optional int32 mode_idx = 1; + optional int32 controller = 2; +} + +message CCSUsrMsg_XRankUpd { + optional int32 mode_idx = 1; + optional int32 controller = 2; + optional int32 ranking = 3; +} + +message CCSUsrMsg_CallVoteFailed { + optional int32 reason = 1; + optional int32 time = 2; +} + +message CCSUsrMsg_VoteStart { + optional int32 team = 1; + optional int32 player_slot = 2 [default = -1]; + optional int32 vote_type = 3; + optional string disp_str = 4; + optional string details_str = 5; + optional string other_team_str = 6; + optional bool is_yes_no_vote = 7; + optional int32 player_slot_target = 8 [default = -1]; +} + +message CCSUsrMsg_VotePass { + optional int32 team = 1; + optional int32 vote_type = 2; + optional string disp_str = 3; + optional string details_str = 4; +} + +message CCSUsrMsg_VoteFailed { + optional int32 team = 1; + optional int32 reason = 2; +} + +message CCSUsrMsg_VoteSetup { + repeated string potential_issues = 1; +} + +message CCSUsrMsg_SendLastKillerDamageToClient { + optional int32 num_hits_given = 1; + optional int32 damage_given = 2; + optional int32 num_hits_taken = 3; + optional int32 damage_taken = 4; + optional int32 actual_damage_given = 5; + optional int32 actual_damage_taken = 6; +} + +message CCSUsrMsg_ServerRankUpdate { + message RankUpdate { + optional int32 account_id = 1; + optional int32 rank_old = 2; + optional int32 rank_new = 3; + optional int32 num_wins = 4; + optional float rank_change = 5; + optional int32 rank_type_id = 6; + } + + repeated CCSUsrMsg_ServerRankUpdate.RankUpdate rank_update = 1; +} + +message CCSUsrMsg_XpUpdate { + optional CMsgGCCstrike15_v2_GC2ServerNotifyXPRewarded data = 1; +} + +message CCSUsrMsg_ItemPickup { + optional string item = 1; +} + +message CCSUsrMsg_ShowMenu { + optional int32 bits_valid_slots = 1; + optional int32 display_time = 2; + optional string menu_string = 3; +} + +message CCSUsrMsg_BarTime { + optional string time = 1; +} + +message CCSUsrMsg_AmmoDenied { + optional int32 ammoidx = 1; +} + +message CCSUsrMsg_MarkAchievement { + optional string achievement = 1; +} + +message CCSUsrMsg_MatchStatsUpdate { + optional string update = 1; +} + +message CCSUsrMsg_ItemDrop { + optional int64 itemid = 1; + optional bool death = 2; +} + +message CCSUsrMsg_GlowPropTurnOff { + optional int32 entidx = 1 [default = -1]; +} + +message CCSUsrMsg_RoundBackupFilenames { + optional int32 count = 1; + optional int32 index = 2; + optional string filename = 3; + optional string nicename = 4; +} + +message CCSUsrMsg_SSUI { + optional bool show = 1; + optional float start_time = 2; + optional float end_time = 3; +} + +message CCSUsrMsg_SurvivalStats { + message Fact { + optional int32 type = 1; + optional int32 display = 2; + optional int32 value = 3; + optional float interestingness = 4; + } + + message Placement { + optional uint64 xuid = 1; + optional int32 teamnumber = 2; + optional int32 placement = 3; + } + + message Damage { + optional uint64 xuid = 1; + optional int32 to = 2; + optional int32 to_hits = 3; + optional int32 from = 4; + optional int32 from_hits = 5; + } + + optional uint64 xuid = 1; + repeated CCSUsrMsg_SurvivalStats.Fact facts = 2; + repeated CCSUsrMsg_SurvivalStats.Placement users = 3; + repeated CCSUsrMsg_SurvivalStats.Damage damages = 5; + optional int32 ticknumber = 4; +} + +message CCSUsrMsg_EndOfMatchAllPlayersData { + message Accolade { + optional int32 eaccolade = 1; + optional float value = 2; + optional int32 position = 3; + } + + message PlayerData { + optional int32 slot = 1 [default = -1]; + optional uint64 xuid = 2; + optional string name = 3; + optional int32 teamnumber = 4; + optional CCSUsrMsg_EndOfMatchAllPlayersData.Accolade nomination = 5; + repeated CEconItemPreviewDataBlock items = 6; + optional int32 playercolor = 7; + optional bool isbot = 8; + } + + repeated CCSUsrMsg_EndOfMatchAllPlayersData.PlayerData allplayerdata = 1; + optional int32 scene = 2; +} + +message CCSUsrMsg_RoundEndReportData { + message RerEvent { + message Victim { + optional int32 team_number = 1; + optional int32 playerslot = 2 [default = -1]; + optional uint64 xuid = 3; + optional int32 color = 4; + optional bool is_bot = 5; + optional bool is_dead = 6; + } + + message Objective { + optional int32 type = 1; + } + + message Damage { + optional int32 other_playerslot = 1 [default = -1]; + optional uint64 other_xuid = 2; + optional int32 health_removed = 3; + optional int32 num_hits = 4; + optional int32 return_health_removed = 5; + optional int32 return_num_hits = 6; + } + + optional float timestamp = 1; + optional int32 terrorist_odds = 2; + optional int32 ct_alive = 3; + optional int32 t_alive = 4; + optional CCSUsrMsg_RoundEndReportData.RerEvent.Victim victim_data = 5; + optional CCSUsrMsg_RoundEndReportData.RerEvent.Objective objective_data = 6; + repeated CCSUsrMsg_RoundEndReportData.RerEvent.Damage all_damage_data = 7; + } + + message InitialConditions { + optional int32 ct_equip_value = 1; + optional int32 t_equip_value = 2; + optional int32 terrorist_odds = 3; + } + + optional CCSUsrMsg_RoundEndReportData.InitialConditions init_conditions = 1; + repeated CCSUsrMsg_RoundEndReportData.RerEvent all_rer_event_data = 2; +} + +message CCSUsrMsg_PostRoundDamageReport { + optional uint64 other_xuid = 1; + optional int32 given_kill_type = 2; + optional int32 given_health_removed = 3; + optional int32 given_num_hits = 4; + optional int32 taken_kill_type = 5; + optional int32 taken_health_removed = 6; + optional int32 taken_num_hits = 7; +} + +message CCSUsrMsg_CurrentRoundOdds { + optional int32 odds = 1; +} + +message CCSUsrMsg_DeepStats { + optional CMsgGCCStrike15_ClientDeepStats stats = 1; +} + +message CCSUsrMsg_ShootInfo { + optional int32 frame_number = 1; + repeated CMsgTransform hitbox_transforms = 2; + optional CMsgVector shoot_pos = 3; + optional CMsgQAngle shoot_dir = 4; +} + +message CCSUsrMsg_ResetHud { + optional bool reset = 1; +} + +message CCSUsrMsg_GameTitle { + optional int32 dummy = 1; +} + +message CCSUsrMsg_RequestState { + optional int32 dummy = 1; +} + +message CCSUsrMsg_StopSpectatorMode { + optional int32 dummy = 1; +} + +message CCSUsrMsg_DisconnectToLobby { + optional int32 dummy = 1; +} + +message CCSUsrMsg_WarmupHasEnded { + optional int32 dummy = 1; +} + +message CCSUsrMsg_ClientInfo { + optional int32 dummy = 1; +} + +message CCSUsrMsg_ServerRankRevealAll { + optional int32 seconds_till_shutdown = 1; + optional CMsgGCCStrike15_v2_MatchmakingGC2ServerReserve reservation = 2; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/demo.proto b/pkg/demoinfocs/msgs2/proto/s2/demo.proto new file mode 100644 index 00000000..01d46aac --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/demo.proto @@ -0,0 +1,161 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +enum EDemoCommands { + DEM_Error = -1; + DEM_Stop = 0; + DEM_FileHeader = 1; + DEM_FileInfo = 2; + DEM_SyncTick = 3; + DEM_SendTables = 4; + DEM_ClassInfo = 5; + DEM_StringTables = 6; + DEM_Packet = 7; + DEM_SignonPacket = 8; + DEM_ConsoleCmd = 9; + DEM_CustomData = 10; + DEM_CustomDataCallbacks = 11; + DEM_UserCmd = 12; + DEM_FullPacket = 13; + DEM_SaveGame = 14; + DEM_SpawnGroups = 15; + DEM_AnimationData = 16; + DEM_Max = 17; + DEM_IsCompressed = 64; +} + +message CDemoFileHeader { + required string demo_file_stamp = 1; + optional int32 network_protocol = 2; + optional string server_name = 3; + optional string client_name = 4; + optional string map_name = 5; + optional string game_directory = 6; + optional int32 fullpackets_version = 7; + optional bool allow_clientside_entities = 8; + optional bool allow_clientside_particles = 9; + optional string addons = 10; + optional string demo_version_name = 11; + optional string demo_version_guid = 12; + optional int32 build_num = 13; + optional string game = 14; +} + +message CGameInfo { + message CDotaGameInfo { + message CPlayerInfo { + optional string hero_name = 1; + optional string player_name = 2; + optional bool is_fake_client = 3; + optional uint64 steamid = 4; + optional int32 game_team = 5; + } + + message CHeroSelectEvent { + optional bool is_pick = 1; + optional uint32 team = 2; + optional uint32 hero_id = 3; + } + + optional uint64 match_id = 1; + optional int32 game_mode = 2; + optional int32 game_winner = 3; + repeated CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4; + optional uint32 leagueid = 5; + repeated CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6; + optional uint32 radiant_team_id = 7; + optional uint32 dire_team_id = 8; + optional string radiant_team_tag = 9; + optional string dire_team_tag = 10; + optional uint32 end_time = 11; + } + + optional CGameInfo.CDotaGameInfo dota = 4; +} + +message CDemoFileInfo { + optional float playback_time = 1; + optional int32 playback_ticks = 2; + optional int32 playback_frames = 3; + optional CGameInfo game_info = 4; +} + +message CDemoPacket { + optional bytes data = 3; +} + +message CDemoFullPacket { + optional CDemoStringTables string_table = 1; + optional CDemoPacket packet = 2; +} + +message CDemoSaveGame { + optional bytes data = 1; + optional fixed64 steam_id = 2; + optional fixed64 signature = 3; + optional int32 version = 4; +} + +message CDemoSyncTick { +} + +message CDemoConsoleCmd { + optional string cmdstring = 1; +} + +message CDemoSendTables { + optional bytes data = 1; +} + +message CDemoClassInfo { + message class_t { + optional int32 class_id = 1; + optional string network_name = 2; + optional string table_name = 3; + } + + repeated CDemoClassInfo.class_t classes = 1; +} + +message CDemoCustomData { + optional int32 callback_index = 1; + optional bytes data = 2; +} + +message CDemoCustomDataCallbacks { + repeated string save_id = 1; +} + +message CDemoAnimationData { + optional sint32 entity_id = 1; + optional int32 start_tick = 2; + optional int32 end_tick = 3; + optional bytes data = 4; +} + +message CDemoStringTables { + message items_t { + optional string str = 1; + optional bytes data = 2; + } + + message table_t { + optional string table_name = 1; + repeated CDemoStringTables.items_t items = 2; + repeated CDemoStringTables.items_t items_clientside = 3; + optional int32 table_flags = 4; + } + + repeated CDemoStringTables.table_t tables = 1; +} + +message CDemoStop { +} + +message CDemoUserCmd { + optional int32 cmd_number = 1; + optional bytes data = 2; +} + +message CDemoSpawnGroups { + repeated bytes msgs = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/econ_gcmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/econ_gcmessages.proto new file mode 100644 index 00000000..1b2ef3d5 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/econ_gcmessages.proto @@ -0,0 +1,228 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages.proto"; + +enum EGCItemMsg { + k_EMsgGCBase = 1000; + k_EMsgGCSetItemPosition = 1001; + k_EMsgGCCraft = 1002; + k_EMsgGCCraftResponse = 1003; + k_EMsgGCDelete = 1004; + k_EMsgGCVerifyCacheSubscription = 1005; + k_EMsgGCNameItem = 1006; + k_EMsgGCUnlockCrate = 1007; + k_EMsgGCUnlockCrateResponse = 1008; + k_EMsgGCPaintItem = 1009; + k_EMsgGCPaintItemResponse = 1010; + k_EMsgGCGoldenWrenchBroadcast = 1011; + k_EMsgGCMOTDRequest = 1012; + k_EMsgGCMOTDRequestResponse = 1013; + k_EMsgGCAddItemToSocket_DEPRECATED = 1014; + k_EMsgGCAddItemToSocketResponse_DEPRECATED = 1015; + k_EMsgGCAddSocketToBaseItem_DEPRECATED = 1016; + k_EMsgGCAddSocketToItem_DEPRECATED = 1017; + k_EMsgGCAddSocketToItemResponse_DEPRECATED = 1018; + k_EMsgGCNameBaseItem = 1019; + k_EMsgGCNameBaseItemResponse = 1020; + k_EMsgGCRemoveSocketItem_DEPRECATED = 1021; + k_EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022; + k_EMsgGCCustomizeItemTexture = 1023; + k_EMsgGCCustomizeItemTextureResponse = 1024; + k_EMsgGCUseItemRequest = 1025; + k_EMsgGCUseItemResponse = 1026; + k_EMsgGCGiftedItems_DEPRECATED = 1027; + k_EMsgGCRemoveItemName = 1030; + k_EMsgGCRemoveItemPaint = 1031; + k_EMsgGCGiftWrapItem = 1032; + k_EMsgGCGiftWrapItemResponse = 1033; + k_EMsgGCDeliverGift = 1034; + k_EMsgGCDeliverGiftResponseGiver = 1035; + k_EMsgGCDeliverGiftResponseReceiver = 1036; + k_EMsgGCUnwrapGiftRequest = 1037; + k_EMsgGCUnwrapGiftResponse = 1038; + k_EMsgGCSetItemStyle = 1039; + k_EMsgGCUsedClaimCodeItem = 1040; + k_EMsgGCSortItems = 1041; + k_EMsgGC_RevolvingLootList_DEPRECATED = 1042; + k_EMsgGCLookupAccount = 1043; + k_EMsgGCLookupAccountResponse = 1044; + k_EMsgGCLookupAccountName = 1045; + k_EMsgGCLookupAccountNameResponse = 1046; + k_EMsgGCUpdateItemSchema = 1049; + k_EMsgGCRemoveCustomTexture = 1051; + k_EMsgGCRemoveCustomTextureResponse = 1052; + k_EMsgGCRemoveMakersMark = 1053; + k_EMsgGCRemoveMakersMarkResponse = 1054; + k_EMsgGCRemoveUniqueCraftIndex = 1055; + k_EMsgGCRemoveUniqueCraftIndexResponse = 1056; + k_EMsgGCSaxxyBroadcast = 1057; + k_EMsgGCBackpackSortFinished = 1058; + k_EMsgGCAdjustItemEquippedState = 1059; + k_EMsgGCCollectItem = 1061; + k_EMsgGCItemAcknowledged__DEPRECATED = 1062; + k_EMsgGC_ReportAbuse = 1065; + k_EMsgGC_ReportAbuseResponse = 1066; + k_EMsgGCNameItemNotification = 1068; + k_EMsgGCApplyConsumableEffects = 1069; + k_EMsgGCConsumableExhausted = 1070; + k_EMsgGCShowItemsPickedUp = 1071; + k_EMsgGCClientDisplayNotification = 1072; + k_EMsgGCApplyStrangePart = 1073; + k_EMsgGC_IncrementKillCountAttribute = 1074; + k_EMsgGC_IncrementKillCountResponse = 1075; + k_EMsgGCApplyPennantUpgrade = 1076; + k_EMsgGCSetItemPositions = 1077; + k_EMsgGCApplyEggEssence = 1078; + k_EMsgGCNameEggEssenceResponse = 1079; + k_EMsgGCPaintKitItem = 1080; + k_EMsgGCPaintKitBaseItem = 1081; + k_EMsgGCPaintKitItemResponse = 1082; + k_EMsgGCGiftedItems = 1083; + k_EMsgGCUnlockItemStyle = 1084; + k_EMsgGCUnlockItemStyleResponse = 1085; + k_EMsgGCApplySticker = 1086; + k_EMsgGCItemAcknowledged = 1087; + k_EMsgGCStatTrakSwap = 1088; + k_EMsgGCUserTrackTimePlayedConsecutively = 1089; + k_EMsgGCItemCustomizationNotification = 1090; + k_EMsgGCModifyItemAttribute = 1091; + k_EMsgGCCasketItemAdd = 1092; + k_EMsgGCCasketItemExtract = 1093; + k_EMsgGCCasketItemLoadContents = 1094; + k_EMsgGCTradingBase = 1500; + k_EMsgGCTrading_InitiateTradeRequest = 1501; + k_EMsgGCTrading_InitiateTradeResponse = 1502; + k_EMsgGCTrading_StartSession = 1503; + k_EMsgGCTrading_SetItem = 1504; + k_EMsgGCTrading_RemoveItem = 1505; + k_EMsgGCTrading_UpdateTradeInfo = 1506; + k_EMsgGCTrading_SetReadiness = 1507; + k_EMsgGCTrading_ReadinessResponse = 1508; + k_EMsgGCTrading_SessionClosed = 1509; + k_EMsgGCTrading_CancelSession = 1510; + k_EMsgGCTrading_TradeChatMsg = 1511; + k_EMsgGCTrading_ConfirmOffer = 1512; + k_EMsgGCTrading_TradeTypingChatMsg = 1513; + k_EMsgGCServerBrowser_FavoriteServer = 1601; + k_EMsgGCServerBrowser_BlacklistServer = 1602; + k_EMsgGCServerRentalsBase = 1700; + k_EMsgGCItemPreviewCheckStatus = 1701; + k_EMsgGCItemPreviewStatusResponse = 1702; + k_EMsgGCItemPreviewRequest = 1703; + k_EMsgGCItemPreviewRequestResponse = 1704; + k_EMsgGCItemPreviewExpire = 1705; + k_EMsgGCItemPreviewExpireNotification = 1706; + k_EMsgGCItemPreviewItemBoughtNotification = 1707; + k_EMsgGCDev_NewItemRequest = 2001; + k_EMsgGCDev_NewItemRequestResponse = 2002; + k_EMsgGCDev_PaintKitDropItem = 2003; + k_EMsgGCStoreGetUserData = 2500; + k_EMsgGCStoreGetUserDataResponse = 2501; + k_EMsgGCStorePurchaseInit_DEPRECATED = 2502; + k_EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503; + k_EMsgGCStorePurchaseFinalize = 2504; + k_EMsgGCStorePurchaseFinalizeResponse = 2505; + k_EMsgGCStorePurchaseCancel = 2506; + k_EMsgGCStorePurchaseCancelResponse = 2507; + k_EMsgGCStorePurchaseQueryTxn = 2508; + k_EMsgGCStorePurchaseQueryTxnResponse = 2509; + k_EMsgGCStorePurchaseInit = 2510; + k_EMsgGCStorePurchaseInitResponse = 2511; + k_EMsgGCBannedWordListRequest = 2512; + k_EMsgGCBannedWordListResponse = 2513; + k_EMsgGCToGCBannedWordListBroadcast = 2514; + k_EMsgGCToGCBannedWordListUpdated = 2515; + k_EMsgGCToGCDirtySDOCache = 2516; + k_EMsgGCToGCDirtyMultipleSDOCache = 2517; + k_EMsgGCToGCUpdateSQLKeyValue = 2518; + k_EMsgGCToGCIsTrustedServer = 2519; + k_EMsgGCToGCIsTrustedServerResponse = 2520; + k_EMsgGCToGCBroadcastConsoleCommand = 2521; + k_EMsgGCServerVersionUpdated = 2522; + k_EMsgGCToGCWebAPIAccountChanged = 2524; + k_EMsgGCRequestAnnouncements = 2525; + k_EMsgGCRequestAnnouncementsResponse = 2526; + k_EMsgGCRequestPassportItemGrant = 2527; + k_EMsgGCClientVersionUpdated = 2528; + k_EMsgGCAdjustItemEquippedStateMulti = 2529; + k_EMsgGCRecurringSubscriptionStatus = 2530; + k_EMsgGCAdjustEquipSlots = 2531; +} + +enum EGCMsgResponse { + k_EGCMsgResponseOK = 0; + k_EGCMsgResponseDenied = 1; + k_EGCMsgResponseServerError = 2; + k_EGCMsgResponseTimeout = 3; + k_EGCMsgResponseInvalid = 4; + k_EGCMsgResponseNoMatch = 5; + k_EGCMsgResponseUnknownError = 6; + k_EGCMsgResponseNotLoggedOn = 7; + k_EGCMsgFailedToCreate = 8; + k_EGCMsgLimitExceeded = 9; + k_EGCMsgCommitUnfinalized = 10; +} + +enum EUnlockStyle { + k_UnlockStyle_Succeeded = 0; + k_UnlockStyle_Failed_PreReq = 1; + k_UnlockStyle_Failed_CantAfford = 2; + k_UnlockStyle_Failed_CantCommit = 3; + k_UnlockStyle_Failed_CantLockCache = 4; + k_UnlockStyle_Failed_CantAffordAttrib = 5; +} + +enum EGCItemCustomizationNotification { + k_EGCItemCustomizationNotification_NameItem = 1006; + k_EGCItemCustomizationNotification_UnlockCrate = 1007; + k_EGCItemCustomizationNotification_XRayItemReveal = 1008; + k_EGCItemCustomizationNotification_XRayItemClaim = 1009; + k_EGCItemCustomizationNotification_CasketTooFull = 1011; + k_EGCItemCustomizationNotification_CasketContents = 1012; + k_EGCItemCustomizationNotification_CasketAdded = 1013; + k_EGCItemCustomizationNotification_CasketRemoved = 1014; + k_EGCItemCustomizationNotification_CasketInvFull = 1015; + k_EGCItemCustomizationNotification_NameBaseItem = 1019; + k_EGCItemCustomizationNotification_RemoveItemName = 1030; + k_EGCItemCustomizationNotification_RemoveSticker = 1053; + k_EGCItemCustomizationNotification_ApplySticker = 1086; + k_EGCItemCustomizationNotification_StatTrakSwap = 1088; + k_EGCItemCustomizationNotification_RemovePatch = 1089; + k_EGCItemCustomizationNotification_ApplyPatch = 1090; + k_EGCItemCustomizationNotification_ActivateFanToken = 9178; + k_EGCItemCustomizationNotification_ActivateOperationCoin = 9179; + k_EGCItemCustomizationNotification_GraffitiUnseal = 9185; + k_EGCItemCustomizationNotification_GenerateSouvenir = 9204; + k_EGCItemCustomizationNotification_ClientRedeemMissionReward = 9209; +} + +message CMsgGCGiftedItems { + optional uint32 accountid = 1; + optional uint32 giftdefindex = 2; + optional uint32 max_gifts_possible = 3; + optional uint32 num_eligible_recipients = 4; + repeated uint32 recipients_accountids = 5; +} + +message CMsgApplyAutograph { + optional uint64 autograph_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgCasketItem { + optional uint64 casket_item_id = 1; + optional uint64 item_item_id = 2; +} + +message CMsgGCUserTrackTimePlayedConsecutively { + optional uint32 state = 1; +} + +message CMsgGCItemCustomizationNotification { + repeated uint64 item_id = 1; + optional uint32 request = 2; +} + +message CAttribute_String { + optional string value = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/engine_gcmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/engine_gcmessages.proto new file mode 100644 index 00000000..c59a6c97 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/engine_gcmessages.proto @@ -0,0 +1,16 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +message CEngineGotvSyncPacket { + optional uint64 match_id = 1; + optional uint32 instance_id = 2; + optional uint32 signupfragment = 3; + optional uint32 currentfragment = 4; + optional float tickrate = 5; + optional uint32 tick = 6; + optional float rtdelay = 8; + optional float rcvage = 9; + optional float keyframe_interval = 10; + optional uint32 cdndelay = 11; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/enums_clientserver.proto b/pkg/demoinfocs/msgs2/proto/s2/enums_clientserver.proto new file mode 100644 index 00000000..aa977d4b --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/enums_clientserver.proto @@ -0,0 +1,1531 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum EMsg { + option allow_alias = true; + k_EMsgInvalid = 0; + k_EMsgMulti = 1; + k_EMsgProtobufWrapped = 2; + k_EMsgBaseGeneral = 100; + k_EMsgGenericReply = 100; + k_EMsgDestJobFailed = 113; + k_EMsgAlert = 115; + k_EMsgSCIDRequest = 120; + k_EMsgSCIDResponse = 121; + k_EMsgJobHeartbeat = 123; + k_EMsgHubConnect = 124; + k_EMsgSubscribe = 126; + k_EMRouteMessage = 127; + k_EMsgWGRequest = 130; + k_EMsgWGResponse = 131; + k_EMsgKeepAlive = 132; + k_EMsgWebAPIJobRequest = 133; + k_EMsgWebAPIJobResponse = 134; + k_EMsgClientSessionStart = 135; + k_EMsgClientSessionEnd = 136; + k_EMsgClientSessionUpdate = 137; + k_EMsgStatsDeprecated = 138; + k_EMsgPing = 139; + k_EMsgPingResponse = 140; + k_EMsgStats = 141; + k_EMsgRequestFullStatsBlock = 142; + k_EMsgLoadDBOCacheItem = 143; + k_EMsgLoadDBOCacheItemResponse = 144; + k_EMsgInvalidateDBOCacheItems = 145; + k_EMsgServiceMethod = 146; + k_EMsgServiceMethodResponse = 147; + k_EMsgClientPackageVersions = 148; + k_EMsgTimestampRequest = 149; + k_EMsgTimestampResponse = 150; + k_EMsgServiceMethodCallFromClient = 151; + k_EMsgServiceMethodSendToClient = 152; + k_EMsgBaseShell = 200; + k_EMsgAssignSysID = 200; + k_EMsgExit = 201; + k_EMsgDirRequest = 202; + k_EMsgDirResponse = 203; + k_EMsgZipRequest = 204; + k_EMsgZipResponse = 205; + k_EMsgUpdateRecordResponse = 215; + k_EMsgUpdateCreditCardRequest = 221; + k_EMsgUpdateUserBanResponse = 225; + k_EMsgPrepareToExit = 226; + k_EMsgContentDescriptionUpdate = 227; + k_EMsgTestResetServer = 228; + k_EMsgUniverseChanged = 229; + k_EMsgShellConfigInfoUpdate = 230; + k_EMsgRequestWindowsEventLogEntries = 233; + k_EMsgProvideWindowsEventLogEntries = 234; + k_EMsgShellSearchLogs = 235; + k_EMsgShellSearchLogsResponse = 236; + k_EMsgShellCheckWindowsUpdates = 237; + k_EMsgShellCheckWindowsUpdatesResponse = 238; + k_EMsgTestFlushDelayedSQL = 240; + k_EMsgTestFlushDelayedSQLResponse = 241; + k_EMsgEnsureExecuteScheduledTask_TEST = 242; + k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243; + k_EMsgUpdateScheduledTaskEnableState_TEST = 244; + k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245; + k_EMsgContentDescriptionDeltaUpdate = 246; + k_EMsgGMShellAndServerAddressUpdates = 247; + k_EMsgBaseGM = 300; + k_EMsgHeartbeat = 300; + k_EMsgShellFailed = 301; + k_EMsgExitShells = 307; + k_EMsgExitShell = 308; + k_EMsgGracefulExitShell = 309; + k_EMsgLicenseProcessingComplete = 316; + k_EMsgSetTestFlag = 317; + k_EMsgQueuedEmailsComplete = 318; + k_EMsgGMReportPHPError = 319; + k_EMsgGMDRMSync = 320; + k_EMsgPhysicalBoxInventory = 321; + k_EMsgUpdateConfigFile = 322; + k_EMsgTestInitDB = 323; + k_EMsgGMWriteConfigToSQL = 324; + k_EMsgGMLoadActivationCodes = 325; + k_EMsgGMQueueForFBS = 326; + k_EMsgGMSchemaConversionResults = 327; + k_EMsgGMWriteShellFailureToSQL = 329; + k_EMsgGMWriteStatsToSOS = 330; + k_EMsgGMGetServiceMethodRouting = 331; + k_EMsgGMGetServiceMethodRoutingResponse = 332; + k_EMsgGMTestNextBuildSchemaConversion = 334; + k_EMsgGMTestNextBuildSchemaConversionResponse = 335; + k_EMsgExpectShellRestart = 336; + k_EMsgHotFixProgress = 337; + k_EMsgGMStatsForwardToAdminConnections = 338; + k_EMsgBaseAIS = 400; + k_EMsgAISRequestContentDescription = 402; + k_EMsgAISUpdateAppInfo = 403; + k_EMsgAISGetPackageChangeNumber = 405; + k_EMsgAISGetPackageChangeNumberResponse = 406; + k_EMsgAIGetAppGCFlags = 423; + k_EMsgAIGetAppGCFlagsResponse = 424; + k_EMsgAIGetAppList = 425; + k_EMsgAIGetAppListResponse = 426; + k_EMsgAISGetCouponDefinition = 429; + k_EMsgAISGetCouponDefinitionResponse = 430; + k_EMsgAISUpdateSubordinateContentDescription = 431; + k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432; + k_EMsgAISTestEnableGC = 433; + k_EMsgBaseAM = 500; + k_EMsgAMUpdateUserBanRequest = 504; + k_EMsgAMAddLicense = 505; + k_EMsgAMSendSystemIMToUser = 508; + k_EMsgAMExtendLicense = 509; + k_EMsgAMAddMinutesToLicense = 510; + k_EMsgAMCancelLicense = 511; + k_EMsgAMInitPurchase = 512; + k_EMsgAMPurchaseResponse = 513; + k_EMsgAMGetFinalPrice = 514; + k_EMsgAMGetFinalPriceResponse = 515; + k_EMsgAMGetLegacyGameKey = 516; + k_EMsgAMGetLegacyGameKeyResponse = 517; + k_EMsgAMFindHungTransactions = 518; + k_EMsgAMSetAccountTrustedRequest = 519; + k_EMsgAMCancelPurchase = 522; + k_EMsgAMNewChallenge = 523; + k_EMsgAMLoadOEMTickets = 524; + k_EMsgAMFixPendingPurchase = 525; + k_EMsgAMFixPendingPurchaseResponse = 526; + k_EMsgAMIsUserBanned = 527; + k_EMsgAMRegisterKey = 528; + k_EMsgAMLoadActivationCodes = 529; + k_EMsgAMLoadActivationCodesResponse = 530; + k_EMsgAMLookupKeyResponse = 531; + k_EMsgAMLookupKey = 532; + k_EMsgAMChatCleanup = 533; + k_EMsgAMClanCleanup = 534; + k_EMsgAMFixPendingRefund = 535; + k_EMsgAMReverseChargeback = 536; + k_EMsgAMReverseChargebackResponse = 537; + k_EMsgAMClanCleanupList = 538; + k_EMsgAMGetLicenses = 539; + k_EMsgAMGetLicensesResponse = 540; + k_EMsgAMSendCartRepurchase = 541; + k_EMsgAMSendCartRepurchaseResponse = 542; + k_EMsgAllowUserToPlayQuery = 550; + k_EMsgAllowUserToPlayResponse = 551; + k_EMsgAMVerfiyUser = 552; + k_EMsgAMClientNotPlaying = 553; + k_EMsgAMClientRequestFriendship = 554; + k_EMsgAMRelayPublishStatus = 555; + k_EMsgAMInitPurchaseResponse = 560; + k_EMsgAMRevokePurchaseResponse = 561; + k_EMsgAMRefreshGuestPasses = 563; + k_EMsgAMGrantGuestPasses = 566; + k_EMsgAMClanDataUpdated = 567; + k_EMsgAMReloadAccount = 568; + k_EMsgAMClientChatMsgRelay = 569; + k_EMsgAMChatMulti = 570; + k_EMsgAMClientChatInviteRelay = 571; + k_EMsgAMChatInvite = 572; + k_EMsgAMClientJoinChatRelay = 573; + k_EMsgAMClientChatMemberInfoRelay = 574; + k_EMsgAMPublishChatMemberInfo = 575; + k_EMsgAMClientAcceptFriendInvite = 576; + k_EMsgAMChatEnter = 577; + k_EMsgAMClientPublishRemovalFromSource = 578; + k_EMsgAMChatActionResult = 579; + k_EMsgAMFindAccounts = 580; + k_EMsgAMFindAccountsResponse = 581; + k_EMsgAMIsAccountNameInUse = 582; + k_EMsgAMIsAccountNameInUseResponse = 583; + k_EMsgAMSetAccountFlags = 584; + k_EMsgAMCreateClan = 586; + k_EMsgAMCreateClanResponse = 587; + k_EMsgAMGetClanDetails = 588; + k_EMsgAMGetClanDetailsResponse = 589; + k_EMsgAMSetPersonaName = 590; + k_EMsgAMSetAvatar = 591; + k_EMsgAMAuthenticateUser = 592; + k_EMsgAMAuthenticateUserResponse = 593; + k_EMsgAMP2PIntroducerMessage = 596; + k_EMsgClientChatAction = 597; + k_EMsgAMClientChatActionRelay = 598; + k_EMsgBaseVS = 600; + k_EMsgReqChallenge = 600; + k_EMsgVACResponse = 601; + k_EMsgReqChallengeTest = 602; + k_EMsgVSMarkCheat = 604; + k_EMsgVSAddCheat = 605; + k_EMsgVSPurgeCodeModDB = 606; + k_EMsgVSGetChallengeResults = 607; + k_EMsgVSChallengeResultText = 608; + k_EMsgVSReportLingerer = 609; + k_EMsgVSRequestManagedChallenge = 610; + k_EMsgVSLoadDBFinished = 611; + k_EMsgBaseDRMS = 625; + k_EMsgDRMBuildBlobRequest = 628; + k_EMsgDRMBuildBlobResponse = 629; + k_EMsgDRMResolveGuidRequest = 630; + k_EMsgDRMResolveGuidResponse = 631; + k_EMsgDRMVariabilityReport = 633; + k_EMsgDRMVariabilityReportResponse = 634; + k_EMsgDRMStabilityReport = 635; + k_EMsgDRMStabilityReportResponse = 636; + k_EMsgDRMDetailsReportRequest = 637; + k_EMsgDRMDetailsReportResponse = 638; + k_EMsgDRMProcessFile = 639; + k_EMsgDRMAdminUpdate = 640; + k_EMsgDRMAdminUpdateResponse = 641; + k_EMsgDRMSync = 642; + k_EMsgDRMSyncResponse = 643; + k_EMsgDRMProcessFileResponse = 644; + k_EMsgDRMEmptyGuidCache = 645; + k_EMsgDRMEmptyGuidCacheResponse = 646; + k_EMsgBaseCS = 650; + k_EMsgBaseClient = 700; + k_EMsgClientLogOn_Deprecated = 701; + k_EMsgClientAnonLogOn_Deprecated = 702; + k_EMsgClientHeartBeat = 703; + k_EMsgClientVACResponse = 704; + k_EMsgClientGamesPlayed_obsolete = 705; + k_EMsgClientLogOff = 706; + k_EMsgClientNoUDPConnectivity = 707; + k_EMsgClientConnectionStats = 710; + k_EMsgClientPingResponse = 712; + k_EMsgClientRemoveFriend = 714; + k_EMsgClientGamesPlayedNoDataBlob = 715; + k_EMsgClientChangeStatus = 716; + k_EMsgClientVacStatusResponse = 717; + k_EMsgClientFriendMsg = 718; + k_EMsgClientGameConnect_obsolete = 719; + k_EMsgClientGamesPlayed2_obsolete = 720; + k_EMsgClientGameEnded_obsolete = 721; + k_EMsgClientSystemIM = 726; + k_EMsgClientSystemIMAck = 727; + k_EMsgClientGetLicenses = 728; + k_EMsgClientGetLegacyGameKey = 730; + k_EMsgClientContentServerLogOn_Deprecated = 731; + k_EMsgClientAckVACBan2 = 732; + k_EMsgClientGetPurchaseReceipts = 736; + k_EMsgClientGamesPlayed3_obsolete = 738; + k_EMsgClientAckGuestPass = 740; + k_EMsgClientRedeemGuestPass = 741; + k_EMsgClientGamesPlayed = 742; + k_EMsgClientRegisterKey = 743; + k_EMsgClientInviteUserToClan = 744; + k_EMsgClientAcknowledgeClanInvite = 745; + k_EMsgClientPurchaseWithMachineID = 746; + k_EMsgClientAppUsageEvent = 747; + k_EMsgClientLogOnResponse = 751; + k_EMsgClientSetHeartbeatRate = 755; + k_EMsgClientNotLoggedOnDeprecated = 756; + k_EMsgClientLoggedOff = 757; + k_EMsgGSApprove = 758; + k_EMsgGSDeny = 759; + k_EMsgGSKick = 760; + k_EMsgClientPurchaseResponse = 763; + k_EMsgClientPing = 764; + k_EMsgClientNOP = 765; + k_EMsgClientPersonaState = 766; + k_EMsgClientFriendsList = 767; + k_EMsgClientAccountInfo = 768; + k_EMsgClientNewsUpdate = 771; + k_EMsgClientGameConnectDeny = 773; + k_EMsgGSStatusReply = 774; + k_EMsgClientGameConnectTokens = 779; + k_EMsgClientLicenseList = 780; + k_EMsgClientVACBanStatus = 782; + k_EMsgClientCMList = 783; + k_EMsgClientEncryptPct = 784; + k_EMsgClientGetLegacyGameKeyResponse = 785; + k_EMsgClientAddFriend = 791; + k_EMsgClientAddFriendResponse = 792; + k_EMsgClientAckGuestPassResponse = 796; + k_EMsgClientRedeemGuestPassResponse = 797; + k_EMsgClientUpdateGuestPassesList = 798; + k_EMsgClientChatMsg = 799; + k_EMsgClientChatInvite = 800; + k_EMsgClientJoinChat = 801; + k_EMsgClientChatMemberInfo = 802; + k_EMsgClientLogOnWithCredentials_Deprecated = 803; + k_EMsgClientPasswordChangeResponse = 805; + k_EMsgClientChatEnter = 807; + k_EMsgClientFriendRemovedFromSource = 808; + k_EMsgClientCreateChat = 809; + k_EMsgClientCreateChatResponse = 810; + k_EMsgClientP2PIntroducerMessage = 813; + k_EMsgClientChatActionResult = 814; + k_EMsgClientRequestFriendData = 815; + k_EMsgClientGetUserStats = 818; + k_EMsgClientGetUserStatsResponse = 819; + k_EMsgClientStoreUserStats = 820; + k_EMsgClientStoreUserStatsResponse = 821; + k_EMsgClientClanState = 822; + k_EMsgClientServiceModule = 830; + k_EMsgClientServiceCall = 831; + k_EMsgClientServiceCallResponse = 832; + k_EMsgClientNatTraversalStatEvent = 839; + k_EMsgClientSteamUsageEvent = 842; + k_EMsgClientCheckPassword = 845; + k_EMsgClientResetPassword = 846; + k_EMsgClientCheckPasswordResponse = 848; + k_EMsgClientResetPasswordResponse = 849; + k_EMsgClientSessionToken = 850; + k_EMsgClientDRMProblemReport = 851; + k_EMsgClientSetIgnoreFriend = 855; + k_EMsgClientSetIgnoreFriendResponse = 856; + k_EMsgClientGetAppOwnershipTicket = 857; + k_EMsgClientGetAppOwnershipTicketResponse = 858; + k_EMsgClientGetLobbyListResponse = 860; + k_EMsgClientServerList = 880; + k_EMsgClientDRMBlobRequest = 896; + k_EMsgClientDRMBlobResponse = 897; + k_EMsgBaseGameServer = 900; + k_EMsgGSDisconnectNotice = 901; + k_EMsgGSStatus = 903; + k_EMsgGSUserPlaying = 905; + k_EMsgGSStatus2 = 906; + k_EMsgGSStatusUpdate_Unused = 907; + k_EMsgGSServerType = 908; + k_EMsgGSPlayerList = 909; + k_EMsgGSGetUserAchievementStatus = 910; + k_EMsgGSGetUserAchievementStatusResponse = 911; + k_EMsgGSGetPlayStats = 918; + k_EMsgGSGetPlayStatsResponse = 919; + k_EMsgGSGetUserGroupStatus = 920; + k_EMsgAMGetUserGroupStatus = 921; + k_EMsgAMGetUserGroupStatusResponse = 922; + k_EMsgGSGetUserGroupStatusResponse = 923; + k_EMsgGSGetReputation = 936; + k_EMsgGSGetReputationResponse = 937; + k_EMsgGSAssociateWithClan = 938; + k_EMsgGSAssociateWithClanResponse = 939; + k_EMsgGSComputeNewPlayerCompatibility = 940; + k_EMsgGSComputeNewPlayerCompatibilityResponse = 941; + k_EMsgBaseAdmin = 1000; + k_EMsgAdminCmd = 1000; + k_EMsgAdminCmdResponse = 1004; + k_EMsgAdminLogListenRequest = 1005; + k_EMsgAdminLogEvent = 1006; + k_EMsgUniverseData = 1010; + k_EMsgAdminSpew = 1019; + k_EMsgAdminConsoleTitle = 1020; + k_EMsgAdminGCSpew = 1023; + k_EMsgAdminGCCommand = 1024; + k_EMsgAdminGCGetCommandList = 1025; + k_EMsgAdminGCGetCommandListResponse = 1026; + k_EMsgFBSConnectionData = 1027; + k_EMsgAdminMsgSpew = 1028; + k_EMsgBaseFBS = 1100; + k_EMsgFBSReqVersion = 1100; + k_EMsgFBSVersionInfo = 1101; + k_EMsgFBSForceRefresh = 1102; + k_EMsgFBSForceBounce = 1103; + k_EMsgFBSDeployPackage = 1104; + k_EMsgFBSDeployResponse = 1105; + k_EMsgFBSUpdateBootstrapper = 1106; + k_EMsgFBSSetState = 1107; + k_EMsgFBSApplyOSUpdates = 1108; + k_EMsgFBSRunCMDScript = 1109; + k_EMsgFBSRebootBox = 1110; + k_EMsgFBSSetBigBrotherMode = 1111; + k_EMsgFBSMinidumpServer = 1112; + k_EMsgFBSDeployHotFixPackage = 1114; + k_EMsgFBSDeployHotFixResponse = 1115; + k_EMsgFBSDownloadHotFix = 1116; + k_EMsgFBSDownloadHotFixResponse = 1117; + k_EMsgFBSUpdateTargetConfigFile = 1118; + k_EMsgFBSApplyAccountCred = 1119; + k_EMsgFBSApplyAccountCredResponse = 1120; + k_EMsgFBSSetShellCount = 1121; + k_EMsgFBSTerminateShell = 1122; + k_EMsgFBSQueryGMForRequest = 1123; + k_EMsgFBSQueryGMResponse = 1124; + k_EMsgFBSTerminateZombies = 1125; + k_EMsgFBSInfoFromBootstrapper = 1126; + k_EMsgFBSRebootBoxResponse = 1127; + k_EMsgFBSBootstrapperPackageRequest = 1128; + k_EMsgFBSBootstrapperPackageResponse = 1129; + k_EMsgFBSBootstrapperGetPackageChunk = 1130; + k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131; + k_EMsgFBSBootstrapperPackageTransferProgress = 1132; + k_EMsgFBSRestartBootstrapper = 1133; + k_EMsgFBSPauseFrozenDumps = 1134; + k_EMsgBaseFileXfer = 1200; + k_EMsgFileXferRequest = 1200; + k_EMsgFileXferResponse = 1201; + k_EMsgFileXferData = 1202; + k_EMsgFileXferEnd = 1203; + k_EMsgFileXferDataAck = 1204; + k_EMsgBaseChannelAuth = 1300; + k_EMsgChannelAuthChallenge = 1300; + k_EMsgChannelAuthResponse = 1301; + k_EMsgChannelAuthResult = 1302; + k_EMsgChannelEncryptRequest = 1303; + k_EMsgChannelEncryptResponse = 1304; + k_EMsgChannelEncryptResult = 1305; + k_EMsgBaseBS = 1400; + k_EMsgBSPurchaseStart = 1401; + k_EMsgBSPurchaseResponse = 1402; + k_EMsgBSAuthenticateCCTrans = 1403; + k_EMsgBSAuthenticateCCTransResponse = 1404; + k_EMsgBSSettleComplete = 1406; + k_EMsgBSInitPayPalTxn = 1408; + k_EMsgBSInitPayPalTxnResponse = 1409; + k_EMsgBSGetPayPalUserInfo = 1410; + k_EMsgBSGetPayPalUserInfoResponse = 1411; + k_EMsgBSPaymentInstrBan = 1417; + k_EMsgBSPaymentInstrBanResponse = 1418; + k_EMsgBSInitGCBankXferTxn = 1421; + k_EMsgBSInitGCBankXferTxnResponse = 1422; + k_EMsgBSCommitGCTxn = 1425; + k_EMsgBSQueryTransactionStatus = 1426; + k_EMsgBSQueryTransactionStatusResponse = 1427; + k_EMsgBSQueryTxnExtendedInfo = 1433; + k_EMsgBSQueryTxnExtendedInfoResponse = 1434; + k_EMsgBSUpdateConversionRates = 1435; + k_EMsgBSPurchaseRunFraudChecks = 1437; + k_EMsgBSPurchaseRunFraudChecksResponse = 1438; + k_EMsgBSQueryBankInformation = 1440; + k_EMsgBSQueryBankInformationResponse = 1441; + k_EMsgBSValidateXsollaSignature = 1445; + k_EMsgBSValidateXsollaSignatureResponse = 1446; + k_EMsgBSQiwiWalletInvoice = 1448; + k_EMsgBSQiwiWalletInvoiceResponse = 1449; + k_EMsgBSUpdateInventoryFromProPack = 1450; + k_EMsgBSUpdateInventoryFromProPackResponse = 1451; + k_EMsgBSSendShippingRequest = 1452; + k_EMsgBSSendShippingRequestResponse = 1453; + k_EMsgBSGetProPackOrderStatus = 1454; + k_EMsgBSGetProPackOrderStatusResponse = 1455; + k_EMsgBSCheckJobRunning = 1456; + k_EMsgBSCheckJobRunningResponse = 1457; + k_EMsgBSResetPackagePurchaseRateLimit = 1458; + k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459; + k_EMsgBSUpdatePaymentData = 1460; + k_EMsgBSUpdatePaymentDataResponse = 1461; + k_EMsgBSGetBillingAddress = 1462; + k_EMsgBSGetBillingAddressResponse = 1463; + k_EMsgBSGetCreditCardInfo = 1464; + k_EMsgBSGetCreditCardInfoResponse = 1465; + k_EMsgBSRemoveExpiredPaymentData = 1468; + k_EMsgBSRemoveExpiredPaymentDataResponse = 1469; + k_EMsgBSConvertToCurrentKeys = 1470; + k_EMsgBSConvertToCurrentKeysResponse = 1471; + k_EMsgBSInitPurchase = 1472; + k_EMsgBSInitPurchaseResponse = 1473; + k_EMsgBSCompletePurchase = 1474; + k_EMsgBSCompletePurchaseResponse = 1475; + k_EMsgBSPruneCardUsageStats = 1476; + k_EMsgBSPruneCardUsageStatsResponse = 1477; + k_EMsgBSStoreBankInformation = 1478; + k_EMsgBSStoreBankInformationResponse = 1479; + k_EMsgBSVerifyPOSAKey = 1480; + k_EMsgBSVerifyPOSAKeyResponse = 1481; + k_EMsgBSReverseRedeemPOSAKey = 1482; + k_EMsgBSReverseRedeemPOSAKeyResponse = 1483; + k_EMsgBSQueryFindCreditCard = 1484; + k_EMsgBSQueryFindCreditCardResponse = 1485; + k_EMsgBSStatusInquiryPOSAKey = 1486; + k_EMsgBSStatusInquiryPOSAKeyResponse = 1487; + k_EMsgBSBoaCompraConfirmProductDelivery = 1494; + k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495; + k_EMsgBSGenerateBoaCompraMD5 = 1496; + k_EMsgBSGenerateBoaCompraMD5Response = 1497; + k_EMsgBSCommitWPTxn = 1498; + k_EMsgBSCommitAdyenTxn = 1499; + k_EMsgBaseATS = 1500; + k_EMsgATSStartStressTest = 1501; + k_EMsgATSStopStressTest = 1502; + k_EMsgATSRunFailServerTest = 1503; + k_EMsgATSUFSPerfTestTask = 1504; + k_EMsgATSUFSPerfTestResponse = 1505; + k_EMsgATSCycleTCM = 1506; + k_EMsgATSInitDRMSStressTest = 1507; + k_EMsgATSCallTest = 1508; + k_EMsgATSCallTestReply = 1509; + k_EMsgATSStartExternalStress = 1510; + k_EMsgATSExternalStressJobStart = 1511; + k_EMsgATSExternalStressJobQueued = 1512; + k_EMsgATSExternalStressJobRunning = 1513; + k_EMsgATSExternalStressJobStopped = 1514; + k_EMsgATSExternalStressJobStopAll = 1515; + k_EMsgATSExternalStressActionResult = 1516; + k_EMsgATSStarted = 1517; + k_EMsgATSCSPerfTestTask = 1518; + k_EMsgATSCSPerfTestResponse = 1519; + k_EMsgBaseDP = 1600; + k_EMsgDPSetPublishingState = 1601; + k_EMsgDPUniquePlayersStat = 1603; + k_EMsgDPStreamingUniquePlayersStat = 1604; + k_EMsgDPBlockingStats = 1607; + k_EMsgDPNatTraversalStats = 1608; + k_EMsgDPCloudStats = 1612; + k_EMsgDPGetPlayerCount = 1615; + k_EMsgDPGetPlayerCountResponse = 1616; + k_EMsgDPGameServersPlayersStats = 1617; + k_EMsgClientDPCheckSpecialSurvey = 1620; + k_EMsgClientDPCheckSpecialSurveyResponse = 1621; + k_EMsgClientDPSendSpecialSurveyResponse = 1622; + k_EMsgClientDPSendSpecialSurveyResponseReply = 1623; + k_EMsgDPStoreSaleStatistics = 1624; + k_EMsgClientDPUpdateAppJobReport = 1625; + k_EMsgClientDPUnsignedInstallScript = 1627; + k_EMsgDPPartnerMicroTxns = 1628; + k_EMsgDPPartnerMicroTxnsResponse = 1629; + k_EMsgClientDPContentStatsReport = 1630; + k_EMsgDPVRUniquePlayersStat = 1631; + k_EMsgBaseCM = 1700; + k_EMsgCMSetAllowState = 1701; + k_EMsgCMSpewAllowState = 1702; + k_EMsgCMSessionRejected = 1703; + k_EMsgCMSetSecrets = 1704; + k_EMsgCMGetSecrets = 1705; + k_EMsgBaseGC = 2200; + k_EMsgGCCmdRevive = 2203; + k_EMsgGCCmdDown = 2206; + k_EMsgGCCmdDeploy = 2207; + k_EMsgGCCmdDeployResponse = 2208; + k_EMsgGCCmdSwitch = 2209; + k_EMsgAMRefreshSessions = 2210; + k_EMsgGCAchievementAwarded = 2212; + k_EMsgGCSystemMessage = 2213; + k_EMsgGCCmdStatus = 2216; + k_EMsgGCRegisterWebInterfaces_Deprecated = 2217; + k_EMsgGCGetAccountDetails_DEPRECATED = 2218; + k_EMsgGCInterAppMessage = 2219; + k_EMsgGCGetEmailTemplate = 2220; + k_EMsgGCGetEmailTemplateResponse = 2221; + k_EMsgGCHRelay = 2222; + k_EMsgGCHRelayToClient = 2223; + k_EMsgGCHUpdateSession = 2224; + k_EMsgGCHRequestUpdateSession = 2225; + k_EMsgGCHRequestStatus = 2226; + k_EMsgGCHRequestStatusResponse = 2227; + k_EMsgGCHAccountVacStatusChange = 2228; + k_EMsgGCHSpawnGC = 2229; + k_EMsgGCHSpawnGCResponse = 2230; + k_EMsgGCHKillGC = 2231; + k_EMsgGCHKillGCResponse = 2232; + k_EMsgGCHAccountTradeBanStatusChange = 2233; + k_EMsgGCHAccountLockStatusChange = 2234; + k_EMsgGCHVacVerificationChange = 2235; + k_EMsgGCHAccountPhoneNumberChange = 2236; + k_EMsgGCHAccountTwoFactorChange = 2237; + k_EMsgGCHInviteUserToLobby = 2238; + k_EMsgGCHUpdateMultipleSessions = 2239; + k_EMsgGCHMarkAppSessionsAuthoritative = 2240; + k_EMsgGCHRecurringSubscriptionStatusChange = 2241; + k_EMsgGCHAppCheersReceived = 2242; + k_EMsgGCHAppCheersGetAllowedTypes = 2243; + k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244; + k_EMsgBaseP2P = 2500; + k_EMsgP2PIntroducerMessage = 2502; + k_EMsgBaseSM = 2900; + k_EMsgSMExpensiveReport = 2902; + k_EMsgSMHourlyReport = 2903; + k_EMsgSMPartitionRenames = 2905; + k_EMsgSMMonitorSpace = 2906; + k_EMsgSMTestNextBuildSchemaConversion = 2907; + k_EMsgSMTestNextBuildSchemaConversionResponse = 2908; + k_EMsgBaseTest = 3000; + k_EMsgFailServer = 3000; + k_EMsgJobHeartbeatTest = 3001; + k_EMsgJobHeartbeatTestResponse = 3002; + k_EMsgBaseFTSRange = 3100; + k_EMsgBaseCCSRange = 3150; + k_EMsgCCSDeleteAllCommentsByAuthor = 3161; + k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162; + k_EMsgBaseLBSRange = 3200; + k_EMsgLBSSetScore = 3201; + k_EMsgLBSSetScoreResponse = 3202; + k_EMsgLBSFindOrCreateLB = 3203; + k_EMsgLBSFindOrCreateLBResponse = 3204; + k_EMsgLBSGetLBEntries = 3205; + k_EMsgLBSGetLBEntriesResponse = 3206; + k_EMsgLBSGetLBList = 3207; + k_EMsgLBSGetLBListResponse = 3208; + k_EMsgLBSSetLBDetails = 3209; + k_EMsgLBSDeleteLB = 3210; + k_EMsgLBSDeleteLBEntry = 3211; + k_EMsgLBSResetLB = 3212; + k_EMsgLBSResetLBResponse = 3213; + k_EMsgLBSDeleteLBResponse = 3214; + k_EMsgBaseOGS = 3400; + k_EMsgOGSBeginSession = 3401; + k_EMsgOGSBeginSessionResponse = 3402; + k_EMsgOGSEndSession = 3403; + k_EMsgOGSEndSessionResponse = 3404; + k_EMsgOGSWriteAppSessionRow = 3406; + k_EMsgBaseBRP = 3600; + k_EMsgBRPPostTransactionTax = 3629; + k_EMsgBRPPostTransactionTaxResponse = 3630; + k_EMsgBaseAMRange2 = 4000; + k_EMsgAMCreateChat = 4001; + k_EMsgAMCreateChatResponse = 4002; + k_EMsgAMSetProfileURL = 4005; + k_EMsgAMGetAccountEmailAddress = 4006; + k_EMsgAMGetAccountEmailAddressResponse = 4007; + k_EMsgAMRequestClanData = 4008; + k_EMsgAMRouteToClients = 4009; + k_EMsgAMLeaveClan = 4010; + k_EMsgAMClanPermissions = 4011; + k_EMsgAMClanPermissionsResponse = 4012; + k_EMsgAMCreateClanEventDummyForRateLimiting = 4013; + k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015; + k_EMsgAMSetClanPermissionSettings = 4021; + k_EMsgAMSetClanPermissionSettingsResponse = 4022; + k_EMsgAMGetClanPermissionSettings = 4023; + k_EMsgAMGetClanPermissionSettingsResponse = 4024; + k_EMsgAMPublishChatRoomInfo = 4025; + k_EMsgClientChatRoomInfo = 4026; + k_EMsgAMGetClanHistory = 4039; + k_EMsgAMGetClanHistoryResponse = 4040; + k_EMsgAMGetClanPermissionBits = 4041; + k_EMsgAMGetClanPermissionBitsResponse = 4042; + k_EMsgAMSetClanPermissionBits = 4043; + k_EMsgAMSetClanPermissionBitsResponse = 4044; + k_EMsgAMSessionInfoRequest = 4045; + k_EMsgAMSessionInfoResponse = 4046; + k_EMsgAMValidateWGToken = 4047; + k_EMsgAMGetClanRank = 4050; + k_EMsgAMGetClanRankResponse = 4051; + k_EMsgAMSetClanRank = 4052; + k_EMsgAMSetClanRankResponse = 4053; + k_EMsgAMGetClanPOTW = 4054; + k_EMsgAMGetClanPOTWResponse = 4055; + k_EMsgAMSetClanPOTW = 4056; + k_EMsgAMSetClanPOTWResponse = 4057; + k_EMsgAMDumpUser = 4059; + k_EMsgAMKickUserFromClan = 4060; + k_EMsgAMAddFounderToClan = 4061; + k_EMsgAMValidateWGTokenResponse = 4062; + k_EMsgAMSetAccountDetails = 4064; + k_EMsgAMGetChatBanList = 4065; + k_EMsgAMGetChatBanListResponse = 4066; + k_EMsgAMUnBanFromChat = 4067; + k_EMsgAMSetClanDetails = 4068; + k_EMsgUGSGetUserGameStats = 4073; + k_EMsgUGSGetUserGameStatsResponse = 4074; + k_EMsgAMCheckClanMembership = 4075; + k_EMsgAMGetClanMembers = 4076; + k_EMsgAMGetClanMembersResponse = 4077; + k_EMsgAMNotifyChatOfClanChange = 4079; + k_EMsgAMResubmitPurchase = 4080; + k_EMsgAMAddFriend = 4081; + k_EMsgAMAddFriendResponse = 4082; + k_EMsgAMRemoveFriend = 4083; + k_EMsgAMDumpClan = 4084; + k_EMsgAMChangeClanOwner = 4085; + k_EMsgAMCancelEasyCollect = 4086; + k_EMsgAMCancelEasyCollectResponse = 4087; + k_EMsgAMClansInCommon = 4090; + k_EMsgAMClansInCommonResponse = 4091; + k_EMsgAMIsValidAccountID = 4092; + k_EMsgAMWipeFriendsList = 4095; + k_EMsgAMSetIgnored = 4096; + k_EMsgAMClansInCommonCountResponse = 4097; + k_EMsgAMFriendsList = 4098; + k_EMsgAMFriendsListResponse = 4099; + k_EMsgAMFriendsInCommon = 4100; + k_EMsgAMFriendsInCommonResponse = 4101; + k_EMsgAMFriendsInCommonCountResponse = 4102; + k_EMsgAMClansInCommonCount = 4103; + k_EMsgAMChallengeVerdict = 4104; + k_EMsgAMChallengeNotification = 4105; + k_EMsgAMFindGSByIP = 4106; + k_EMsgAMFoundGSByIP = 4107; + k_EMsgAMGiftRevoked = 4108; + k_EMsgAMUserClanList = 4110; + k_EMsgAMUserClanListResponse = 4111; + k_EMsgAMGetAccountDetails2 = 4112; + k_EMsgAMGetAccountDetailsResponse2 = 4113; + k_EMsgAMSetCommunityProfileSettings = 4114; + k_EMsgAMSetCommunityProfileSettingsResponse = 4115; + k_EMsgAMGetCommunityPrivacyState = 4116; + k_EMsgAMGetCommunityPrivacyStateResponse = 4117; + k_EMsgAMCheckClanInviteRateLimiting = 4118; + k_EMsgUGSGetUserAchievementStatus = 4119; + k_EMsgAMGetIgnored = 4120; + k_EMsgAMGetIgnoredResponse = 4121; + k_EMsgAMSetIgnoredResponse = 4122; + k_EMsgAMSetFriendRelationshipNone = 4123; + k_EMsgAMGetFriendRelationship = 4124; + k_EMsgAMGetFriendRelationshipResponse = 4125; + k_EMsgAMServiceModulesCache = 4126; + k_EMsgAMServiceModulesCall = 4127; + k_EMsgAMServiceModulesCallResponse = 4128; + k_EMsgCommunityAddFriendNews = 4140; + k_EMsgAMFindClanUser = 4143; + k_EMsgAMFindClanUserResponse = 4144; + k_EMsgAMBanFromChat = 4145; + k_EMsgAMGetUserNewsSubscriptions = 4147; + k_EMsgAMGetUserNewsSubscriptionsResponse = 4148; + k_EMsgAMSetUserNewsSubscriptions = 4149; + k_EMsgAMSendQueuedEmails = 4152; + k_EMsgAMSetLicenseFlags = 4153; + k_EMsgCommunityDeleteUserNews = 4155; + k_EMsgAMAllowUserFilesRequest = 4156; + k_EMsgAMAllowUserFilesResponse = 4157; + k_EMsgAMGetAccountStatus = 4158; + k_EMsgAMGetAccountStatusResponse = 4159; + k_EMsgAMEditBanReason = 4160; + k_EMsgAMCheckClanMembershipResponse = 4161; + k_EMsgAMProbeClanMembershipList = 4162; + k_EMsgAMProbeClanMembershipListResponse = 4163; + k_EMsgUGSGetUserAchievementStatusResponse = 4164; + k_EMsgAMGetFriendsLobbies = 4165; + k_EMsgAMGetFriendsLobbiesResponse = 4166; + k_EMsgAMGetUserFriendNewsResponse = 4172; + k_EMsgCommunityGetUserFriendNews = 4173; + k_EMsgAMGetUserClansNewsResponse = 4174; + k_EMsgAMGetUserClansNews = 4175; + k_EMsgAMGetPreviousCBAccount = 4184; + k_EMsgAMGetPreviousCBAccountResponse = 4185; + k_EMsgAMGetUserLicenseHistory = 4190; + k_EMsgAMGetUserLicenseHistoryResponse = 4191; + k_EMsgAMSupportChangePassword = 4194; + k_EMsgAMSupportChangeEmail = 4195; + k_EMsgAMResetUserVerificationGSByIP = 4197; + k_EMsgAMUpdateGSPlayStats = 4198; + k_EMsgAMSupportEnableOrDisable = 4199; + k_EMsgAMGetPurchaseStatus = 4206; + k_EMsgAMSupportIsAccountEnabled = 4209; + k_EMsgAMSupportIsAccountEnabledResponse = 4210; + k_EMsgUGSGetUserStats = 4211; + k_EMsgAMGSSearch = 4213; + k_EMsgMarketingMessageUpdate = 4216; + k_EMsgChatServerRouteFriendMsg = 4219; + k_EMsgAMTicketAuthRequestOrResponse = 4220; + k_EMsgAMAddFreeLicense = 4224; + k_EMsgAMValidateEmailLink = 4231; + k_EMsgAMValidateEmailLinkResponse = 4232; + k_EMsgUGSStoreUserStats = 4236; + k_EMsgAMDeleteStoredCard = 4241; + k_EMsgAMRevokeLegacyGameKeys = 4242; + k_EMsgAMGetWalletDetails = 4244; + k_EMsgAMGetWalletDetailsResponse = 4245; + k_EMsgAMDeleteStoredPaymentInfo = 4246; + k_EMsgAMGetStoredPaymentSummary = 4247; + k_EMsgAMGetStoredPaymentSummaryResponse = 4248; + k_EMsgAMGetWalletConversionRate = 4249; + k_EMsgAMGetWalletConversionRateResponse = 4250; + k_EMsgAMConvertWallet = 4251; + k_EMsgAMConvertWalletResponse = 4252; + k_EMsgAMSetPreApproval = 4255; + k_EMsgAMSetPreApprovalResponse = 4256; + k_EMsgAMCreateRefund = 4258; + k_EMsgAMCreateChargeback = 4260; + k_EMsgAMCreateDispute = 4262; + k_EMsgAMClearDispute = 4264; + k_EMsgAMCreateFinancialAdjustment = 4265; + k_EMsgAMPlayerNicknameList = 4266; + k_EMsgAMPlayerNicknameListResponse = 4267; + k_EMsgAMSetDRMTestConfig = 4268; + k_EMsgAMGetUserCurrentGameInfo = 4269; + k_EMsgAMGetUserCurrentGameInfoResponse = 4270; + k_EMsgAMGetGSPlayerList = 4271; + k_EMsgAMGetGSPlayerListResponse = 4272; + k_EMsgAMGetSteamIDForMicroTxn = 4278; + k_EMsgAMGetSteamIDForMicroTxnResponse = 4279; + k_EMsgAMSetPartnerMember = 4280; + k_EMsgAMRemovePublisherUser = 4281; + k_EMsgAMGetUserLicenseList = 4282; + k_EMsgAMGetUserLicenseListResponse = 4283; + k_EMsgAMReloadGameGroupPolicy = 4284; + k_EMsgAMAddFreeLicenseResponse = 4285; + k_EMsgAMVACStatusUpdate = 4286; + k_EMsgAMGetAccountDetails = 4287; + k_EMsgAMGetAccountDetailsResponse = 4288; + k_EMsgAMGetPlayerLinkDetails = 4289; + k_EMsgAMGetPlayerLinkDetailsResponse = 4290; + k_EMsgAMGetAccountFlagsForWGSpoofing = 4294; + k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295; + k_EMsgAMGetClanOfficers = 4298; + k_EMsgAMGetClanOfficersResponse = 4299; + k_EMsgAMNameChange = 4300; + k_EMsgAMGetNameHistory = 4301; + k_EMsgAMGetNameHistoryResponse = 4302; + k_EMsgAMUpdateProviderStatus = 4305; + k_EMsgAMSupportRemoveAccountSecurity = 4307; + k_EMsgAMIsAccountInCaptchaGracePeriod = 4308; + k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309; + k_EMsgAMAccountPS3Unlink = 4310; + k_EMsgAMAccountPS3UnlinkResponse = 4311; + k_EMsgUGSStoreUserStatsResponse = 4312; + k_EMsgAMGetAccountPSNInfo = 4313; + k_EMsgAMGetAccountPSNInfoResponse = 4314; + k_EMsgAMAuthenticatedPlayerList = 4315; + k_EMsgAMGetUserGifts = 4316; + k_EMsgAMGetUserGiftsResponse = 4317; + k_EMsgAMTransferLockedGifts = 4320; + k_EMsgAMTransferLockedGiftsResponse = 4321; + k_EMsgAMPlayerHostedOnGameServer = 4322; + k_EMsgAMGetAccountBanInfo = 4323; + k_EMsgAMGetAccountBanInfoResponse = 4324; + k_EMsgAMRecordBanEnforcement = 4325; + k_EMsgAMRollbackGiftTransfer = 4326; + k_EMsgAMRollbackGiftTransferResponse = 4327; + k_EMsgAMHandlePendingTransaction = 4328; + k_EMsgAMRequestClanDetails = 4329; + k_EMsgAMDeleteStoredPaypalAgreement = 4330; + k_EMsgAMGameServerUpdate = 4331; + k_EMsgAMGameServerRemove = 4332; + k_EMsgAMGetPaypalAgreements = 4333; + k_EMsgAMGetPaypalAgreementsResponse = 4334; + k_EMsgAMGameServerPlayerCompatibilityCheck = 4335; + k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336; + k_EMsgAMRenewLicense = 4337; + k_EMsgAMGetAccountCommunityBanInfo = 4338; + k_EMsgAMGetAccountCommunityBanInfoResponse = 4339; + k_EMsgAMGameServerAccountChangePassword = 4340; + k_EMsgAMGameServerAccountDeleteAccount = 4341; + k_EMsgAMRenewAgreement = 4342; + k_EMsgAMXsollaPayment = 4344; + k_EMsgAMXsollaPaymentResponse = 4345; + k_EMsgAMAcctAllowedToPurchase = 4346; + k_EMsgAMAcctAllowedToPurchaseResponse = 4347; + k_EMsgAMSwapKioskDeposit = 4348; + k_EMsgAMSwapKioskDepositResponse = 4349; + k_EMsgAMSetUserGiftUnowned = 4350; + k_EMsgAMSetUserGiftUnownedResponse = 4351; + k_EMsgAMClaimUnownedUserGift = 4352; + k_EMsgAMClaimUnownedUserGiftResponse = 4353; + k_EMsgAMSetClanName = 4354; + k_EMsgAMSetClanNameResponse = 4355; + k_EMsgAMGrantCoupon = 4356; + k_EMsgAMGrantCouponResponse = 4357; + k_EMsgAMIsPackageRestrictedInUserCountry = 4358; + k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359; + k_EMsgAMHandlePendingTransactionResponse = 4360; + k_EMsgAMGrantGuestPasses2 = 4361; + k_EMsgAMGrantGuestPasses2Response = 4362; + k_EMsgAMGetPlayerBanDetails = 4365; + k_EMsgAMGetPlayerBanDetailsResponse = 4366; + k_EMsgAMFinalizePurchase = 4367; + k_EMsgAMFinalizePurchaseResponse = 4368; + k_EMsgAMPersonaChangeResponse = 4372; + k_EMsgAMGetClanDetailsForForumCreation = 4373; + k_EMsgAMGetClanDetailsForForumCreationResponse = 4374; + k_EMsgAMGetPendingNotificationCount = 4375; + k_EMsgAMGetPendingNotificationCountResponse = 4376; + k_EMsgAMPasswordHashUpgrade = 4377; + k_EMsgAMBoaCompraPayment = 4380; + k_EMsgAMBoaCompraPaymentResponse = 4381; + k_EMsgAMCompleteExternalPurchase = 4383; + k_EMsgAMCompleteExternalPurchaseResponse = 4384; + k_EMsgAMResolveNegativeWalletCredits = 4385; + k_EMsgAMResolveNegativeWalletCreditsResponse = 4386; + k_EMsgAMPlayerGetClanBasicDetails = 4389; + k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390; + k_EMsgAMMOLPayment = 4391; + k_EMsgAMMOLPaymentResponse = 4392; + k_EMsgGetUserIPCountry = 4393; + k_EMsgGetUserIPCountryResponse = 4394; + k_EMsgNotificationOfSuspiciousActivity = 4395; + k_EMsgAMDegicaPayment = 4396; + k_EMsgAMDegicaPaymentResponse = 4397; + k_EMsgAMEClubPayment = 4398; + k_EMsgAMEClubPaymentResponse = 4399; + k_EMsgAMPayPalPaymentsHubPayment = 4400; + k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401; + k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402; + k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403; + k_EMsgAMSmart2PayPayment = 4404; + k_EMsgAMSmart2PayPaymentResponse = 4405; + k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406; + k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407; + k_EMsgAMGetAccountResetDetailsRequest = 4408; + k_EMsgAMGetAccountResetDetailsResponse = 4409; + k_EMsgAMBitPayPayment = 4410; + k_EMsgAMBitPayPaymentResponse = 4411; + k_EMsgAMSendAccountInfoUpdate = 4412; + k_EMsgAMSendScheduledGift = 4413; + k_EMsgAMNodwinPayment = 4414; + k_EMsgAMNodwinPaymentResponse = 4415; + k_EMsgAMResolveWalletRevoke = 4416; + k_EMsgAMResolveWalletReverseRevoke = 4417; + k_EMsgAMFundedPayment = 4418; + k_EMsgAMFundedPaymentResponse = 4419; + k_EMsgAMRequestPersonaUpdateForChatServer = 4420; + k_EMsgAMPerfectWorldPayment = 4421; + k_EMsgAMPerfectWorldPaymentResponse = 4422; + k_EMsgAMECommPayPayment = 4423; + k_EMsgAMECommPayPaymentResponse = 4424; + k_EMsgBasePSRange = 5000; + k_EMsgPSCreateShoppingCart = 5001; + k_EMsgPSCreateShoppingCartResponse = 5002; + k_EMsgPSIsValidShoppingCart = 5003; + k_EMsgPSIsValidShoppingCartResponse = 5004; + k_EMsgPSRemoveLineItemFromShoppingCart = 5007; + k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008; + k_EMsgPSGetShoppingCartContents = 5009; + k_EMsgPSGetShoppingCartContentsResponse = 5010; + k_EMsgPSAddWalletCreditToShoppingCart = 5011; + k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012; + k_EMsgBaseUFSRange = 5200; + k_EMsgClientUFSUploadFileRequest = 5202; + k_EMsgClientUFSUploadFileResponse = 5203; + k_EMsgClientUFSUploadFileChunk = 5204; + k_EMsgClientUFSUploadFileFinished = 5205; + k_EMsgClientUFSGetFileListForApp = 5206; + k_EMsgClientUFSGetFileListForAppResponse = 5207; + k_EMsgClientUFSDownloadRequest = 5210; + k_EMsgClientUFSDownloadResponse = 5211; + k_EMsgClientUFSDownloadChunk = 5212; + k_EMsgClientUFSLoginRequest = 5213; + k_EMsgClientUFSLoginResponse = 5214; + k_EMsgUFSReloadPartitionInfo = 5215; + k_EMsgClientUFSTransferHeartbeat = 5216; + k_EMsgUFSSynchronizeFile = 5217; + k_EMsgUFSSynchronizeFileResponse = 5218; + k_EMsgClientUFSDeleteFileRequest = 5219; + k_EMsgClientUFSDeleteFileResponse = 5220; + k_EMsgClientUFSGetUGCDetails = 5226; + k_EMsgClientUFSGetUGCDetailsResponse = 5227; + k_EMsgUFSUpdateFileFlags = 5228; + k_EMsgUFSUpdateFileFlagsResponse = 5229; + k_EMsgClientUFSGetSingleFileInfo = 5230; + k_EMsgClientUFSGetSingleFileInfoResponse = 5231; + k_EMsgClientUFSShareFile = 5232; + k_EMsgClientUFSShareFileResponse = 5233; + k_EMsgUFSReloadAccount = 5234; + k_EMsgUFSReloadAccountResponse = 5235; + k_EMsgUFSUpdateRecordBatched = 5236; + k_EMsgUFSUpdateRecordBatchedResponse = 5237; + k_EMsgUFSMigrateFile = 5238; + k_EMsgUFSMigrateFileResponse = 5239; + k_EMsgUFSGetUGCURLs = 5240; + k_EMsgUFSGetUGCURLsResponse = 5241; + k_EMsgUFSHttpUploadFileFinishRequest = 5242; + k_EMsgUFSHttpUploadFileFinishResponse = 5243; + k_EMsgUFSDownloadStartRequest = 5244; + k_EMsgUFSDownloadStartResponse = 5245; + k_EMsgUFSDownloadChunkRequest = 5246; + k_EMsgUFSDownloadChunkResponse = 5247; + k_EMsgUFSDownloadFinishRequest = 5248; + k_EMsgUFSDownloadFinishResponse = 5249; + k_EMsgUFSFlushURLCache = 5250; + k_EMsgClientUFSUploadCommit = 5251; + k_EMsgClientUFSUploadCommitResponse = 5252; + k_EMsgUFSMigrateFileAppID = 5253; + k_EMsgUFSMigrateFileAppIDResponse = 5254; + k_EMsgBaseClient2 = 5400; + k_EMsgClientRequestForgottenPasswordEmail = 5401; + k_EMsgClientRequestForgottenPasswordEmailResponse = 5402; + k_EMsgClientCreateAccountResponse = 5403; + k_EMsgClientResetForgottenPassword = 5404; + k_EMsgClientResetForgottenPasswordResponse = 5405; + k_EMsgClientInformOfResetForgottenPassword = 5407; + k_EMsgClientInformOfResetForgottenPasswordResponse = 5408; + k_EMsgClientAnonUserLogOn_Deprecated = 5409; + k_EMsgClientGamesPlayedWithDataBlob = 5410; + k_EMsgClientUpdateUserGameInfo = 5411; + k_EMsgClientFileToDownload = 5412; + k_EMsgClientFileToDownloadResponse = 5413; + k_EMsgClientLBSSetScore = 5414; + k_EMsgClientLBSSetScoreResponse = 5415; + k_EMsgClientLBSFindOrCreateLB = 5416; + k_EMsgClientLBSFindOrCreateLBResponse = 5417; + k_EMsgClientLBSGetLBEntries = 5418; + k_EMsgClientLBSGetLBEntriesResponse = 5419; + k_EMsgClientChatDeclined = 5426; + k_EMsgClientFriendMsgIncoming = 5427; + k_EMsgClientAuthList_Deprecated = 5428; + k_EMsgClientTicketAuthComplete = 5429; + k_EMsgClientIsLimitedAccount = 5430; + k_EMsgClientRequestAuthList = 5431; + k_EMsgClientAuthList = 5432; + k_EMsgClientStat = 5433; + k_EMsgClientP2PConnectionInfo = 5434; + k_EMsgClientP2PConnectionFailInfo = 5435; + k_EMsgClientGetDepotDecryptionKey = 5438; + k_EMsgClientGetDepotDecryptionKeyResponse = 5439; + k_EMsgGSPerformHardwareSurvey = 5440; + k_EMsgClientEnableTestLicense = 5443; + k_EMsgClientEnableTestLicenseResponse = 5444; + k_EMsgClientDisableTestLicense = 5445; + k_EMsgClientDisableTestLicenseResponse = 5446; + k_EMsgClientRequestValidationMail = 5448; + k_EMsgClientRequestValidationMailResponse = 5449; + k_EMsgClientCheckAppBetaPassword = 5450; + k_EMsgClientCheckAppBetaPasswordResponse = 5451; + k_EMsgClientToGC = 5452; + k_EMsgClientFromGC = 5453; + k_EMsgClientEmailAddrInfo = 5456; + k_EMsgClientPasswordChange3 = 5457; + k_EMsgClientEmailChange3 = 5458; + k_EMsgClientPersonalQAChange3 = 5459; + k_EMsgClientResetForgottenPassword3 = 5460; + k_EMsgClientRequestForgottenPasswordEmail3 = 5461; + k_EMsgClientNewLoginKey = 5463; + k_EMsgClientNewLoginKeyAccepted = 5464; + k_EMsgClientLogOnWithHash_Deprecated = 5465; + k_EMsgClientStoreUserStats2 = 5466; + k_EMsgClientStatsUpdated = 5467; + k_EMsgClientActivateOEMLicense = 5468; + k_EMsgClientRegisterOEMMachine = 5469; + k_EMsgClientRegisterOEMMachineResponse = 5470; + k_EMsgClientRequestedClientStats = 5480; + k_EMsgClientStat2Int32 = 5481; + k_EMsgClientStat2 = 5482; + k_EMsgClientVerifyPassword = 5483; + k_EMsgClientVerifyPasswordResponse = 5484; + k_EMsgClientDRMDownloadRequest = 5485; + k_EMsgClientDRMDownloadResponse = 5486; + k_EMsgClientDRMFinalResult = 5487; + k_EMsgClientGetFriendsWhoPlayGame = 5488; + k_EMsgClientGetFriendsWhoPlayGameResponse = 5489; + k_EMsgClientOGSBeginSession = 5490; + k_EMsgClientOGSBeginSessionResponse = 5491; + k_EMsgClientOGSEndSession = 5492; + k_EMsgClientOGSEndSessionResponse = 5493; + k_EMsgClientOGSWriteRow = 5494; + k_EMsgClientDRMTest = 5495; + k_EMsgClientDRMTestResult = 5496; + k_EMsgClientServerUnavailable = 5500; + k_EMsgClientServersAvailable = 5501; + k_EMsgClientRegisterAuthTicketWithCM = 5502; + k_EMsgClientGCMsgFailed = 5503; + k_EMsgClientMicroTxnAuthRequest = 5504; + k_EMsgClientMicroTxnAuthorize = 5505; + k_EMsgClientMicroTxnAuthorizeResponse = 5506; + k_EMsgClientGetMicroTxnInfo = 5508; + k_EMsgClientGetMicroTxnInfoResponse = 5509; + k_EMsgClientMarketingMessageUpdate2 = 5510; + k_EMsgClientDeregisterWithServer = 5511; + k_EMsgClientSubscribeToPersonaFeed = 5512; + k_EMsgClientLogon = 5514; + k_EMsgClientGetClientDetails = 5515; + k_EMsgClientGetClientDetailsResponse = 5516; + k_EMsgClientReportOverlayDetourFailure = 5517; + k_EMsgClientGetClientAppList = 5518; + k_EMsgClientGetClientAppListResponse = 5519; + k_EMsgClientInstallClientApp = 5520; + k_EMsgClientInstallClientAppResponse = 5521; + k_EMsgClientUninstallClientApp = 5522; + k_EMsgClientUninstallClientAppResponse = 5523; + k_EMsgClientSetClientAppUpdateState = 5524; + k_EMsgClientSetClientAppUpdateStateResponse = 5525; + k_EMsgClientRequestEncryptedAppTicket = 5526; + k_EMsgClientRequestEncryptedAppTicketResponse = 5527; + k_EMsgClientWalletInfoUpdate = 5528; + k_EMsgClientLBSSetUGC = 5529; + k_EMsgClientLBSSetUGCResponse = 5530; + k_EMsgClientAMGetClanOfficers = 5531; + k_EMsgClientAMGetClanOfficersResponse = 5532; + k_EMsgClientFriendProfileInfo = 5535; + k_EMsgClientFriendProfileInfoResponse = 5536; + k_EMsgClientUpdateMachineAuth = 5537; + k_EMsgClientUpdateMachineAuthResponse = 5538; + k_EMsgClientReadMachineAuth = 5539; + k_EMsgClientReadMachineAuthResponse = 5540; + k_EMsgClientRequestMachineAuth = 5541; + k_EMsgClientRequestMachineAuthResponse = 5542; + k_EMsgClientScreenshotsChanged = 5543; + k_EMsgClientGetCDNAuthToken = 5546; + k_EMsgClientGetCDNAuthTokenResponse = 5547; + k_EMsgClientDownloadRateStatistics = 5548; + k_EMsgClientRequestAccountData = 5549; + k_EMsgClientRequestAccountDataResponse = 5550; + k_EMsgClientResetForgottenPassword4 = 5551; + k_EMsgClientHideFriend = 5552; + k_EMsgClientFriendsGroupsList = 5553; + k_EMsgClientGetClanActivityCounts = 5554; + k_EMsgClientGetClanActivityCountsResponse = 5555; + k_EMsgClientOGSReportString = 5556; + k_EMsgClientOGSReportBug = 5557; + k_EMsgClientSentLogs = 5558; + k_EMsgClientLogonGameServer = 5559; + k_EMsgAMClientCreateFriendsGroup = 5560; + k_EMsgAMClientCreateFriendsGroupResponse = 5561; + k_EMsgAMClientDeleteFriendsGroup = 5562; + k_EMsgAMClientDeleteFriendsGroupResponse = 5563; + k_EMsgAMClientManageFriendsGroup = 5564; + k_EMsgAMClientManageFriendsGroupResponse = 5565; + k_EMsgAMClientAddFriendToGroup = 5566; + k_EMsgAMClientAddFriendToGroupResponse = 5567; + k_EMsgAMClientRemoveFriendFromGroup = 5568; + k_EMsgAMClientRemoveFriendFromGroupResponse = 5569; + k_EMsgClientAMGetPersonaNameHistory = 5570; + k_EMsgClientAMGetPersonaNameHistoryResponse = 5571; + k_EMsgClientRequestFreeLicense = 5572; + k_EMsgClientRequestFreeLicenseResponse = 5573; + k_EMsgClientDRMDownloadRequestWithCrashData = 5574; + k_EMsgClientAuthListAck = 5575; + k_EMsgClientItemAnnouncements = 5576; + k_EMsgClientRequestItemAnnouncements = 5577; + k_EMsgClientFriendMsgEchoToSender = 5578; + k_EMsgClientCommentNotifications = 5582; + k_EMsgClientRequestCommentNotifications = 5583; + k_EMsgClientPersonaChangeResponse = 5584; + k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585; + k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586; + k_EMsgClientPlayerNicknameList = 5587; + k_EMsgAMClientSetPlayerNickname = 5588; + k_EMsgAMClientSetPlayerNicknameResponse = 5589; + k_EMsgClientGetNumberOfCurrentPlayersDP = 5592; + k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593; + k_EMsgClientServiceMethodLegacy = 5594; + k_EMsgClientServiceMethodLegacyResponse = 5595; + k_EMsgClientFriendUserStatusPublished = 5596; + k_EMsgClientCurrentUIMode = 5597; + k_EMsgClientVanityURLChangedNotification = 5598; + k_EMsgClientUserNotifications = 5599; + k_EMsgBaseDFS = 5600; + k_EMsgDFSGetFile = 5601; + k_EMsgDFSInstallLocalFile = 5602; + k_EMsgDFSConnection = 5603; + k_EMsgDFSConnectionReply = 5604; + k_EMsgClientDFSAuthenticateRequest = 5605; + k_EMsgClientDFSAuthenticateResponse = 5606; + k_EMsgClientDFSEndSession = 5607; + k_EMsgDFSPurgeFile = 5608; + k_EMsgDFSRouteFile = 5609; + k_EMsgDFSGetFileFromServer = 5610; + k_EMsgDFSAcceptedResponse = 5611; + k_EMsgDFSRequestPingback = 5612; + k_EMsgDFSRecvTransmitFile = 5613; + k_EMsgDFSSendTransmitFile = 5614; + k_EMsgDFSRequestPingback2 = 5615; + k_EMsgDFSResponsePingback2 = 5616; + k_EMsgClientDFSDownloadStatus = 5617; + k_EMsgDFSStartTransfer = 5618; + k_EMsgDFSTransferComplete = 5619; + k_EMsgDFSRouteFileResponse = 5620; + k_EMsgClientNetworkingCertRequest = 5621; + k_EMsgClientNetworkingCertRequestResponse = 5622; + k_EMsgClientChallengeRequest = 5623; + k_EMsgClientChallengeResponse = 5624; + k_EMsgBadgeCraftedNotification = 5625; + k_EMsgClientNetworkingMobileCertRequest = 5626; + k_EMsgClientNetworkingMobileCertRequestResponse = 5627; + k_EMsgBaseMDS = 5800; + k_EMsgMDSGetDepotDecryptionKey = 5812; + k_EMsgMDSGetDepotDecryptionKeyResponse = 5813; + k_EMsgMDSContentServerConfigRequest = 5827; + k_EMsgMDSContentServerConfig = 5828; + k_EMsgMDSGetDepotManifest = 5829; + k_EMsgMDSGetDepotManifestResponse = 5830; + k_EMsgMDSGetDepotManifestChunk = 5831; + k_EMsgMDSGetDepotChunk = 5832; + k_EMsgMDSGetDepotChunkResponse = 5833; + k_EMsgMDSGetDepotChunkChunk = 5834; + k_EMsgMDSToCSFlushChunk = 5844; + k_EMsgMDSMigrateChunk = 5847; + k_EMsgMDSMigrateChunkResponse = 5848; + k_EMsgMDSToCSFlushManifest = 5849; + k_EMsgCSBase = 6200; + k_EMsgCSPing = 6201; + k_EMsgCSPingResponse = 6202; + k_EMsgGMSBase = 6400; + k_EMsgGMSGameServerReplicate = 6401; + k_EMsgClientGMSServerQuery = 6403; + k_EMsgGMSClientServerQueryResponse = 6404; + k_EMsgAMGMSGameServerUpdate = 6405; + k_EMsgAMGMSGameServerRemove = 6406; + k_EMsgGameServerOutOfDate = 6407; + k_EMsgDeviceAuthorizationBase = 6500; + k_EMsgClientAuthorizeLocalDeviceRequest = 6501; + k_EMsgClientAuthorizeLocalDeviceResponse = 6502; + k_EMsgClientDeauthorizeDeviceRequest = 6503; + k_EMsgClientDeauthorizeDevice = 6504; + k_EMsgClientUseLocalDeviceAuthorizations = 6505; + k_EMsgClientGetAuthorizedDevices = 6506; + k_EMsgClientGetAuthorizedDevicesResponse = 6507; + k_EMsgAMNotifySessionDeviceAuthorized = 6508; + k_EMsgClientAuthorizeLocalDeviceNotification = 6509; + k_EMsgMMSBase = 6600; + k_EMsgClientMMSCreateLobby = 6601; + k_EMsgClientMMSCreateLobbyResponse = 6602; + k_EMsgClientMMSJoinLobby = 6603; + k_EMsgClientMMSJoinLobbyResponse = 6604; + k_EMsgClientMMSLeaveLobby = 6605; + k_EMsgClientMMSLeaveLobbyResponse = 6606; + k_EMsgClientMMSGetLobbyList = 6607; + k_EMsgClientMMSGetLobbyListResponse = 6608; + k_EMsgClientMMSSetLobbyData = 6609; + k_EMsgClientMMSSetLobbyDataResponse = 6610; + k_EMsgClientMMSGetLobbyData = 6611; + k_EMsgClientMMSLobbyData = 6612; + k_EMsgClientMMSSendLobbyChatMsg = 6613; + k_EMsgClientMMSLobbyChatMsg = 6614; + k_EMsgClientMMSSetLobbyOwner = 6615; + k_EMsgClientMMSSetLobbyOwnerResponse = 6616; + k_EMsgClientMMSSetLobbyGameServer = 6617; + k_EMsgClientMMSLobbyGameServerSet = 6618; + k_EMsgClientMMSUserJoinedLobby = 6619; + k_EMsgClientMMSUserLeftLobby = 6620; + k_EMsgClientMMSInviteToLobby = 6621; + k_EMsgClientMMSFlushFrenemyListCache = 6622; + k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623; + k_EMsgClientMMSSetLobbyLinked = 6624; + k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625; + k_EMsgClientMMSGetLobbyStatus = 6626; + k_EMsgClientMMSGetLobbyStatusResponse = 6627; + k_EMsgMMSGetLobbyList = 6628; + k_EMsgMMSGetLobbyListResponse = 6629; + k_EMsgNonStdMsgBase = 6800; + k_EMsgNonStdMsgMemcached = 6801; + k_EMsgNonStdMsgHTTPServer = 6802; + k_EMsgNonStdMsgHTTPClient = 6803; + k_EMsgNonStdMsgWGResponse = 6804; + k_EMsgNonStdMsgPHPSimulator = 6805; + k_EMsgNonStdMsgChase = 6806; + k_EMsgNonStdMsgDFSTransfer = 6807; + k_EMsgNonStdMsgTests = 6808; + k_EMsgNonStdMsgUMQpipeAAPL = 6809; + k_EMSgNonStdMsgSyslog = 6810; + k_EMsgNonStdMsgLogsink = 6811; + k_EMsgNonStdMsgSteam2Emulator = 6812; + k_EMsgNonStdMsgRTMPServer = 6813; + k_EMsgNonStdMsgWebSocket = 6814; + k_EMsgNonStdMsgRedis = 6815; + k_EMsgUDSBase = 7000; + k_EMsgClientUDSP2PSessionStarted = 7001; + k_EMsgClientUDSP2PSessionEnded = 7002; + k_EMsgUDSRenderUserAuth = 7003; + k_EMsgUDSRenderUserAuthResponse = 7004; + k_EMsgClientInviteToGame = 7005; + k_EMsgUDSHasSession = 7006; + k_EMsgUDSHasSessionResponse = 7007; + k_EMsgMPASBase = 7100; + k_EMsgMPASVacBanReset = 7101; + k_EMsgKGSBase = 7200; + k_EMsgUCMBase = 7300; + k_EMsgClientUCMAddScreenshot = 7301; + k_EMsgClientUCMAddScreenshotResponse = 7302; + k_EMsgUCMResetCommunityContent = 7307; + k_EMsgUCMResetCommunityContentResponse = 7308; + k_EMsgClientUCMDeleteScreenshot = 7309; + k_EMsgClientUCMDeleteScreenshotResponse = 7310; + k_EMsgClientUCMPublishFile = 7311; + k_EMsgClientUCMPublishFileResponse = 7312; + k_EMsgClientUCMDeletePublishedFile = 7315; + k_EMsgClientUCMDeletePublishedFileResponse = 7316; + k_EMsgClientUCMUpdatePublishedFile = 7325; + k_EMsgClientUCMUpdatePublishedFileResponse = 7326; + k_EMsgUCMUpdatePublishedFile = 7327; + k_EMsgUCMUpdatePublishedFileResponse = 7328; + k_EMsgUCMDeletePublishedFile = 7329; + k_EMsgUCMDeletePublishedFileResponse = 7330; + k_EMsgUCMUpdatePublishedFileStat = 7331; + k_EMsgUCMReloadPublishedFile = 7337; + k_EMsgUCMReloadUserFileListCaches = 7338; + k_EMsgUCMPublishedFileReported = 7339; + k_EMsgUCMPublishedFilePreviewAdd = 7341; + k_EMsgUCMPublishedFilePreviewAddResponse = 7342; + k_EMsgUCMPublishedFilePreviewRemove = 7343; + k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344; + k_EMsgUCMPublishedFileSubscribed = 7349; + k_EMsgUCMPublishedFileUnsubscribed = 7350; + k_EMsgUCMPublishFile = 7351; + k_EMsgUCMPublishFileResponse = 7352; + k_EMsgUCMPublishedFileChildAdd = 7353; + k_EMsgUCMPublishedFileChildAddResponse = 7354; + k_EMsgUCMPublishedFileChildRemove = 7355; + k_EMsgUCMPublishedFileChildRemoveResponse = 7356; + k_EMsgUCMPublishedFileParentChanged = 7359; + k_EMsgClientUCMSetUserPublishedFileAction = 7364; + k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365; + k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366; + k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367; + k_EMsgUCMGetUserSubscribedFiles = 7369; + k_EMsgUCMGetUserSubscribedFilesResponse = 7370; + k_EMsgUCMFixStatsPublishedFile = 7371; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378; + k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379; + k_EMsgUCMPublishedFileContentUpdated = 7380; + k_EMsgClientUCMPublishedFileUpdated = 7381; + k_EMsgClientWorkshopItemChangesRequest = 7382; + k_EMsgClientWorkshopItemChangesResponse = 7383; + k_EMsgFSBase = 7500; + k_EMsgClientRichPresenceUpload = 7501; + k_EMsgClientRichPresenceRequest = 7502; + k_EMsgClientRichPresenceInfo = 7503; + k_EMsgFSRichPresenceRequest = 7504; + k_EMsgFSRichPresenceResponse = 7505; + k_EMsgFSComputeFrenematrix = 7506; + k_EMsgFSComputeFrenematrixResponse = 7507; + k_EMsgFSPlayStatusNotification = 7508; + k_EMsgFSAddOrRemoveFollower = 7510; + k_EMsgFSAddOrRemoveFollowerResponse = 7511; + k_EMsgFSUpdateFollowingList = 7512; + k_EMsgFSCommentNotification = 7513; + k_EMsgFSCommentNotificationViewed = 7514; + k_EMsgClientFSGetFollowerCount = 7515; + k_EMsgClientFSGetFollowerCountResponse = 7516; + k_EMsgClientFSGetIsFollowing = 7517; + k_EMsgClientFSGetIsFollowingResponse = 7518; + k_EMsgClientFSEnumerateFollowingList = 7519; + k_EMsgClientFSEnumerateFollowingListResponse = 7520; + k_EMsgFSGetPendingNotificationCount = 7521; + k_EMsgFSGetPendingNotificationCountResponse = 7522; + k_EMsgClientChatOfflineMessageNotification = 7523; + k_EMsgClientChatRequestOfflineMessageCount = 7524; + k_EMsgClientChatGetFriendMessageHistory = 7525; + k_EMsgClientChatGetFriendMessageHistoryResponse = 7526; + k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527; + k_EMsgClientFSGetFriendsSteamLevels = 7528; + k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529; + k_EMsgAMRequestFriendData = 7530; + k_EMsgDRMRange2 = 7600; + k_EMsgCEGVersionSetEnableDisableRequest = 7600; + k_EMsgCEGVersionSetEnableDisableResponse = 7601; + k_EMsgCEGPropStatusDRMSRequest = 7602; + k_EMsgCEGPropStatusDRMSResponse = 7603; + k_EMsgCEGWhackFailureReportRequest = 7604; + k_EMsgCEGWhackFailureReportResponse = 7605; + k_EMsgDRMSFetchVersionSet = 7606; + k_EMsgDRMSFetchVersionSetResponse = 7607; + k_EMsgEconBase = 7700; + k_EMsgEconTrading_InitiateTradeRequest = 7701; + k_EMsgEconTrading_InitiateTradeProposed = 7702; + k_EMsgEconTrading_InitiateTradeResponse = 7703; + k_EMsgEconTrading_InitiateTradeResult = 7704; + k_EMsgEconTrading_StartSession = 7705; + k_EMsgEconTrading_CancelTradeRequest = 7706; + k_EMsgEconFlushInventoryCache = 7707; + k_EMsgEconFlushInventoryCacheResponse = 7708; + k_EMsgEconCDKeyProcessTransaction = 7711; + k_EMsgEconCDKeyProcessTransactionResponse = 7712; + k_EMsgEconGetErrorLogs = 7713; + k_EMsgEconGetErrorLogsResponse = 7714; + k_EMsgRMRange = 7800; + k_EMsgRMTestVerisignOTP = 7800; + k_EMsgRMTestVerisignOTPResponse = 7801; + k_EMsgRMDeleteMemcachedKeys = 7803; + k_EMsgRMRemoteInvoke = 7804; + k_EMsgBadLoginIPList = 7805; + k_EMsgRMMsgTraceAddTrigger = 7806; + k_EMsgRMMsgTraceRemoveTrigger = 7807; + k_EMsgRMMsgTraceEvent = 7808; + k_EMsgUGSBase = 7900; + k_EMsgUGSUpdateGlobalStats = 7900; + k_EMsgClientUGSGetGlobalStats = 7901; + k_EMsgClientUGSGetGlobalStatsResponse = 7902; + k_EMsgStoreBase = 8000; + k_EMsgUMQBase = 8100; + k_EMsgUMQLogonRequest = 8100; + k_EMsgUMQLogonResponse = 8101; + k_EMsgUMQLogoffRequest = 8102; + k_EMsgUMQLogoffResponse = 8103; + k_EMsgUMQSendChatMessage = 8104; + k_EMsgUMQIncomingChatMessage = 8105; + k_EMsgUMQPoll = 8106; + k_EMsgUMQPollResults = 8107; + k_EMsgUMQ2AM_ClientMsgBatch = 8108; + k_EMsgWorkshopBase = 8200; + k_EMsgWebAPIBase = 8300; + k_EMsgWebAPIValidateOAuth2Token = 8300; + k_EMsgWebAPIValidateOAuth2TokenResponse = 8301; + k_EMsgWebAPIRegisterGCInterfaces = 8303; + k_EMsgWebAPIInvalidateOAuthClientCache = 8304; + k_EMsgWebAPIInvalidateOAuthTokenCache = 8305; + k_EMsgWebAPISetSecrets = 8306; + k_EMsgBackpackBase = 8400; + k_EMsgBackpackAddToCurrency = 8401; + k_EMsgBackpackAddToCurrencyResponse = 8402; + k_EMsgCREBase = 8500; + k_EMsgCREItemVoteSummary = 8503; + k_EMsgCREItemVoteSummaryResponse = 8504; + k_EMsgCREUpdateUserPublishedItemVote = 8507; + k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508; + k_EMsgCREGetUserPublishedItemVoteDetails = 8509; + k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510; + k_EMsgSecretsBase = 8600; + k_EMsgSecretsRequestCredentialPair = 8600; + k_EMsgSecretsCredentialPairResponse = 8601; + k_EMsgBoxMonitorBase = 8700; + k_EMsgBoxMonitorReportRequest = 8700; + k_EMsgBoxMonitorReportResponse = 8701; + k_EMsgLogsinkBase = 8800; + k_EMsgLogsinkWriteReport = 8800; + k_EMsgPICSBase = 8900; + k_EMsgClientPICSChangesSinceRequest = 8901; + k_EMsgClientPICSChangesSinceResponse = 8902; + k_EMsgClientPICSProductInfoRequest = 8903; + k_EMsgClientPICSProductInfoResponse = 8904; + k_EMsgClientPICSAccessTokenRequest = 8905; + k_EMsgClientPICSAccessTokenResponse = 8906; + k_EMsgWorkerProcess = 9000; + k_EMsgWorkerProcessPingRequest = 9000; + k_EMsgWorkerProcessPingResponse = 9001; + k_EMsgWorkerProcessShutdown = 9002; + k_EMsgDRMWorkerProcess = 9100; + k_EMsgDRMWorkerProcessDRMAndSign = 9100; + k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101; + k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102; + k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103; + k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104; + k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105; + k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106; + k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107; + k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110; + k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111; + k_EMsgDRMWorkerProcessExamineBlobRequest = 9112; + k_EMsgDRMWorkerProcessExamineBlobResponse = 9113; + k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114; + k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115; + k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116; + k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117; + k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118; + k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119; + k_EMsgDRMWorkerProcessValidateFileRequest = 9120; + k_EMsgDRMWorkerProcessValidateFileResponse = 9121; + k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122; + k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123; + k_EMsgDRMWorkerProcessGetBlobRequest = 9124; + k_EMsgDRMWorkerProcessGetBlobResponse = 9125; + k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126; + k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127; + k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128; + k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129; + k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130; + k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131; + k_EMsgDRMWorkerProcessInstallAllRequest = 9132; + k_EMsgDRMWorkerProcessInstallAllResponse = 9133; + k_EMsgTestWorkerProcess = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200; + k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201; + k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202; + k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203; + k_EMsgQuestServerBase = 9300; + k_EMsgClientGetEmoticonList = 9330; + k_EMsgClientEmoticonList = 9331; + k_EMsgSLCBase = 9400; + k_EMsgSLCUserSessionStatus = 9400; + k_EMsgSLCRequestUserSessionStatus = 9401; + k_EMsgSLCSharedLicensesLockStatus = 9402; + k_EMsgClientSharedLibraryLockStatus = 9405; + k_EMsgClientSharedLibraryStopPlaying = 9406; + k_EMsgSLCOwnerLibraryChanged = 9407; + k_EMsgSLCSharedLibraryChanged = 9408; + k_EMsgRemoteClientBase = 9500; + k_EMsgRemoteClientAuth_OBSOLETE = 9500; + k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501; + k_EMsgRemoteClientAppStatus = 9502; + k_EMsgRemoteClientStartStream = 9503; + k_EMsgRemoteClientStartStreamResponse = 9504; + k_EMsgRemoteClientPing = 9505; + k_EMsgRemoteClientPingResponse = 9506; + k_EMsgClientUnlockStreaming = 9507; + k_EMsgClientUnlockStreamingResponse = 9508; + k_EMsgRemoteClientAcceptEULA = 9509; + k_EMsgRemoteClientGetControllerConfig = 9510; + k_EMsgRemoteClientGetControllerConfigResponse = 9511; + k_EMsgRemoteClientStreamingEnabled = 9512; + k_EMsgClientUnlockHEVC = 9513; + k_EMsgClientUnlockHEVCResponse = 9514; + k_EMsgRemoteClientStatusRequest = 9515; + k_EMsgRemoteClientStatusResponse = 9516; + k_EMsgClientConcurrentSessionsBase = 9600; + k_EMsgClientPlayingSessionState = 9600; + k_EMsgClientKickPlayingSession = 9601; + k_EMsgClientBroadcastBase = 9700; + k_EMsgClientBroadcastInit = 9700; + k_EMsgClientBroadcastFrames = 9701; + k_EMsgClientBroadcastDisconnect = 9702; + k_EMsgClientBroadcastScreenshot = 9703; + k_EMsgClientBroadcastUploadConfig = 9704; + k_EMsgBaseClient3 = 9800; + k_EMsgClientVoiceCallPreAuthorize = 9800; + k_EMsgClientVoiceCallPreAuthorizeResponse = 9801; + k_EMsgClientServerTimestampRequest = 9802; + k_EMsgClientServerTimestampResponse = 9803; + k_EMsgServiceMethodCallFromClientNonAuthed = 9804; + k_EMsgClientHello = 9805; + k_EMsgClientLANP2PBase = 9900; + k_EMsgClientLANP2PRequestChunk = 9900; + k_EMsgClientLANP2PRequestChunkResponse = 9901; + k_EMsgClientLANP2PMax = 9999; + k_EMsgBaseWatchdogServer = 10000; + k_EMsgNotifyWatchdog = 10000; + k_EMsgClientSiteLicenseBase = 10100; + k_EMsgClientSiteLicenseSiteInfoNotification = 10100; + k_EMsgClientSiteLicenseCheckout = 10101; + k_EMsgClientSiteLicenseCheckoutResponse = 10102; + k_EMsgClientSiteLicenseGetAvailableSeats = 10103; + k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104; + k_EMsgClientSiteLicenseGetContentCacheInfo = 10105; + k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106; + k_EMsgBaseChatServer = 12000; + k_EMsgChatServerGetPendingNotificationCount = 12000; + k_EMsgChatServerGetPendingNotificationCountResponse = 12001; + k_EMsgBaseSecretServer = 12100; + k_EMsgServerSecretChanged = 12100; +} + +enum EClientPersonaStateFlag { + k_EClientPersonaStateFlagStatus = 1; + k_EClientPersonaStateFlagPlayerName = 2; + k_EClientPersonaStateFlagQueryPort = 4; + k_EClientPersonaStateFlagSourceID = 8; + k_EClientPersonaStateFlagPresence = 16; + k_EClientPersonaStateFlagLastSeen = 64; + k_EClientPersonaStateFlagUserClanRank = 128; + k_EClientPersonaStateGameExtraInfo = 256; + k_EClientPersonaStateGameDataBlob = 512; + k_EClientPersonaStateFlagClanData = 1024; + k_EClientPersonaStateFlagFacebook = 2048; + k_EClientPersonaStateFlagRichPresence = 4096; + k_EClientPersonaStateFlagBroadcast = 8192; + k_EClientPersonaStateFlagWatching = 16384; +} + +enum EMsgClanAccountFlags { + k_EMsgClanAccountFlagPublic = 1; + k_EMsgClanAccountFlagLarge = 2; + k_EMsgClanAccountFlagLocked = 4; + k_EMsgClanAccountFlagDisabled = 8; + k_EMsgClanAccountFlagOGG = 16; +} + +enum ESteamReviewScore { + k_ESteamReviewScore_OverwhelminglyPositive = 9; + k_ESteamReviewScore_VeryPositive = 8; + k_ESteamReviewScore_Positive = 7; + k_ESteamReviewScore_MostlyPositive = 6; + k_ESteamReviewScore_Mixed = 5; + k_ESteamReviewScore_MostlyNegative = 4; + k_ESteamReviewScore_Negative = 3; + k_ESteamReviewScore_VeryNegative = 2; + k_ESteamReviewScore_OverwhelminglyNegative = 1; + k_ESteamReviewScore_None = 0; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/fatdemo.proto b/pkg/demoinfocs/msgs2/proto/s2/fatdemo.proto new file mode 100644 index 00000000..cd625be0 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/fatdemo.proto @@ -0,0 +1,127 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum EHitGroup { + EHG_Generic = 0; + EHG_Head = 1; + EHG_Chest = 2; + EHG_Stomach = 3; + EHG_LeftArm = 4; + EHG_RightArm = 5; + EHG_LeftLeg = 6; + EHG_RightLeg = 7; + EHG_Gear = 8; + EHG_Miss = 9; +} + +enum ETeam { + ET_Unknown = 0; + ET_Spectator = 1; + ET_Terrorist = 2; + ET_CT = 3; +} + +enum EWeaponType { + EWT_Knife = 0; + EWT_Pistol = 1; + EWT_SubMachineGun = 2; + EWT_Rifle = 3; + EWT_Shotgun = 4; + EWT_SniperRifle = 5; + EWT_MachineGun = 6; + EWT_C4 = 7; + EWT_Grenade = 8; + EWT_Equipment = 9; + EWT_StackableItem = 10; + EWT_Unknown = 11; +} + +message MLDict { + optional string key = 1; + optional string val_string = 2; + optional int32 val_int = 3; + optional float val_float = 4; +} + +message MLEvent { + optional string event_name = 1; + repeated MLDict data = 2; +} + +message MLMatchState { + optional string game_mode = 1; + optional string phase = 2; + optional int32 round = 3; + optional int32 score_ct = 4; + optional int32 score_t = 5; +} + +message MLRoundState { + optional string phase = 1; + optional ETeam win_team = 2 [default = ET_Unknown]; + optional string bomb_state = 3; +} + +message MLWeaponState { + optional int32 index = 1; + optional string name = 2; + optional EWeaponType type = 3 [default = EWT_Knife]; + optional int32 ammo_clip = 4; + optional int32 ammo_clip_max = 5; + optional int32 ammo_reserve = 6; + optional string state = 7; + optional float recoil_index = 8; +} + +message MLPlayerState { + optional int32 account_id = 1; + optional int32 player_slot = 2 [default = -1]; + optional int32 entindex = 3; + optional string name = 4; + optional string clan = 5; + optional ETeam team = 6 [default = ET_Unknown]; + optional CMsgVector abspos = 7; + optional CMsgQAngle eyeangle = 8; + optional CMsgVector eyeangle_fwd = 9; + optional int32 health = 10; + optional int32 armor = 11; + optional float flashed = 12; + optional float smoked = 13; + optional int32 money = 14; + optional int32 round_kills = 15; + optional int32 round_killhs = 16; + optional float burning = 17; + optional bool helmet = 18; + optional bool defuse_kit = 19; + repeated MLWeaponState weapons = 20; +} + +message MLGameState { + optional MLMatchState match = 1; + optional MLRoundState round = 2; + repeated MLPlayerState players = 3; +} + +message MLDemoHeader { + optional string map_name = 1; + optional int32 tick_rate = 2; + optional uint32 version = 3; + optional uint32 steam_universe = 4; +} + +message MLTick { + optional int32 tick_count = 1; + optional MLGameState state = 2; + repeated MLEvent events = 3; +} + +message VacNetShot { + optional fixed64 steamid_player = 1; + optional int32 round_number = 2; + optional int32 hit_type = 3; + optional int32 weapon_type = 4; + optional float distance_to_hurt_target = 5; + repeated float delta_yaw_window = 6; + repeated float delta_pitch_window = 7; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/gameevents.proto b/pkg/demoinfocs/msgs2/proto/s2/gameevents.proto new file mode 100644 index 00000000..f73a3e28 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/gameevents.proto @@ -0,0 +1,122 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum EBaseGameEvents { + GE_VDebugGameSessionIDEvent = 200; + GE_PlaceDecalEvent = 201; + GE_ClearWorldDecalsEvent = 202; + GE_ClearEntityDecalsEvent = 203; + GE_ClearDecalsForSkeletonInstanceEvent = 204; + GE_Source1LegacyGameEventList = 205; + GE_Source1LegacyListenEvents = 206; + GE_Source1LegacyGameEvent = 207; + GE_SosStartSoundEvent = 208; + GE_SosStopSoundEvent = 209; + GE_SosSetSoundEventParams = 210; + GE_SosSetLibraryStackFields = 211; + GE_SosStopSoundEventHash = 212; +} + +message CMsgVDebugGameSessionIDEvent { + optional int32 clientid = 1; + optional string gamesessionid = 2; +} + +message CMsgPlaceDecalEvent { + optional CMsgVector position = 1; + optional CMsgVector normal = 2; + optional CMsgVector saxis = 3; + optional uint32 decalmaterialindex = 4; + optional uint32 flags = 5; + optional fixed32 color = 6; + optional float width = 7; + optional float height = 8; + optional float depth = 9; + optional uint32 entityhandleindex = 10; + optional fixed32 skeletoninstancehash = 11; + optional int32 boneindex = 12; + optional bool translucenthit = 13; + optional bool is_adjacent = 14; +} + +message CMsgClearWorldDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearEntityDecalsEvent { + optional uint32 flagstoclear = 1; +} + +message CMsgClearDecalsForSkeletonInstanceEvent { + optional uint32 flagstoclear = 1; + optional uint32 entityhandleindex = 2; + optional uint32 skeletoninstancehash = 3; +} + +message CMsgSource1LegacyGameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated CMsgSource1LegacyGameEventList.key_t keys = 3; + } + + repeated CMsgSource1LegacyGameEventList.descriptor_t descriptors = 1; +} + +message CMsgSource1LegacyListenEvents { + optional int32 playerslot = 1; + repeated uint32 eventarraybits = 2; +} + +message CMsgSource1LegacyGameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated CMsgSource1LegacyGameEvent.key_t keys = 3; + optional int32 server_tick = 4; + optional int32 passthrough = 5; +} + +message CMsgSosStartSoundEvent { + optional int32 soundevent_guid = 1; + optional fixed32 soundevent_hash = 2; + optional int32 source_entity_index = 3 [default = -1]; + optional int32 seed = 4; + optional bytes packed_params = 5; + optional float start_time = 6; +} + +message CMsgSosStopSoundEvent { + optional int32 soundevent_guid = 1; +} + +message CMsgSosStopSoundEventHash { + optional fixed32 soundevent_hash = 1; + optional int32 source_entity_index = 2 [default = -1]; +} + +message CMsgSosSetSoundEventParams { + optional int32 soundevent_guid = 1; + optional bytes packed_params = 5; +} + +message CMsgSosSetLibraryStackFields { + optional fixed32 stack_hash = 1; + optional bytes packed_fields = 5; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/gcsdk_gcmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/gcsdk_gcmessages.proto new file mode 100644 index 00000000..1b6a039a --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/gcsdk_gcmessages.proto @@ -0,0 +1,325 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages.proto"; + +enum GCClientLauncherType { + GCClientLauncherType_DEFAULT = 0; + GCClientLauncherType_PERFECTWORLD = 1; + GCClientLauncherType_STEAMCHINA = 2; +} + +enum GCConnectionStatus { + GCConnectionStatus_HAVE_SESSION = 0; + GCConnectionStatus_GC_GOING_DOWN = 1; + GCConnectionStatus_NO_SESSION = 2; + GCConnectionStatus_NO_SESSION_IN_LOGON_QUEUE = 3; + GCConnectionStatus_NO_STEAM = 4; +} + +message CMsgSOIDOwner { + optional uint32 type = 1; + optional uint64 id = 2; +} + +message CMsgSOSingleObject { + optional int32 type_id = 2; + optional bytes object_data = 3; + optional fixed64 version = 4; + optional CMsgSOIDOwner owner_soid = 5; +} + +message CMsgSOMultipleObjects { + message SingleObject { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional int32 type_id = 1; + optional bytes object_data = 2; + } + + repeated CMsgSOMultipleObjects.SingleObject objects_modified = 2; + optional fixed64 version = 3; + optional CMsgSOIDOwner owner_soid = 6; +} + +message CMsgSOCacheSubscribed { + message SubscribedType { + optional int32 type_id = 1; + repeated bytes object_data = 2; + } + + repeated CMsgSOCacheSubscribed.SubscribedType objects = 2; + optional fixed64 version = 3; + optional CMsgSOIDOwner owner_soid = 4; +} + +message CMsgSOCacheUnsubscribed { + optional CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheSubscriptionCheck { + optional fixed64 version = 2; + optional CMsgSOIDOwner owner_soid = 3; +} + +message CMsgSOCacheSubscriptionRefresh { + optional CMsgSOIDOwner owner_soid = 2; +} + +message CMsgSOCacheVersion { + optional fixed64 version = 1; +} + +message CMsgAccountDetails { + optional bool valid = 1; + optional string account_name = 2; + optional bool public_profile = 4; + optional bool public_inventory = 5; + optional bool vac_banned = 6; + optional bool cyber_cafe = 7; + optional bool school_account = 8; + optional bool free_trial_account = 9; + optional bool subscribed = 10; + optional bool low_violence = 11; + optional bool limited = 12; + optional bool trusted = 13; + optional uint32 package = 14; + optional fixed32 time_cached = 15; + optional bool account_locked = 16; + optional bool community_banned = 17; + optional bool trade_banned = 18; + optional bool eligible_for_community_market = 19; +} + +message CMsgGCMultiplexMessage { + optional uint32 msgtype = 1; + optional bytes payload = 2; + repeated fixed64 steamids = 3; + optional bool replytogc = 4; +} + +message CMsgGCMultiplexMessage_Response { + optional uint32 msgtype = 1; +} + +message CGCToGCMsgMasterAck { + optional uint32 dir_index = 1; + optional uint32 gc_type = 2; +} + +message CGCToGCMsgMasterAck_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CGCToGCMsgMasterStartupComplete { +} + +message CGCToGCMsgRouted { + optional uint32 msg_type = 1; + optional fixed64 sender_id = 2; + optional bytes net_message = 3; + optional uint32 ip = 4; +} + +message CGCToGCMsgRoutedReply { + optional uint32 msg_type = 1; + optional bytes net_message = 2; +} + +message CMsgGCUpdateSessionIP { + optional fixed64 steamid = 1; + optional fixed32 ip = 2; +} + +message CMsgGCRequestSessionIP { + optional fixed64 steamid = 1; +} + +message CMsgGCRequestSessionIPResponse { + optional fixed32 ip = 1; +} + +message CMsgSOCacheHaveVersion { + optional CMsgSOIDOwner soid = 1; + optional fixed64 version = 2; +} + +message CMsgClientHello { + optional uint32 version = 1; + repeated CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 client_session_need = 3; + optional uint32 client_launcher = 4; + optional uint32 partner_srcid = 5; + optional uint32 partner_accountid = 6; + optional uint32 partner_accountflags = 7; + optional uint32 partner_accountbalance = 8; + optional uint32 steam_launcher = 9; +} + +message CMsgServerHello { + optional uint32 version = 1; + repeated CMsgSOCacheHaveVersion socache_have_versions = 2; + optional uint32 legacy_client_session_need = 3; + optional uint32 client_launcher = 4; + optional bytes legacy_steamdatagram_routing = 6; + optional uint32 required_internal_addr = 7; + optional bytes steamdatagram_login = 8; +} + +message CMsgClientWelcome { + message Location { + optional float latitude = 1; + optional float longitude = 2; + optional string country = 3; + } + + optional uint32 version = 1; + optional bytes game_data = 2; + repeated CMsgSOCacheSubscribed outofdate_subscribed_caches = 3; + repeated CMsgSOCacheSubscriptionCheck uptodate_subscribed_caches = 4; + optional CMsgClientWelcome.Location location = 5; + optional bytes game_data2 = 6; + optional uint32 rtime32_gc_welcome_timestamp = 7; + optional uint32 currency = 8; + optional uint32 balance = 9; + optional string balance_url = 10; + optional string txn_country_code = 11; +} + +message CMsgConnectionStatus { + optional GCConnectionStatus status = 1 [default = GCConnectionStatus_HAVE_SESSION]; + optional uint32 client_session_need = 2; + optional int32 queue_position = 3; + optional int32 queue_size = 4; + optional int32 wait_seconds = 5; + optional int32 estimated_wait_seconds_remaining = 6; +} + +message CWorkshop_PopulateItemDescriptions_Request { + message SingleItemDescription { + optional uint32 gameitemid = 1; + optional string item_description = 2; + optional bool one_per_account = 3; + } + + message ItemDescriptionsLanguageBlock { + optional string language = 1; + repeated CWorkshop_PopulateItemDescriptions_Request.SingleItemDescription descriptions = 2; + } + + optional uint32 appid = 1; + repeated CWorkshop_PopulateItemDescriptions_Request.ItemDescriptionsLanguageBlock languages = 2; +} + +message CWorkshop_GetContributors_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; +} + +message CWorkshop_GetContributors_Response { + repeated fixed64 contributors = 1; +} + +message CWorkshop_SetItemPaymentRules_Request { + message WorkshopItemPaymentRule { + optional uint64 workshop_file_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + optional uint32 rule_type = 4 [default = 1]; + } + + message WorkshopDirectPaymentRule { + optional uint64 workshop_file_id = 1; + optional string rule_description = 2; + } + + message PartnerItemPaymentRule { + optional uint32 account_id = 1; + optional float revenue_percentage = 2; + optional string rule_description = 3; + } + + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + repeated CWorkshop_SetItemPaymentRules_Request.WorkshopItemPaymentRule associated_workshop_files = 3; + repeated CWorkshop_SetItemPaymentRules_Request.PartnerItemPaymentRule partner_accounts = 4; + optional bool validate_only = 5; + optional bool make_workshop_files_subscribable = 6; + optional CWorkshop_SetItemPaymentRules_Request.WorkshopDirectPaymentRule associated_workshop_file_for_direct_payments = 7; +} + +message CWorkshop_SetItemPaymentRules_Response { +} + +message CGameServers_AggregationQuery_Request { + optional string filter = 1; + repeated string group_fields = 3; +} + +message CGameServers_AggregationQuery_Response { + message Group { + repeated string group_values = 1; + optional uint32 servers_empty = 2; + optional uint32 servers_full = 3; + optional uint32 servers_total = 4; + optional uint32 players_humans = 5; + optional uint32 players_bots = 6; + optional uint32 player_capacity = 7; + } + + repeated CGameServers_AggregationQuery_Response.Group groups = 1; +} + +message CWorkshop_AddSpecialPayment_Request { + optional uint32 appid = 1; + optional uint32 gameitemid = 2; + optional string date = 3; + optional uint64 payment_us_usd = 4; + optional uint64 payment_row_usd = 5; +} + +message CWorkshop_AddSpecialPayment_Response { +} + +message CProductInfo_SetRichPresenceLocalization_Request { + message Token { + optional string token = 1; + optional string value = 2; + } + + message LanguageSection { + optional string language = 1; + repeated CProductInfo_SetRichPresenceLocalization_Request.Token tokens = 2; + } + + optional uint32 appid = 1; + repeated CProductInfo_SetRichPresenceLocalization_Request.LanguageSection languages = 2; + optional uint64 steamid = 3; +} + +message CProductInfo_SetRichPresenceLocalization_Response { +} + +message CMsgSerializedSOCache { + message TypeCache { + optional uint32 type = 1; + repeated bytes objects = 2; + optional uint32 service_id = 3; + } + + message Cache { + message Version { + optional uint32 service = 1; + optional uint64 version = 2; + } + + optional uint32 type = 1; + optional uint64 id = 2; + repeated CMsgSerializedSOCache.Cache.Version versions = 3; + repeated CMsgSerializedSOCache.TypeCache type_caches = 4; + } + + optional uint32 file_version = 1; + repeated CMsgSerializedSOCache.Cache caches = 2; + optional uint32 gc_socache_file_version = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/gcsystemmsgs.proto b/pkg/demoinfocs/msgs2/proto/s2/gcsystemmsgs.proto new file mode 100644 index 00000000..8cab7bba --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/gcsystemmsgs.proto @@ -0,0 +1,244 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +enum EGCSystemMsg { + k_EGCMsgInvalid = 0; + k_EGCMsgMulti = 1; + k_EGCMsgGenericReply = 10; + k_EGCMsgSystemBase = 50; + k_EGCMsgAchievementAwarded = 51; + k_EGCMsgConCommand = 52; + k_EGCMsgStartPlaying = 53; + k_EGCMsgStopPlaying = 54; + k_EGCMsgStartGameserver = 55; + k_EGCMsgStopGameserver = 56; + k_EGCMsgWGRequest = 57; + k_EGCMsgWGResponse = 58; + k_EGCMsgGetUserGameStatsSchema = 59; + k_EGCMsgGetUserGameStatsSchemaResponse = 60; + k_EGCMsgGetUserStatsDEPRECATED = 61; + k_EGCMsgGetUserStatsResponse = 62; + k_EGCMsgAppInfoUpdated = 63; + k_EGCMsgValidateSession = 64; + k_EGCMsgValidateSessionResponse = 65; + k_EGCMsgLookupAccountFromInput = 66; + k_EGCMsgSendHTTPRequest = 67; + k_EGCMsgSendHTTPRequestResponse = 68; + k_EGCMsgPreTestSetup = 69; + k_EGCMsgRecordSupportAction = 70; + k_EGCMsgGetAccountDetails_DEPRECATED = 71; + k_EGCMsgReceiveInterAppMessage = 73; + k_EGCMsgFindAccounts = 74; + k_EGCMsgPostAlert = 75; + k_EGCMsgGetLicenses = 76; + k_EGCMsgGetUserStats = 77; + k_EGCMsgGetCommands = 78; + k_EGCMsgGetCommandsResponse = 79; + k_EGCMsgAddFreeLicense = 80; + k_EGCMsgAddFreeLicenseResponse = 81; + k_EGCMsgGetIPLocation = 82; + k_EGCMsgGetIPLocationResponse = 83; + k_EGCMsgSystemStatsSchema = 84; + k_EGCMsgGetSystemStats = 85; + k_EGCMsgGetSystemStatsResponse = 86; + k_EGCMsgSendEmail = 87; + k_EGCMsgSendEmailResponse = 88; + k_EGCMsgGetEmailTemplate = 89; + k_EGCMsgGetEmailTemplateResponse = 90; + k_EGCMsgGrantGuestPass = 91; + k_EGCMsgGrantGuestPassResponse = 92; + k_EGCMsgGetAccountDetails = 93; + k_EGCMsgGetAccountDetailsResponse = 94; + k_EGCMsgGetPersonaNames = 95; + k_EGCMsgGetPersonaNamesResponse = 96; + k_EGCMsgMultiplexMsg = 97; + k_EGCMsgMultiplexMsgResponse = 98; + k_EGCMsgWebAPIRegisterInterfaces = 101; + k_EGCMsgWebAPIJobRequest = 102; + k_EGCMsgWebAPIJobRequestHttpResponse = 104; + k_EGCMsgWebAPIJobRequestForwardResponse = 105; + k_EGCMsgMemCachedGet = 200; + k_EGCMsgMemCachedGetResponse = 201; + k_EGCMsgMemCachedSet = 202; + k_EGCMsgMemCachedDelete = 203; + k_EGCMsgMemCachedStats = 204; + k_EGCMsgMemCachedStatsResponse = 205; + k_EGCMsgMasterSetDirectory = 220; + k_EGCMsgMasterSetDirectoryResponse = 221; + k_EGCMsgMasterSetWebAPIRouting = 222; + k_EGCMsgMasterSetWebAPIRoutingResponse = 223; + k_EGCMsgMasterSetClientMsgRouting = 224; + k_EGCMsgMasterSetClientMsgRoutingResponse = 225; + k_EGCMsgSetOptions = 226; + k_EGCMsgSetOptionsResponse = 227; + k_EGCMsgSystemBase2 = 500; + k_EGCMsgGetPurchaseTrustStatus = 501; + k_EGCMsgGetPurchaseTrustStatusResponse = 502; + k_EGCMsgUpdateSession = 503; + k_EGCMsgGCAccountVacStatusChange = 504; + k_EGCMsgCheckFriendship = 505; + k_EGCMsgCheckFriendshipResponse = 506; + k_EGCMsgGetPartnerAccountLink = 507; + k_EGCMsgGetPartnerAccountLinkResponse = 508; + k_EGCMsgDPPartnerMicroTxns = 512; + k_EGCMsgDPPartnerMicroTxnsResponse = 513; + k_EGCMsgVacVerificationChange = 518; + k_EGCMsgAccountPhoneNumberChange = 519; + k_EGCMsgInviteUserToLobby = 523; + k_EGCMsgGetGamePersonalDataCategoriesRequest = 524; + k_EGCMsgGetGamePersonalDataCategoriesResponse = 525; + k_EGCMsgGetGamePersonalDataEntriesRequest = 526; + k_EGCMsgGetGamePersonalDataEntriesResponse = 527; + k_EGCMsgTerminateGamePersonalDataEntriesRequest = 528; + k_EGCMsgTerminateGamePersonalDataEntriesResponse = 529; + k_EGCMsgRecurringSubscriptionStatusChange = 530; + k_EGCMsgDirectServiceMethod = 531; + k_EGCMsgDirectServiceMethodResponse = 532; +} + +enum ESOMsg { + k_ESOMsg_Create = 21; + k_ESOMsg_Update = 22; + k_ESOMsg_Destroy = 23; + k_ESOMsg_CacheSubscribed = 24; + k_ESOMsg_CacheUnsubscribed = 25; + k_ESOMsg_UpdateMultiple = 26; + k_ESOMsg_CacheSubscriptionCheck = 27; + k_ESOMsg_CacheSubscriptionRefresh = 28; +} + +enum EGCBaseClientMsg { + k_EMsgGCClientWelcome = 4004; + k_EMsgGCServerWelcome = 4005; + k_EMsgGCClientHello = 4006; + k_EMsgGCServerHello = 4007; + k_EMsgGCClientConnectionStatus = 4009; + k_EMsgGCServerConnectionStatus = 4010; + k_EMsgGCClientHelloPartner = 4011; + k_EMsgGCClientHelloPW = 4012; + k_EMsgGCClientHelloR2 = 4013; + k_EMsgGCClientHelloR3 = 4014; + k_EMsgGCClientHelloR4 = 4015; +} + +enum EGCToGCMsg { + k_EGCToGCMsgMasterAck = 150; + k_EGCToGCMsgMasterAckResponse = 151; + k_EGCToGCMsgRouted = 152; + k_EGCToGCMsgRoutedReply = 153; + k_EMsgUpdateSessionIP = 154; + k_EMsgRequestSessionIP = 155; + k_EMsgRequestSessionIPResponse = 156; + k_EGCToGCMsgMasterStartupComplete = 157; +} + +enum ECommunityItemClass { + k_ECommunityItemClass_Invalid = 0; + k_ECommunityItemClass_Badge = 1; + k_ECommunityItemClass_GameCard = 2; + k_ECommunityItemClass_ProfileBackground = 3; + k_ECommunityItemClass_Emoticon = 4; + k_ECommunityItemClass_BoosterPack = 5; + k_ECommunityItemClass_Consumable = 6; + k_ECommunityItemClass_GameGoo = 7; + k_ECommunityItemClass_ProfileModifier = 8; + k_ECommunityItemClass_Scene = 9; + k_ECommunityItemClass_SalienItem = 10; +} + +enum ECommunityItemAttribute { + k_ECommunityItemAttribute_Invalid = 0; + k_ECommunityItemAttribute_CardBorder = 1; + k_ECommunityItemAttribute_Level = 2; + k_ECommunityItemAttribute_IssueNumber = 3; + k_ECommunityItemAttribute_TradableTime = 4; + k_ECommunityItemAttribute_StorePackageID = 5; + k_ECommunityItemAttribute_CommunityItemAppID = 6; + k_ECommunityItemAttribute_CommunityItemType = 7; + k_ECommunityItemAttribute_ProfileModiferEnabled = 8; + k_ECommunityItemAttribute_ExpiryTime = 9; +} + +message CMsgGCHVacVerificationChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional bool is_verified = 3; +} + +message CMsgGCHAccountPhoneNumberChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional uint64 phone_id = 3; + optional bool is_verified = 4; + optional bool is_identifying = 5; +} + +message CMsgGCHInviteUserToLobby { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional fixed64 steamid_invited = 3; + optional fixed64 steamid_lobby = 4; +} + +message CMsgGCHRecurringSubscriptionStatusChange { + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional fixed64 agreementid = 3; + optional bool active = 4; +} + +message CQuest_PublisherAddCommunityItemsToPlayer_Request { + message Attribute { + optional uint32 attribute = 1; + optional uint64 value = 2; + } + + optional uint64 steamid = 1; + optional uint32 appid = 2; + optional uint32 match_item_type = 3; + optional uint32 match_item_class = 4; + optional string prefix_item_name = 5; + repeated CQuest_PublisherAddCommunityItemsToPlayer_Request.Attribute attributes = 6; + optional string note = 7; +} + +message CQuest_PublisherAddCommunityItemsToPlayer_Response { + optional uint32 items_matched = 1; + optional uint32 items_granted = 2; +} + +message CCommunity_GamePersonalDataCategoryInfo { + optional string type = 1; + optional string localization_token = 2; + optional string template_file = 3; +} + +message CCommunity_GetGamePersonalDataCategories_Request { + optional uint32 appid = 1; +} + +message CCommunity_GetGamePersonalDataCategories_Response { + repeated CCommunity_GamePersonalDataCategoryInfo categories = 1; + optional string app_assets_basename = 2; +} + +message CCommunity_GetGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; + optional string type = 3; + optional string continue_token = 4; +} + +message CCommunity_GetGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; + repeated string entries = 2; + optional string continue_token = 3; +} + +message CCommunity_TerminateGamePersonalDataEntries_Request { + optional uint32 appid = 1; + optional uint64 steamid = 2; +} + +message CCommunity_TerminateGamePersonalDataEntries_Response { + optional uint32 gceresult = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/netmessages.proto b/pkg/demoinfocs/msgs2/proto/s2/netmessages.proto new file mode 100644 index 00000000..5550efac --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/netmessages.proto @@ -0,0 +1,605 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum CLC_Messages { + clc_ClientInfo = 20; + clc_Move = 21; + clc_VoiceData = 22; + clc_BaselineAck = 23; + clc_ListenEvents = 24; + clc_RespondCvarValue = 25; + clc_FileCRCCheck = 26; + clc_LoadingProgress = 27; + clc_SplitPlayerConnect = 28; + clc_ClientMessage = 29; + clc_SplitPlayerDisconnect = 30; + clc_ServerStatus = 31; + clc_ServerPing = 32; + clc_RequestPause = 33; + clc_CmdKeyValues = 34; + clc_RconServerDetails = 35; + clc_HltvReplay = 36; +} + +enum SVC_Messages { + svc_ServerInfo = 40; + svc_FlattenedSerializer = 41; + svc_ClassInfo = 42; + svc_SetPause = 43; + svc_CreateStringTable = 44; + svc_UpdateStringTable = 45; + svc_VoiceInit = 46; + svc_VoiceData = 47; + svc_Print = 48; + svc_Sounds = 49; + svc_SetView = 50; + svc_ClearAllStringTables = 51; + svc_CmdKeyValues = 52; + svc_BSPDecal = 53; + svc_SplitScreen = 54; + svc_PacketEntities = 55; + svc_Prefetch = 56; + svc_Menu = 57; + svc_GetCvarValue = 58; + svc_StopSound = 59; + svc_PeerList = 60; + svc_PacketReliable = 61; + svc_HLTVStatus = 62; + svc_ServerSteamID = 63; + svc_FullFrameSplit = 70; + svc_RconServerDetails = 71; + svc_UserMessage = 72; + svc_HltvReplay = 73; + svc_Broadcast_Command = 74; + svc_HltvFixupOperatorStatus = 75; +} + +enum VoiceDataFormat_t { + VOICEDATA_FORMAT_STEAM = 0; + VOICEDATA_FORMAT_ENGINE = 1; +} + +enum RequestPause_t { + RP_PAUSE = 0; + RP_UNPAUSE = 1; + RP_TOGGLEPAUSE = 2; +} + +enum PrefetchType { + PFT_SOUND = 0; +} + +enum ESplitScreenMessageType { + MSG_SPLITSCREEN_ADDUSER = 0; + MSG_SPLITSCREEN_REMOVEUSER = 1; +} + +enum EQueryCvarValueStatus { + eQueryCvarValueStatus_ValueIntact = 0; + eQueryCvarValueStatus_CvarNotFound = 1; + eQueryCvarValueStatus_NotACvar = 2; + eQueryCvarValueStatus_CvarProtected = 3; +} + +enum DIALOG_TYPE { + DIALOG_MSG = 0; + DIALOG_MENU = 1; + DIALOG_TEXT = 2; + DIALOG_ENTRY = 3; + DIALOG_ASKCONNECT = 4; +} + +enum SVC_Messages_LowFrequency { + svc_dummy = 600; +} + +enum Bidirectional_Messages { + bi_RebroadcastGameEvent = 16; + bi_RebroadcastSource = 17; + bi_GameEvent = 18; +} + +enum Bidirectional_Messages_LowFrequency { + bi_RelayInfo = 700; + bi_RelayPacket = 701; +} + +enum ReplayEventType_t { + REPLAY_EVENT_CANCEL = 0; + REPLAY_EVENT_DEATH = 1; + REPLAY_EVENT_GENERIC = 2; + REPLAY_EVENT_STUCK_NEED_FULL_UPDATE = 3; + REPLAY_EVENT_VICTORY = 4; +} + +message CCLCMsg_ClientInfo { + optional fixed32 send_table_crc = 1; + optional uint32 server_count = 2; + optional bool is_hltv = 3; + optional uint32 friends_id = 5; + optional string friends_name = 6; +} + +message CCLCMsg_Move { + optional bytes data = 3; + optional uint32 command_number = 4; + optional uint32 num_commands = 5; +} + +message CMsgVoiceAudio { + optional VoiceDataFormat_t format = 1 [default = VOICEDATA_FORMAT_STEAM]; + optional bytes voice_data = 2; + optional int32 sequence_bytes = 3; + optional uint32 section_number = 4; + optional uint32 sample_rate = 5; + optional uint32 uncompressed_sample_offset = 6; +} + +message CCLCMsg_VoiceData { + optional CMsgVoiceAudio audio = 1; + optional fixed64 xuid = 2; + optional uint32 tick = 3; +} + +message CCLCMsg_BaselineAck { + optional int32 baseline_tick = 1; + optional int32 baseline_nr = 2; +} + +message CCLCMsg_ListenEvents { + repeated fixed32 event_mask = 1; +} + +message CCLCMsg_RespondCvarValue { + optional int32 cookie = 1; + optional int32 status_code = 2; + optional string name = 3; + optional string value = 4; +} + +message CCLCMsg_FileCRCCheck { + optional int32 code_path = 1; + optional string path = 2; + optional int32 code_filename = 3; + optional string filename = 4; + optional fixed32 crc = 5; +} + +message CCLCMsg_LoadingProgress { + optional int32 progress = 1; +} + +message CCLCMsg_SplitPlayerConnect { + optional string playername = 1; +} + +message CCLCMsg_ClientMessage { + optional int32 msg_type = 1; + optional bytes data = 2; +} + +message CCLCMsg_SplitPlayerDisconnect { + optional int32 slot = 1; +} + +message CCLCMsg_ServerStatus { + optional bool simplified = 1; +} + +message CCLCMsg_ServerPing { +} + +message CCLCMsg_RequestPause { + optional RequestPause_t pause_type = 1 [default = RP_PAUSE]; + optional int32 pause_group = 2; +} + +message CCLCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CCLCMsg_RconServerDetails { + optional bytes token = 1; +} + +message CSVCMsg_ServerInfo { + optional int32 protocol = 1; + optional int32 server_count = 2; + optional bool is_dedicated = 3; + optional bool is_hltv = 4; + optional int32 c_os = 6; + optional int32 max_clients = 10; + optional int32 max_classes = 11; + optional int32 player_slot = 12 [default = -1]; + optional float tick_interval = 13; + optional string game_dir = 14; + optional string map_name = 15; + optional string sky_name = 16; + optional string host_name = 17; + optional string addon_name = 18; + optional CSVCMsg_GameSessionConfiguration game_session_config = 19; + optional bytes game_session_manifest = 20; +} + +message CSVCMsg_ClassInfo { + message class_t { + optional int32 class_id = 1; + optional string class_name = 3; + } + + optional bool create_on_client = 1; + repeated CSVCMsg_ClassInfo.class_t classes = 2; +} + +message CSVCMsg_SetPause { + optional bool paused = 1; +} + +message CSVCMsg_VoiceInit { + optional int32 quality = 1; + optional string codec = 2; + optional int32 version = 3 [default = 0]; +} + +message CSVCMsg_Print { + optional string text = 1; +} + +message CSVCMsg_Sounds { + message sounddata_t { + optional sint32 origin_x = 1; + optional sint32 origin_y = 2; + optional sint32 origin_z = 3; + optional uint32 volume = 4; + optional float delay_value = 5; + optional int32 sequence_number = 6; + optional int32 entity_index = 7 [default = -1]; + optional int32 channel = 8; + optional int32 pitch = 9; + optional int32 flags = 10; + optional uint32 sound_num = 11; + optional fixed32 sound_num_handle = 12; + optional int32 speaker_entity = 13; + optional int32 random_seed = 14; + optional int32 sound_level = 15; + optional bool is_sentence = 16; + optional bool is_ambient = 17; + optional uint32 guid = 18; + optional fixed64 sound_resource_id = 19; + } + + optional bool reliable_sound = 1; + repeated CSVCMsg_Sounds.sounddata_t sounds = 2; +} + +message CSVCMsg_Prefetch { + optional int32 sound_index = 1; + optional PrefetchType resource_type = 2 [default = PFT_SOUND]; +} + +message CSVCMsg_SetView { + optional int32 entity_index = 1 [default = -1]; + optional int32 slot = 2 [default = -1]; +} + +message CSVCMsg_FixAngle { + optional bool relative = 1; + optional CMsgQAngle angle = 2; +} + +message CSVCMsg_CrosshairAngle { + optional CMsgQAngle angle = 1; +} + +message CSVCMsg_BSPDecal { + optional CMsgVector pos = 1; + optional int32 decal_texture_index = 2; + optional int32 entity_index = 3 [default = -1]; + optional int32 model_index = 4; + optional bool low_priority = 5; +} + +message CSVCMsg_SplitScreen { + optional ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER]; + optional int32 slot = 2; + optional int32 player_index = 3 [default = -1]; +} + +message CSVCMsg_GetCvarValue { + optional int32 cookie = 1; + optional string cvar_name = 2; +} + +message CSVCMsg_Menu { + optional int32 dialog_type = 1; + optional bytes menu_key_values = 2; +} + +message CSVCMsg_UserMessage { + optional int32 msg_type = 1; + optional bytes msg_data = 2; + optional int32 passthrough = 3; +} + +message CSVCMsg_SendTable { + message sendprop_t { + optional int32 type = 1; + optional string var_name = 2; + optional int32 flags = 3; + optional int32 priority = 4; + optional string dt_name = 5; + optional int32 num_elements = 6; + optional float low_value = 7; + optional float high_value = 8; + optional int32 num_bits = 9; + } + + optional bool is_end = 1; + optional string net_table_name = 2; + optional bool needs_decoder = 3; + repeated CSVCMsg_SendTable.sendprop_t props = 4; +} + +message CSVCMsg_GameEventList { + message key_t { + optional int32 type = 1; + optional string name = 2; + } + + message descriptor_t { + optional int32 eventid = 1; + optional string name = 2; + repeated CSVCMsg_GameEventList.key_t keys = 3; + } + + repeated CSVCMsg_GameEventList.descriptor_t descriptors = 1; +} + +message CSVCMsg_PacketEntities { + message command_queue_info_t { + optional uint32 commands_queued = 1; + optional uint32 command_queue_desired_size = 2; + optional uint32 starved_command_ticks = 3; + optional float time_dilation_percent = 4; + optional uint32 discarded_command_ticks = 5; + } + + message alternate_baseline_t { + optional int32 entity_index = 1; + optional int32 baseline_index = 2; + } + + optional int32 max_entries = 1; + optional int32 updated_entries = 2; + optional bool is_delta = 3; + optional bool update_baseline = 4; + optional int32 baseline = 5; + optional int32 delta_from = 6; + optional bytes entity_data = 7; + optional bool pending_full_frame = 8; + optional uint32 active_spawngroup_handle = 9; + optional uint32 max_spawngroup_creationsequence = 10; + optional uint32 last_cmd_number = 11; + optional uint32 server_tick = 12; + optional bytes serialized_entities = 13; + optional CSVCMsg_PacketEntities.command_queue_info_t command_queue_info = 14; + repeated CSVCMsg_PacketEntities.alternate_baseline_t alternate_baselines = 15; +} + +message CSVCMsg_TempEntities { + optional bool reliable = 1; + optional int32 num_entries = 2; + optional bytes entity_data = 3; +} + +message CSVCMsg_CreateStringTable { + optional string name = 1; + optional int32 num_entries = 2; + optional bool user_data_fixed_size = 3; + optional int32 user_data_size = 4; + optional int32 user_data_size_bits = 5; + optional int32 flags = 6; + optional bytes string_data = 7; + optional int32 uncompressed_size = 8; + optional bool data_compressed = 9; + optional bool using_varint_bitcounts = 10; +} + +message CSVCMsg_UpdateStringTable { + optional int32 table_id = 1; + optional int32 num_changed_entries = 2; + optional bytes string_data = 3; +} + +message CSVCMsg_VoiceData { + optional CMsgVoiceAudio audio = 1; + optional int32 client = 2 [default = -1]; + optional bool proximity = 3; + optional fixed64 xuid = 4; + optional int32 audible_mask = 5; + optional uint32 tick = 6; + optional int32 passthrough = 7; +} + +message CSVCMsg_PacketReliable { + optional int32 tick = 1; + optional int32 messagessize = 2; + optional bool state = 3; +} + +message CSVCMsg_FullFrameSplit { + optional int32 tick = 1; + optional int32 section = 2; + optional int32 total = 3; + optional bytes data = 4; +} + +message CSVCMsg_HLTVStatus { + optional string master = 1; + optional int32 clients = 2; + optional int32 slots = 3; + optional int32 proxies = 4; +} + +message CSVCMsg_ServerSteamID { + optional uint64 steam_id = 1; +} + +message CSVCMsg_CmdKeyValues { + optional bytes data = 1; +} + +message CSVCMsg_RconServerDetails { + optional bytes token = 1; + optional string details = 2; +} + +message CMsgIPCAddress { + optional fixed64 computer_guid = 1; + optional uint32 process_id = 2; +} + +message CMsgServerPeer { + optional int32 player_slot = 1 [default = -1]; + optional fixed64 steamid = 2; + optional CMsgIPCAddress ipc = 3; + optional bool they_hear_you = 4; + optional bool you_hear_them = 5; + optional bool is_listenserver_host = 6; +} + +message CSVCMsg_PeerList { + repeated CMsgServerPeer peer = 1; +} + +message CSVCMsg_ClearAllStringTables { + optional string mapname = 1; +} + +message ProtoFlattenedSerializerField_t { + message polymorphic_field_t { + optional int32 polymorphic_field_serializer_name_sym = 1; + optional int32 polymorphic_field_serializer_version = 2; + } + + optional int32 var_type_sym = 1; + optional int32 var_name_sym = 2; + optional int32 bit_count = 3; + optional float low_value = 4; + optional float high_value = 5; + optional int32 encode_flags = 6; + optional int32 field_serializer_name_sym = 7; + optional int32 field_serializer_version = 8; + optional int32 send_node_sym = 9; + optional int32 var_encoder_sym = 10; + repeated ProtoFlattenedSerializerField_t.polymorphic_field_t polymorphic_types = 11; +} + +message ProtoFlattenedSerializer_t { + optional int32 serializer_name_sym = 1; + optional int32 serializer_version = 2; + repeated int32 fields_index = 3; +} + +message CSVCMsg_FlattenedSerializer { + repeated ProtoFlattenedSerializer_t serializers = 1; + repeated string symbols = 2; + repeated ProtoFlattenedSerializerField_t fields = 3; +} + +message CSVCMsg_StopSound { + optional fixed32 guid = 1; +} + +message CBidirMsg_RebroadcastGameEvent { + optional bool posttoserver = 1; + optional int32 buftype = 2; + optional uint32 clientbitcount = 3; + optional uint64 receivingclients = 4; +} + +message CBidirMsg_RebroadcastSource { + optional int32 eventsource = 1; +} + +message CMsgServerNetworkStats { + message Port { + optional int32 port = 1; + optional string name = 2; + } + + message Player { + optional uint64 steamid = 1; + optional string remote_addr = 2; + optional int32 ping_stddev_ms = 3; + optional int32 ping_avg_ms = 4; + optional float packet_loss_pct = 5; + optional bool is_bot = 6; + } + + optional bool dedicated = 1; + optional int32 cpu_usage = 2; + optional int32 memory_used_mb = 3; + optional int32 memory_free_mb = 4; + optional int32 uptime = 5; + optional int32 spawn_count = 6; + optional int32 num_clients = 8; + optional int32 num_bots = 9; + optional int32 num_spectators = 10; + optional int32 num_tv_relays = 11; + optional float fps = 12; + repeated CMsgServerNetworkStats.Port ports = 17; + optional float avg_latency_out = 18; + optional float avg_latency_in = 19; + optional float avg_packets_out = 20; + optional float avg_packets_in = 21; + optional float avg_loss_out = 22; + optional float avg_loss_in = 23; + optional float avg_data_out = 24; + optional float avg_data_in = 25; + optional uint64 total_data_in = 26; + optional uint64 total_packets_in = 27; + optional uint64 total_data_out = 28; + optional uint64 total_packets_out = 29; + repeated CMsgServerNetworkStats.Player players = 30; +} + +message CSVCMsg_HltvReplay { + optional int32 delay = 1; + optional int32 primary_target = 2 [default = -1]; + optional int32 replay_stop_at = 3; + optional int32 replay_start_at = 4; + optional int32 replay_slowdown_begin = 5; + optional int32 replay_slowdown_end = 6; + optional float replay_slowdown_rate = 7; + optional int32 reason = 8; +} + +message CCLCMsg_HltvReplay { + optional int32 request = 1; + optional float slowdown_length = 2; + optional float slowdown_rate = 3; + optional int32 primary_target = 4 [default = -1]; + optional float event_time = 5; +} + +message CSVCMsg_Broadcast_Command { + optional string cmd = 1; +} + +message CCLCMsg_HltvFixupOperatorTick { + optional int32 tick = 1; + optional bytes props_data = 2; + optional CMsgVector origin = 3; + optional CMsgQAngle eye_angles = 4; + optional int32 observer_mode = 5; + optional bool cameraman_scoreboard = 6; + optional int32 observer_target = 7; + optional CMsgVector view_offset = 8; +} + +message CSVCMsg_HltvFixupOperatorStatus { + optional uint32 mode = 1; + optional string override_operator_name = 2; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/network_connection.proto b/pkg/demoinfocs/msgs2/proto/s2/network_connection.proto new file mode 100644 index 00000000..023383f6 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/network_connection.proto @@ -0,0 +1,129 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.EnumValueOptions { + optional string network_connection_token = 50500; +} + +enum ENetworkDisconnectionReason { + NETWORK_DISCONNECT_INVALID = 0; + NETWORK_DISCONNECT_SHUTDOWN = 1; + NETWORK_DISCONNECT_DISCONNECT_BY_USER = 2 [(network_connection_token) = "#GameUI_Disconnect_User"]; + NETWORK_DISCONNECT_DISCONNECT_BY_SERVER = 3 [(network_connection_token) = "#GameUI_Disconnect_Server"]; + NETWORK_DISCONNECT_LOST = 4 [(network_connection_token) = "#GameUI_Disconnect_ConnectionLost"]; + NETWORK_DISCONNECT_OVERFLOW = 5 [(network_connection_token) = "#GameUI_Disconnect_ConnectionOverflow"]; + NETWORK_DISCONNECT_STEAM_BANNED = 6 [(network_connection_token) = "#GameUI_Disconnect_SteamIDBanned"]; + NETWORK_DISCONNECT_STEAM_INUSE = 7 [(network_connection_token) = "#GameUI_Disconnect_SteamIDInUse"]; + NETWORK_DISCONNECT_STEAM_TICKET = 8 [(network_connection_token) = "#GameUI_Disconnect_SteamTicket"]; + NETWORK_DISCONNECT_STEAM_LOGON = 9 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHCANCELLED = 10 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHALREADYUSED = 11 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_AUTHINVALID = 12 [(network_connection_token) = "#GameUI_Disconnect_SteamLogon"]; + NETWORK_DISCONNECT_STEAM_VACBANSTATE = 13 [(network_connection_token) = "#GameUI_Disconnect_SteamVAC"]; + NETWORK_DISCONNECT_STEAM_LOGGED_IN_ELSEWHERE = 14 [(network_connection_token) = "#GameUI_Disconnect_SteamInUse"]; + NETWORK_DISCONNECT_STEAM_VAC_CHECK_TIMEDOUT = 15 [(network_connection_token) = "#GameUI_Disconnect_SteamTimeOut"]; + NETWORK_DISCONNECT_STEAM_DROPPED = 16 [(network_connection_token) = "#GameUI_Disconnect_SteamDropped"]; + NETWORK_DISCONNECT_STEAM_OWNERSHIP = 17 [(network_connection_token) = "#GameUI_Disconnect_SteamOwnership"]; + NETWORK_DISCONNECT_SERVERINFO_OVERFLOW = 18 [(network_connection_token) = "#GameUI_Disconnect_ServerInfoOverflow"]; + NETWORK_DISCONNECT_TICKMSG_OVERFLOW = 19 [(network_connection_token) = "#GameUI_Disconnect_TickMessage"]; + NETWORK_DISCONNECT_STRINGTABLEMSG_OVERFLOW = 20 [(network_connection_token) = "#GameUI_Disconnect_StringTableMessage"]; + NETWORK_DISCONNECT_DELTAENTMSG_OVERFLOW = 21 [(network_connection_token) = "#GameUI_Disconnect_DeltaEntMessage"]; + NETWORK_DISCONNECT_TEMPENTMSG_OVERFLOW = 22 [(network_connection_token) = "#GameUI_Disconnect_TempEntMessage"]; + NETWORK_DISCONNECT_SOUNDSMSG_OVERFLOW = 23 [(network_connection_token) = "#GameUI_Disconnect_SoundsMessage"]; + NETWORK_DISCONNECT_SNAPSHOTOVERFLOW = 24 [(network_connection_token) = "#GameUI_Disconnect_SnapshotOverflow"]; + NETWORK_DISCONNECT_SNAPSHOTERROR = 25 [(network_connection_token) = "#GameUI_Disconnect_SnapshotError"]; + NETWORK_DISCONNECT_RELIABLEOVERFLOW = 26 [(network_connection_token) = "#GameUI_Disconnect_ReliableOverflow"]; + NETWORK_DISCONNECT_BADDELTATICK = 27 [(network_connection_token) = "#GameUI_Disconnect_BadClientDeltaTick"]; + NETWORK_DISCONNECT_NOMORESPLITS = 28 [(network_connection_token) = "#GameUI_Disconnect_NoMoreSplits"]; + NETWORK_DISCONNECT_TIMEDOUT = 29 [(network_connection_token) = "#GameUI_Disconnect_TimedOut"]; + NETWORK_DISCONNECT_DISCONNECTED = 30 [(network_connection_token) = "#GameUI_Disconnect_Disconnected"]; + NETWORK_DISCONNECT_LEAVINGSPLIT = 31 [(network_connection_token) = "#GameUI_Disconnect_LeavingSplit"]; + NETWORK_DISCONNECT_DIFFERENTCLASSTABLES = 32 [(network_connection_token) = "#GameUI_Disconnect_DifferentClassTables"]; + NETWORK_DISCONNECT_BADRELAYPASSWORD = 33 [(network_connection_token) = "#GameUI_Disconnect_BadRelayPassword"]; + NETWORK_DISCONNECT_BADSPECTATORPASSWORD = 34 [(network_connection_token) = "#GameUI_Disconnect_BadSpectatorPassword"]; + NETWORK_DISCONNECT_HLTVRESTRICTED = 35 [(network_connection_token) = "#GameUI_Disconnect_HLTVRestricted"]; + NETWORK_DISCONNECT_NOSPECTATORS = 36 [(network_connection_token) = "#GameUI_Disconnect_NoSpectators"]; + NETWORK_DISCONNECT_HLTVUNAVAILABLE = 37 [(network_connection_token) = "#GameUI_Disconnect_HLTVUnavailable"]; + NETWORK_DISCONNECT_HLTVSTOP = 38 [(network_connection_token) = "#GameUI_Disconnect_HLTVStop"]; + NETWORK_DISCONNECT_KICKED = 39 [(network_connection_token) = "#GameUI_Disconnect_Kicked"]; + NETWORK_DISCONNECT_BANADDED = 40 [(network_connection_token) = "#GameUI_Disconnect_BanAdded"]; + NETWORK_DISCONNECT_KICKBANADDED = 41 [(network_connection_token) = "#GameUI_Disconnect_KickBanAdded"]; + NETWORK_DISCONNECT_HLTVDIRECT = 42 [(network_connection_token) = "#GameUI_Disconnect_HLTVDirect"]; + NETWORK_DISCONNECT_PURESERVER_CLIENTEXTRA = 43 [(network_connection_token) = "#GameUI_Disconnect_PureServer_ClientExtra"]; + NETWORK_DISCONNECT_PURESERVER_MISMATCH = 44 [(network_connection_token) = "#GameUI_Disconnect_PureServer_Mismatch"]; + NETWORK_DISCONNECT_USERCMD = 45 [(network_connection_token) = "#GameUI_Disconnect_UserCmd"]; + NETWORK_DISCONNECT_REJECTED_BY_GAME = 46 [(network_connection_token) = "#GameUI_Disconnect_RejectedByGame"]; + NETWORK_DISCONNECT_MESSAGE_PARSE_ERROR = 47 [(network_connection_token) = "#GameUI_Disconnect_MessageParseError"]; + NETWORK_DISCONNECT_INVALID_MESSAGE_ERROR = 48 [(network_connection_token) = "#GameUI_Disconnect_InvalidMessageError"]; + NETWORK_DISCONNECT_BAD_SERVER_PASSWORD = 49 [(network_connection_token) = "#GameUI_Disconnect_BadServerPassword"]; + NETWORK_DISCONNECT_DIRECT_CONNECT_RESERVATION = 50; + NETWORK_DISCONNECT_CONNECTION_FAILURE = 51 [(network_connection_token) = "#GameUI_Disconnect_ConnectionFailure"]; + NETWORK_DISCONNECT_NO_PEER_GROUP_HANDLERS = 52 [(network_connection_token) = "#GameUI_Disconnect_NoPeerGroupHandlers"]; + NETWORK_DISCONNECT_RECONNECTION = 53; + NETWORK_DISCONNECT_LOOPSHUTDOWN = 54 [(network_connection_token) = "#GameUI_Disconnect_LoopShutdown"]; + NETWORK_DISCONNECT_LOOPDEACTIVATE = 55 [(network_connection_token) = "#GameUI_Disconnect_LoopDeactivate"]; + NETWORK_DISCONNECT_HOST_ENDGAME = 56 [(network_connection_token) = "#GameUI_Disconnect_Host_EndGame"]; + NETWORK_DISCONNECT_LOOP_LEVELLOAD_ACTIVATE = 57 [(network_connection_token) = "#GameUI_Disconnect_LoopLevelLoadActivate"]; + NETWORK_DISCONNECT_CREATE_SERVER_FAILED = 58 [(network_connection_token) = "#GameUI_Disconnect_CreateServerFailed"]; + NETWORK_DISCONNECT_EXITING = 59 [(network_connection_token) = "#GameUI_Disconnect_ExitingEngine"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_IDLE = 60 [(network_connection_token) = "#GameUI_Disconnect_Request_HSIdle"]; + NETWORK_DISCONNECT_REQUEST_HOSTSTATE_HLTVRELAY = 61 [(network_connection_token) = "#GameUI_Disconnect_Request_HLTVRelay"]; + NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL = 62 [(network_connection_token) = "#GameUI_ClientConsistencyFail"]; + NETWORK_DISCONNECT_CLIENT_UNABLE_TO_CRC_MAP = 63 [(network_connection_token) = "#GameUI_ClientUnableToCRCMap"]; + NETWORK_DISCONNECT_CLIENT_NO_MAP = 64 [(network_connection_token) = "#GameUI_ClientNoMap"]; + NETWORK_DISCONNECT_CLIENT_DIFFERENT_MAP = 65 [(network_connection_token) = "#GameUI_ClientDifferentMap"]; + NETWORK_DISCONNECT_SERVER_REQUIRES_STEAM = 66 [(network_connection_token) = "#GameUI_ServerRequireSteams"]; + NETWORK_DISCONNECT_STEAM_DENY_MISC = 67 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_Misc"]; + NETWORK_DISCONNECT_STEAM_DENY_BAD_ANTI_CHEAT = 68 [(network_connection_token) = "#GameUI_Disconnect_SteamDeny_BadAntiCheat"]; + NETWORK_DISCONNECT_SERVER_SHUTDOWN = 69 [(network_connection_token) = "#GameUI_Disconnect_ServerShutdown"]; + NETWORK_DISCONNECT_SPLITPACKET_SEND_OVERFLOW = 70 [(network_connection_token) = "#GameUI_Disconnect_Splitpacket_Send_Overflow"]; + NETWORK_DISCONNECT_REPLAY_INCOMPATIBLE = 71 [(network_connection_token) = "#GameUI_Disconnect_ReplayIncompatible"]; + NETWORK_DISCONNECT_CONNECT_REQUEST_TIMEDOUT = 72 [(network_connection_token) = "#GameUI_Disconnect_ConnectionTimedout"]; + NETWORK_DISCONNECT_SERVER_INCOMPATIBLE = 73 [(network_connection_token) = "#GameUI_Disconnect_ServerIncompatible"]; + NETWORK_DISCONNECT_LOCALPROBLEM_MANYRELAYS = 74 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_ManyRelays"]; + NETWORK_DISCONNECT_LOCALPROBLEM_HOSTEDSERVERPRIMARYRELAY = 75 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_HostedServerPrimaryRelay"]; + NETWORK_DISCONNECT_LOCALPROBLEM_NETWORKCONFIG = 76 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_NetworkConfig"]; + NETWORK_DISCONNECT_LOCALPROBLEM_OTHER = 77 [(network_connection_token) = "#GameUI_Disconnect_LocalProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT = 79 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Timeout"]; + NETWORK_DISCONNECT_REMOTE_TIMEOUT_CONNECTING = 80 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_TimeoutConnecting"]; + NETWORK_DISCONNECT_REMOTE_OTHER = 81 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_Other"]; + NETWORK_DISCONNECT_REMOTE_BADCRYPT = 82 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCrypt"]; + NETWORK_DISCONNECT_REMOTE_CERTNOTTRUSTED = 83 [(network_connection_token) = "#GameUI_Disconnect_RemoteProblem_BadCert"]; + NETWORK_DISCONNECT_UNUSUAL = 84 [(network_connection_token) = "#GameUI_Disconnect_Unusual"]; + NETWORK_DISCONNECT_INTERNAL_ERROR = 85 [(network_connection_token) = "#GameUI_Disconnect_InternalError"]; + NETWORK_DISCONNECT_REJECT_BADCHALLENGE = 128 [(network_connection_token) = "#GameUI_ServerRejectBadChallenge"]; + NETWORK_DISCONNECT_REJECT_NOLOBBY = 129 [(network_connection_token) = "#GameUI_ServerNoLobby"]; + NETWORK_DISCONNECT_REJECT_BACKGROUND_MAP = 130 [(network_connection_token) = "#Valve_Reject_Background_Map"]; + NETWORK_DISCONNECT_REJECT_SINGLE_PLAYER = 131 [(network_connection_token) = "#Valve_Reject_Single_Player"]; + NETWORK_DISCONNECT_REJECT_HIDDEN_GAME = 132 [(network_connection_token) = "#Valve_Reject_Hidden_Game"]; + NETWORK_DISCONNECT_REJECT_LANRESTRICT = 133 [(network_connection_token) = "#GameUI_ServerRejectLANRestrict"]; + NETWORK_DISCONNECT_REJECT_BADPASSWORD = 134 [(network_connection_token) = "#GameUI_ServerRejectBadPassword"]; + NETWORK_DISCONNECT_REJECT_SERVERFULL = 135 [(network_connection_token) = "#GameUI_ServerRejectServerFull"]; + NETWORK_DISCONNECT_REJECT_INVALIDRESERVATION = 136 [(network_connection_token) = "#GameUI_ServerRejectInvalidReservation"]; + NETWORK_DISCONNECT_REJECT_FAILEDCHANNEL = 137 [(network_connection_token) = "#GameUI_ServerRejectFailedChannel"]; + NETWORK_DISCONNECT_REJECT_CONNECT_FROM_LOBBY = 138 [(network_connection_token) = "#Valve_Reject_Connect_From_Lobby"]; + NETWORK_DISCONNECT_REJECT_RESERVED_FOR_LOBBY = 139 [(network_connection_token) = "#Valve_Reject_Reserved_For_Lobby"]; + NETWORK_DISCONNECT_REJECT_INVALIDKEYLENGTH = 140 [(network_connection_token) = "#GameUI_ServerReject_InvalidKeyLength"]; + NETWORK_DISCONNECT_REJECT_OLDPROTOCOL = 141 [(network_connection_token) = "#GameUI_ServerRejectOldProtocol"]; + NETWORK_DISCONNECT_REJECT_NEWPROTOCOL = 142 [(network_connection_token) = "#GameUI_ServerRejectNewProtocol"]; + NETWORK_DISCONNECT_REJECT_INVALIDCONNECTION = 143 [(network_connection_token) = "#GameUI_ServerRejectInvalidConnection"]; + NETWORK_DISCONNECT_REJECT_INVALIDCERTLEN = 144 [(network_connection_token) = "#GameUI_ServerRejectInvalidCertLen"]; + NETWORK_DISCONNECT_REJECT_INVALIDSTEAMCERTLEN = 145 [(network_connection_token) = "#GameUI_ServerRejectInvalidSteamCertLen"]; + NETWORK_DISCONNECT_REJECT_STEAM = 146 [(network_connection_token) = "#GameUI_ServerRejectSteam"]; + NETWORK_DISCONNECT_REJECT_SERVERAUTHDISABLED = 147 [(network_connection_token) = "#GameUI_ServerAuthDisabled"]; + NETWORK_DISCONNECT_REJECT_SERVERCDKEYAUTHINVALID = 148 [(network_connection_token) = "#GameUI_ServerCDKeyAuthInvalid"]; + NETWORK_DISCONNECT_REJECT_BANNED = 149 [(network_connection_token) = "#GameUI_ServerRejectBanned"]; + NETWORK_DISCONNECT_KICKED_TEAMKILLING = 150 [(network_connection_token) = "#Player_DisconnectReason_TeamKilling"]; + NETWORK_DISCONNECT_KICKED_TK_START = 151 [(network_connection_token) = "#Player_DisconnectReason_TK_Start"]; + NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT = 152 [(network_connection_token) = "#Player_DisconnectReason_UntrustedAccount"]; + NETWORK_DISCONNECT_KICKED_CONVICTEDACCOUNT = 153 [(network_connection_token) = "#Player_DisconnectReason_ConvictedAccount"]; + NETWORK_DISCONNECT_KICKED_COMPETITIVECOOLDOWN = 154 [(network_connection_token) = "#Player_DisconnectReason_CompetitiveCooldown"]; + NETWORK_DISCONNECT_KICKED_TEAMHURTING = 155 [(network_connection_token) = "#Player_DisconnectReason_TeamHurting"]; + NETWORK_DISCONNECT_KICKED_HOSTAGEKILLING = 156 [(network_connection_token) = "#Player_DisconnectReason_HostageKilling"]; + NETWORK_DISCONNECT_KICKED_VOTEDOFF = 157 [(network_connection_token) = "#Player_DisconnectReason_VotedOff"]; + NETWORK_DISCONNECT_KICKED_IDLE = 158 [(network_connection_token) = "#Player_DisconnectReason_Idle"]; + NETWORK_DISCONNECT_KICKED_SUICIDE = 159 [(network_connection_token) = "#Player_DisconnectReason_Suicide"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMLOGIN = 160 [(network_connection_token) = "#Player_DisconnectReason_NoSteamLogin"]; + NETWORK_DISCONNECT_KICKED_NOSTEAMTICKET = 161 [(network_connection_token) = "#Player_DisconnectReason_NoSteamTicket"]; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/networkbasetypes.proto b/pkg/demoinfocs/msgs2/proto/s2/networkbasetypes.proto new file mode 100644 index 00000000..7955e103 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/networkbasetypes.proto @@ -0,0 +1,246 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/network_connection.proto"; + +enum SignonState_t { + SIGNONSTATE_NONE = 0; + SIGNONSTATE_CHALLENGE = 1; + SIGNONSTATE_CONNECTED = 2; + SIGNONSTATE_NEW = 3; + SIGNONSTATE_PRESPAWN = 4; + SIGNONSTATE_SPAWN = 5; + SIGNONSTATE_FULL = 6; + SIGNONSTATE_CHANGELEVEL = 7; +} + +enum NET_Messages { + net_NOP = 0; + net_Disconnect = 1; + net_SplitScreenUser = 3; + net_Tick = 4; + net_StringCmd = 5; + net_SetConVar = 6; + net_SignonState = 7; + net_SpawnGroup_Load = 8; + net_SpawnGroup_ManifestUpdate = 9; + net_SpawnGroup_SetCreationTick = 11; + net_SpawnGroup_Unload = 12; + net_SpawnGroup_LoadCompleted = 13; + net_DebugOverlay = 15; +} + +enum SpawnGroupFlags_t { + SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE = 1; + SPAWN_GROUP_DONT_SPAWN_ENTITIES = 2; + SPAWN_GROUP_SYNCHRONOUS_SPAWN = 4; + SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP = 8; + SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES = 16; + SPAWN_GROUP_BLOCK_UNTIL_LOADED = 64; + SPAWN_GROUP_LOAD_STREAMING_DATA = 128; + SPAWN_GROUP_CREATE_NEW_SCENE_WORLD = 256; +} + +message CMsgVector { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgVector2D { + optional float x = 1; + optional float y = 2; +} + +message CMsgQAngle { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message CMsgQuaternion { + optional float x = 1; + optional float y = 2; + optional float z = 3; + optional float w = 4; +} + +message CMsgTransform { + optional CMsgVector position = 1; + optional float scale = 2; + optional CMsgQuaternion orientation = 3; +} + +message CMsgRGBA { + optional int32 r = 1; + optional int32 g = 2; + optional int32 b = 3; + optional int32 a = 4; +} + +message CMsgPlayerInfo { + optional string name = 1; + optional fixed64 xuid = 2; + optional int32 userid = 3; + optional fixed64 steamid = 4; + optional bool fakeplayer = 5; + optional bool ishltv = 6; +} + +message CEntityMsg { + optional uint32 target_entity = 1 [default = 16777215]; +} + +message CMsg_CVars { + message CVar { + optional string name = 1; + optional string value = 2; + } + + repeated CMsg_CVars.CVar cvars = 1; +} + +message CNETMsg_NOP { +} + +message CNETMsg_SplitScreenUser { + optional int32 slot = 1; +} + +message CNETMsg_Disconnect { + optional ENetworkDisconnectionReason reason = 2 [default = NETWORK_DISCONNECT_INVALID]; +} + +message CNETMsg_Tick { + optional uint32 tick = 1; + optional uint32 host_frametime = 2; + optional uint32 host_frametime_std_deviation = 3; + optional uint32 host_computationtime = 4; + optional uint32 host_computationtime_std_deviation = 5; + optional uint32 host_framestarttime_std_deviation = 6; + optional uint32 host_loss = 7; + optional uint32 host_unfiltered_frametime = 8; + optional uint32 hltv_replay_flags = 9; +} + +message CNETMsg_StringCmd { + optional string command = 1; + optional uint32 prediction_sync = 2; +} + +message CNETMsg_SetConVar { + optional CMsg_CVars convars = 1; +} + +message CNETMsg_SignonState { + optional SignonState_t signon_state = 1 [default = SIGNONSTATE_NONE]; + optional uint32 spawn_count = 2; + optional uint32 num_server_players = 3; + repeated string players_networkids = 4; + optional string map_name = 5; + optional string addons = 6; +} + +message CSVCMsg_GameEvent { + message key_t { + optional int32 type = 1; + optional string val_string = 2; + optional float val_float = 3; + optional int32 val_long = 4; + optional int32 val_short = 5; + optional int32 val_byte = 6; + optional bool val_bool = 7; + optional uint64 val_uint64 = 8; + } + + optional string event_name = 1; + optional int32 eventid = 2; + repeated CSVCMsg_GameEvent.key_t keys = 3; +} + +message CSVCMsgList_GameEvents { + message event_t { + optional int32 tick = 1; + optional CSVCMsg_GameEvent event = 2; + } + + repeated CSVCMsgList_GameEvents.event_t events = 1; +} + +message CNETMsg_SpawnGroup_Load { + optional string worldname = 1; + optional string entitylumpname = 2; + optional string entityfiltername = 3; + optional uint32 spawngrouphandle = 4; + optional uint32 spawngroupownerhandle = 5; + optional CMsgVector world_offset_pos = 6; + optional CMsgQAngle world_offset_angle = 7; + optional bytes spawngroupmanifest = 8; + optional uint32 flags = 9; + optional int32 tickcount = 10; + optional bool manifestincomplete = 11; + optional string localnamefixup = 12; + optional string parentnamefixup = 13; + optional int32 manifestloadpriority = 14; + optional uint32 worldgroupid = 15; + optional uint32 creationsequence = 16; + optional string savegamefilename = 17; + optional uint32 spawngroupparenthandle = 18; + optional bool leveltransition = 19; + optional string worldgroupname = 20; +} + +message CNETMsg_SpawnGroup_ManifestUpdate { + optional uint32 spawngrouphandle = 1; + optional bytes spawngroupmanifest = 2; + optional bool manifestincomplete = 3; +} + +message CNETMsg_SpawnGroup_SetCreationTick { + optional uint32 spawngrouphandle = 1; + optional int32 tickcount = 2; + optional uint32 creationsequence = 3; +} + +message CNETMsg_SpawnGroup_Unload { + optional uint32 spawngrouphandle = 1; + optional uint32 flags = 2; + optional int32 tickcount = 3; +} + +message CNETMsg_SpawnGroup_LoadCompleted { + optional uint32 spawngrouphandle = 1; +} + +message CSVCMsg_GameSessionConfiguration { + optional bool is_multiplayer = 1; + optional bool is_loadsavegame = 2; + optional bool is_background_map = 3; + optional bool is_headless = 4; + optional uint32 min_client_limit = 5; + optional uint32 max_client_limit = 6; + optional uint32 max_clients = 7; + optional fixed32 tick_interval = 8; + optional string hostname = 9; + optional string savegamename = 10; + optional string s1_mapname = 11; + optional string gamemode = 12; + optional string server_ip_address = 13; + optional bytes data = 14; + optional bool is_localonly = 15; + optional bool no_steam_server = 19; + optional bool is_transition = 16; + optional string previouslevel = 17; + optional string landmarkname = 18; +} + +message CNETMsg_DebugOverlay { + optional int32 etype = 1; + repeated CMsgVector vectors = 2; + repeated CMsgRGBA colors = 3; + repeated float dimensions = 4; + repeated float times = 5; + repeated bool bools = 6; + repeated uint64 uint64s = 7; + repeated string strings = 8; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/networksystem_protomessages.proto b/pkg/demoinfocs/msgs2/proto/s2/networksystem_protomessages.proto new file mode 100644 index 00000000..7c46906d --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/networksystem_protomessages.proto @@ -0,0 +1,19 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +message NetMessageSplitscreenUserChanged { + optional uint32 slot = 1; +} + +message NetMessageConnectionClosed { + optional uint32 reason = 1; +} + +message NetMessageConnectionCrashed { + optional uint32 reason = 1; +} + +message NetMessagePacketStart { +} + +message NetMessagePacketEnd { +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages.proto b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages.proto new file mode 100644 index 00000000..5de9bfe0 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages.proto @@ -0,0 +1,207 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverPingReply = 4; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; +} + +message CMsgSteamDatagramRouterPingReply { + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; +} + +message CMsgSteamDatagramGameserverPing { + optional uint32 client_session = 1; + optional fixed64 client_steam_id = 2; + optional fixed32 client_timestamp = 3; + optional fixed32 router_timestamp = 4; + optional uint32 router_gameserver_latency = 5; + optional uint32 seq_number_router = 6; + optional uint32 seq_number_e2e = 7; +} + +message CMsgSteamDatagramGameServerAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint32 int32_value = 3; + optional fixed32 fixed32_value = 4; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional fixed64 authorized_steam_id = 2; + optional fixed32 authorized_public_ip = 3; + optional fixed64 gameserver_steam_id = 4; + optional fixed64 gameserver_net_id = 5; + optional bytes signature = 6; + optional uint32 app_id = 7; + repeated CMsgSteamDatagramGameServerAuthTicket.ExtraField extra_fields = 8; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional CMsgSteamDatagramGameServerAuthTicket ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_cookie = 5; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 client_cookie = 1; + optional fixed64 gameserver_steam_id = 3; + optional uint32 seconds_until_shutdown = 4; +} + +message CMsgSteamDatagramNoSession { + optional fixed32 client_cookie = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramDataCenterState { + message Server { + optional string address = 1; + optional uint32 ping_ms = 2; + } + + message DataCenter { + optional string code = 1; + repeated CMsgSteamDatagramDataCenterState.Server server_sample = 2; + } + + repeated CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; +} + +message CMsgSteamDatagramConnectionQuality { + optional CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + optional CMsgSteamDatagramConnectionQuality c2r = 1; + optional CMsgSteamDatagramConnectionQuality c2s = 2; + optional fixed32 client_timestamp = 3; + optional fixed32 client_cookie = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_c2s = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + optional CMsgSteamDatagramConnectionQuality r2c = 1; + optional CMsgSteamDatagramConnectionQuality s2c = 2; + optional fixed32 client_timestamp_from_router = 3; + optional fixed32 client_timestamp_from_server = 4; + optional uint32 router_gameserver_latency = 5; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 client_cookie = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_s2c = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + optional CMsgSteamDatagramConnectionQuality r2s = 1; + optional CMsgSteamDatagramConnectionQuality c2s = 2; + optional fixed32 client_timestamp = 3; + optional fixed32 router_timestamp = 4; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_c2s = 6; + optional fixed64 client_steam_id = 7; + optional uint32 client_session_id = 8; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + optional CMsgSteamDatagramConnectionQuality s2r = 1; + optional CMsgSteamDatagramConnectionQuality s2c = 2; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_s2c = 4; + optional fixed64 client_steam_id = 5; + optional uint32 client_session_id = 6; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 client_cookie = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message RoutingCluster { + optional fixed32 id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 e2e_ping_ms = 3; + } + + optional fixed32 client_cookie = 1; + repeated CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 client_cookie = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_auth.proto b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_auth.proto new file mode 100644 index 00000000..20aa31ac --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_auth.proto @@ -0,0 +1,67 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamDatagramRelayAuthTicket { + message ExtraField { + optional string name = 1; + optional string string_value = 2; + optional sint64 int64_value = 3; + optional fixed64 fixed64_value = 5; + } + + optional fixed32 time_expiry = 1; + optional string authorized_client_identity_string = 14; + optional string gameserver_identity_string = 15; + optional fixed32 authorized_public_ip = 3; + optional bytes gameserver_address = 11; + optional uint32 app_id = 7; + optional uint32 virtual_port = 10; + repeated CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; + optional fixed64 legacy_authorized_steam_id = 2; + optional fixed64 legacy_gameserver_steam_id = 4; + optional fixed32 legacy_gameserver_pop_id = 9; + optional bytes legacy_authorized_client_identity_binary = 12; + optional bytes legacy_gameserver_identity_binary = 13; +} + +message CMsgSteamDatagramSignedRelayAuthTicket { + optional fixed64 reserved_do_not_use = 1; + optional bytes ticket = 3; + optional bytes signature = 4; + optional fixed64 key_id = 2; + repeated CMsgSteamDatagramCertificateSigned certs = 5; +} + +message CMsgSteamDatagramCachedCredentialsForApp { + optional bytes private_key = 1; + optional bytes cert = 2; + repeated bytes relay_tickets = 3; +} + +message CMsgSteamDatagramGameCoordinatorServerLogin { + optional uint32 time_generated = 1; + optional uint32 appid = 2; + optional bytes routing = 3; + optional bytes appdata = 4; + optional bytes legacy_identity_binary = 5; + optional string identity_string = 6; + optional fixed64 dummy_steam_id = 99; +} + +message CMsgSteamDatagramSignedGameCoordinatorServerLogin { + optional CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes login = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramHostedServerAddressPlaintext { + optional fixed32 ipv4 = 1; + optional bytes ipv6 = 2; + optional uint32 port = 3; + optional fixed64 routing_secret = 4; + optional uint32 protocol_version = 5; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_sdr.proto b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_sdr.proto new file mode 100644 index 00000000..d8d84198 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamdatagram_messages_sdr.proto @@ -0,0 +1,535 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steamnetworkingsockets_messages_certs.proto"; +import "s2/steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamDatagramMsgID { + k_ESteamDatagramMsg_Invalid = 0; + k_ESteamDatagramMsg_RouterPingRequest = 1; + k_ESteamDatagramMsg_RouterPingReply = 2; + k_ESteamDatagramMsg_GameserverPingRequest = 3; + k_ESteamDatagramMsg_GameserverSessionRequest = 5; + k_ESteamDatagramMsg_GameserverSessionEstablished = 6; + k_ESteamDatagramMsg_NoSession = 7; + k_ESteamDatagramMsg_Diagnostic = 8; + k_ESteamDatagramMsg_DataClientToRouter = 9; + k_ESteamDatagramMsg_DataRouterToServer = 10; + k_ESteamDatagramMsg_DataServerToRouter = 11; + k_ESteamDatagramMsg_DataRouterToClient = 12; + k_ESteamDatagramMsg_Stats = 13; + k_ESteamDatagramMsg_ClientPingSampleRequest = 14; + k_ESteamDatagramMsg_ClientPingSampleReply = 15; + k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16; + k_ESteamDatagramMsg_RelayHealth = 17; + k_ESteamDatagramMsg_ConnectRequest = 18; + k_ESteamDatagramMsg_ConnectOK = 19; + k_ESteamDatagramMsg_ConnectionClosed = 20; + k_ESteamDatagramMsg_NoConnection = 21; + k_ESteamDatagramMsg_TicketDecryptRequest = 22; + k_ESteamDatagramMsg_TicketDecryptReply = 23; + k_ESteamDatagramMsg_P2PSessionRequest = 24; + k_ESteamDatagramMsg_P2PSessionEstablished = 25; + k_ESteamDatagramMsg_P2PStatsClient = 26; + k_ESteamDatagramMsg_P2PStatsRelay = 27; + k_ESteamDatagramMsg_P2PBadRoute = 28; + k_ESteamDatagramMsg_GameserverPingReply = 29; + k_ESteamDatagramMsg_LegacyGameserverRegistration = 30; + k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31; + k_ESteamDatagramMsg_SetSecondaryAddressResult = 32; + k_ESteamDatagramMsg_RelayToRelayPingRequest = 33; + k_ESteamDatagramMsg_RelayToRelayPingReply = 34; +} + +message CMsgSteamNetworkingIPAddress { + optional fixed32 v4 = 1; + optional bytes v6 = 2; +} + +message CMsgSteamDatagramSignedMessageGeneric { + optional CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes signed_data = 2; + optional bytes signature = 3; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramRouterPingReply { + message RouteException { + optional fixed32 data_center_id = 1; + optional uint32 flags = 2; + optional uint32 penalty = 3; + } + + message AltAddress { + enum Protocol { + DefaultProtocol = 0; + NetworkNext = 1; + } + + optional fixed32 ipv4 = 1; + optional uint32 port = 2; + optional uint32 penalty = 3; + optional CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol]; + optional string id = 5; + } + + enum Flags { + FLAG_MAYBE_MORE_DATA_CENTERS = 1; + FLAG_MAYBE_MORE_ALT_ADDRESSES = 2; + } + + optional fixed32 client_timestamp = 1; + repeated fixed32 latency_datacenter_ids = 2 [packed = true]; + repeated uint32 latency_ping_ms = 3 [packed = true]; + repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true]; + repeated uint32 latency_ping_ms_p2p = 15 [packed = true]; + optional fixed32 your_public_ip = 4; + optional fixed32 your_public_port = 11; + optional fixed32 server_time = 5; + optional fixed64 challenge = 6; + optional uint32 seconds_until_shutdown = 7; + optional fixed32 client_cookie = 8; + optional uint32 scoring_penalty_relay_cluster = 9; + optional uint32 flags = 12; + repeated CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10; + repeated CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13; + optional bytes dummy_pad = 99; +} + +message CMsgSteamDatagramGameserverPingRequestBody { + optional fixed32 relay_popid = 1; + optional CMsgSteamNetworkingIPAddress your_public_ip = 2; + optional uint32 your_public_port = 3; + optional uint64 relay_unix_time = 4; + optional fixed64 routing_secret = 5; + repeated CMsgSteamNetworkingIPAddress my_ips = 6; + optional bytes echo = 8; +} + +message CMsgSteamDatagramGameserverPingRequestEnvelope { + optional CMsgSteamDatagramCertificateSigned cert = 6; + optional bytes signed_data = 7; + optional bytes signature = 8; + optional fixed32 legacy_your_public_ip = 1; + optional fixed32 legacy_your_public_port = 5; + optional fixed32 legacy_relay_unix_time = 2; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional bytes dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverPingReplyData { + optional fixed32 echo_relay_unix_time = 2; + optional bytes echo = 8; + optional fixed64 legacy_challenge = 3; + optional fixed32 legacy_router_timestamp = 4; + optional fixed32 data_center_id = 5; + optional uint32 appid = 6; + optional uint32 protocol_version = 7; + optional string build = 9; + optional uint64 network_config_version = 10; + optional fixed32 my_unix_time = 11; +} + +message CMsgSteamDatagramNoSessionRelayToClient { + optional fixed32 connection_id = 7; + optional fixed32 your_public_ip = 2; + optional fixed32 your_public_port = 6; + optional fixed32 server_time = 3; + optional fixed64 challenge = 4; + optional uint32 seconds_until_shutdown = 5; +} + +message CMsgSteamDatagramNoSessionRelayToPeer { + optional uint32 legacy_relay_session_id = 1; + optional fixed32 from_relay_session_id = 2; + optional fixed32 from_connection_id = 7; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramClientPingSampleRequest { + optional fixed32 connection_id = 1; +} + +message CMsgSteamDatagramClientPingSampleReply { + message POP { + message AltAddress { + optional string id = 1; + optional uint32 front_ping_ms = 2; + optional uint32 penalty = 3; + } + + optional fixed32 pop_id = 1; + optional uint32 default_front_ping_ms = 2; + optional uint32 cluster_penalty = 4; + repeated CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7; + optional uint32 default_e2e_ping_ms = 3; + optional uint32 default_e2e_score = 5; + optional fixed32 p2p_via_peer_relay_pop_id = 6; + optional uint32 best_dc_ping_ms = 9; + optional uint32 best_dc_score = 10; + optional fixed32 best_dc_via_relay_pop_id = 11; + optional uint32 default_dc_ping_ms = 12; + optional uint32 default_dc_score = 13; + optional fixed32 default_dc_via_relay_pop_id = 14; + optional uint32 test_dc_ping_ms = 15; + optional uint32 test_dc_score = 16; + optional fixed32 test_dc_via_relay_pop_id = 17; + } + + message LegacyDataCenter { + optional fixed32 data_center_id = 1; + optional fixed32 best_dc_via_relay_pop_id = 2; + optional uint32 best_dc_ping_ms = 3; + } + + optional fixed32 connection_id = 1; + optional bool relay_override_active = 5; + repeated CMsgSteamDatagramClientPingSampleReply.POP pops = 2; + repeated CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3; +} + +message CMsgSteamDatagramClientSwitchedPrimary { + message RouterQuality { + optional uint32 score = 1; + optional uint32 front_ping = 2; + optional uint32 back_ping = 3; + optional uint32 seconds_until_down = 4; + } + + optional fixed32 connection_id = 1; + optional fixed32 from_ip = 2; + optional uint32 from_port = 3; + optional fixed32 from_router_cluster = 4; + optional uint32 from_active_time = 5; + optional uint32 from_active_packets_recv = 6; + optional string from_dropped_reason = 7; + optional uint32 gap_ms = 8; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11; + optional CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12; +} + +message CMsgSteamDatagramConnectRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 4; + optional uint32 ping_est_ms = 5; + optional uint32 virtual_port = 9; + optional uint32 gameserver_relay_session_id = 2; + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional CMsgSteamDatagramCertificateSigned cert = 7; + optional fixed64 routing_secret = 10; + optional fixed64 legacy_client_steam_id = 3; +} + +message CMsgSteamDatagramConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 7; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional uint32 gameserver_relay_session_id = 2; + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional CMsgSteamDatagramCertificateSigned cert = 6; +} + +message CMsgSteamNetworkingP2PSDRRoutingSummary { + optional uint32 initial_ping = 1; + optional uint32 initial_ping_front_local = 2; + optional uint32 initial_ping_front_remote = 3; + optional uint32 initial_score = 4; + optional fixed32 initial_pop_local = 5; + optional fixed32 initial_pop_remote = 6; + optional uint32 best_ping = 11; + optional uint32 best_ping_front_local = 12; + optional uint32 best_ping_front_remote = 13; + optional uint32 best_score = 14; + optional fixed32 best_pop_local = 15; + optional fixed32 best_pop_remote = 16; + optional uint32 best_time = 17; + optional uint32 negotiation_ms = 7; + optional uint32 selected_seconds = 8; +} + +message CMsgSteamDatagramP2PRoutingSummary { + optional CMsgSteamNetworkingICESessionSummary ice = 2; + optional CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3; +} + +message CMsgSteamDatagramConnectionClosed { + enum ERelayMode { + None = 0; + EndToEnd = 1; + ClosedByPeer = 2; + } + + optional fixed32 to_connection_id = 7; + optional fixed32 from_connection_id = 8; + optional string from_identity_string = 15; + optional CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13; + optional fixed64 legacy_from_steam_id = 3; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional bytes forward_target_relay_routing_token = 11; + optional uint32 forward_target_revision = 12; + optional CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None]; + optional string debug = 5; + optional uint32 reason_code = 6; + optional fixed64 routing_secret = 14; + optional bool not_primary_session = 16; + optional bool not_primary_transport = 19; + optional bool relay_override_active = 22; + optional CMsgSteamDatagramConnectionQuality quality_relay = 17; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 18; + optional CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21; +} + +message CMsgSteamDatagramNoConnection { + optional fixed32 to_connection_id = 5; + optional fixed32 from_connection_id = 6; + optional uint32 legacy_gameserver_relay_session_id = 2; + optional fixed32 to_relay_session_id = 9; + optional fixed32 from_relay_session_id = 10; + optional string from_identity_string = 7; + optional fixed64 legacy_from_steam_id = 3; + optional bool end_to_end = 4; + optional bool not_primary_session = 12; + optional bool not_primary_transport = 15; + optional bool relay_override_active = 17; + optional CMsgSteamDatagramConnectionQuality quality_relay = 13; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 14; + optional CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16; + optional fixed64 routing_secret = 11; + optional fixed32 dummy_pad = 1023; +} + +message CMsgSteamDatagramGameserverSessionRequest { + optional bytes ticket = 1; + optional fixed32 challenge_time = 3; + optional fixed64 challenge = 4; + optional fixed32 client_connection_id = 5; + optional fixed32 server_connection_id = 8; + optional uint64 network_config_version = 6; + optional uint32 protocol_version = 7; + optional string platform = 9; + optional string build = 10; + optional string dev_gameserver_identity = 100; + optional CMsgSteamDatagramCertificateSigned dev_client_cert = 101; +} + +message CMsgSteamDatagramGameserverSessionEstablished { + optional fixed32 connection_id = 1; + optional string gameserver_identity_string = 2; + optional uint32 seconds_until_shutdown = 4; + optional uint32 seq_num_r2c = 6; + optional bytes dummy_legacy_identity_binary = 7; + optional fixed64 legacy_gameserver_steamid = 3; +} + +message CMsgSteamDatagramConnectionStatsClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 4; + repeated fixed32 legacy_ack_e2e = 5; + optional uint32 flags = 6; + optional fixed32 client_connection_id = 8; + optional uint32 seq_num_c2r = 9; + optional uint32 seq_num_e2e = 10; +} + +message CMsgSteamDatagramConnectionStatsRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 6; + optional fixed32 migrate_request_ip = 10; + optional uint32 migrate_request_port = 11; + optional uint32 scoring_penalty_relay_cluster = 12; + repeated fixed32 ack_relay = 13; + repeated fixed32 legacy_ack_e2e = 14; + optional uint32 flags = 15; + optional fixed32 client_connection_id = 7; + optional uint32 seq_num_r2c = 8; + optional uint32 seq_num_e2e = 9; +} + +message CMsgSteamDatagramConnectionStatsRouterToServer { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 10; + repeated fixed32 legacy_ack_e2e = 11; + optional uint32 flags = 12; + optional uint32 seq_num_r2s = 5; + optional uint32 seq_num_e2e = 6; + optional string client_identity_string = 15; + optional fixed64 legacy_client_steam_id = 7; + optional uint32 relay_session_id = 8; + optional fixed32 client_connection_id = 9; + optional fixed32 server_connection_id = 13; + optional fixed64 routing_secret = 14; +} + +message CMsgSteamDatagramConnectionStatsServerToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + repeated fixed32 ack_relay = 8; + repeated fixed32 legacy_ack_e2e = 9; + optional uint32 flags = 10; + optional uint32 seq_num_s2r = 3; + optional uint32 seq_num_e2e = 4; + optional uint32 relay_session_id = 6; + optional fixed32 client_connection_id = 7; + optional fixed32 server_connection_id = 11; +} + +message CMsgSteamDatagramP2PSessionRequestBody { + message EncryptedData { + optional string peer_identity_string = 1; + } + + optional fixed32 challenge_time = 1; + optional fixed64 challenge = 2; + optional fixed32 client_connection_id = 3; + optional fixed64 legacy_peer_steam_id = 4; + optional string peer_identity_string = 11; + optional fixed32 peer_connection_id = 5; + optional bytes encrypted_data = 14; + optional uint32 encryption_your_public_key_lead_byte = 15; + optional bytes encryption_my_ephemeral_public_key = 16; + optional uint32 protocol_version = 8; + optional uint64 network_config_version = 9; + optional string platform = 12; + optional string build = 13; +} + +message CMsgSteamDatagramP2PSessionRequest { + optional CMsgSteamDatagramCertificateSigned cert = 1; + optional bytes body = 2; + optional bytes signature = 3; +} + +message CMsgSteamDatagramP2PSessionEstablished { + optional fixed32 connection_id = 1; + optional uint32 seconds_until_shutdown = 3; + optional bytes relay_routing_token = 4; + optional uint32 seq_num_r2c = 5; +} + +message CMsgSteamDatagramConnectionStatsP2PClientToRouter { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_SESSION = 8; + NOT_PRIMARY_TRANSPORT_E2E = 16; + CLIENT_RELAY_OVERRIDE = 32; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14; + repeated fixed32 ack_relay = 3; + repeated fixed32 legacy_ack_e2e = 4; + optional uint32 flags = 5; + optional bytes forward_target_relay_routing_token = 6; + optional uint32 forward_target_revision = 7; + optional bytes routes = 8; + optional uint32 ack_peer_routes_revision = 9; + optional fixed32 connection_id = 10; + optional uint32 seq_num_c2r = 11; + optional uint32 seq_num_e2e = 12; +} + +message CMsgSteamDatagramConnectionStatsP2PRouterToClient { + enum Flags { + ACK_REQUEST_RELAY = 1; + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional CMsgSteamDatagramConnectionQuality quality_relay = 1; + optional CMsgSteamDatagramConnectionQuality quality_e2e = 2; + optional uint32 seconds_until_shutdown = 3; + optional fixed32 migrate_request_ip = 4; + optional uint32 migrate_request_port = 5; + optional uint32 scoring_penalty_relay_cluster = 6; + repeated fixed32 ack_relay = 7; + repeated fixed32 legacy_ack_e2e = 8; + optional uint32 flags = 9; + optional uint32 ack_forward_target_revision = 10; + optional bytes routes = 11; + optional uint32 ack_peer_routes_revision = 12; + optional fixed32 connection_id = 13; + optional uint32 seq_num_r2c = 14; + optional uint32 seq_num_e2e = 15; +} + +message CMsgSteamDatagramP2PBadRouteRouterToClient { + optional fixed32 connection_id = 1; + optional bytes failed_relay_routing_token = 2; + optional uint32 ack_forward_target_revision = 3; + optional fixed64 kludge_pad = 99; +} + +message CMsgSteamDatagramP2PRoutes { + message RelayCluster { + optional fixed32 pop_id = 1; + optional uint32 ping_ms = 2; + optional uint32 score_penalty = 3; + optional bytes session_relay_routing_token = 4; + } + + message Route { + optional fixed32 my_pop_id = 1; + optional fixed32 your_pop_id = 2; + optional uint32 legacy_score = 3; + optional uint32 interior_score = 4; + } + + repeated CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1; + repeated CMsgSteamDatagramP2PRoutes.Route routes = 2; + optional uint32 revision = 3; +} + +message CMsgSteamDatagramSetSecondaryAddressRequest { + optional fixed32 client_main_ip = 1; + optional fixed32 client_main_port = 2; + optional fixed32 client_connection_id = 3; + optional string client_identity = 4; + optional bool request_send_duplication = 5; + optional bytes kludge_pad = 99; +} + +message CMsgSteamDatagramSetSecondaryAddressResult { + optional bool success = 1; + optional string message = 2; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages.proto new file mode 100644 index 00000000..e4c93d43 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages.proto @@ -0,0 +1,599 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +extend .google.protobuf.FieldOptions { + optional bool key_field = 70000 [default = false]; +} + +extend .google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 70000 [default = 32]; + optional int32 msgpool_hard_limit = 70001 [default = 384]; +} + +enum GCProtoBufMsgSrc { + GCProtoBufMsgSrc_Unspecified = 0; + GCProtoBufMsgSrc_FromSystem = 1; + GCProtoBufMsgSrc_FromSteamID = 2; + GCProtoBufMsgSrc_FromGC = 3; + GCProtoBufMsgSrc_ReplySystem = 4; +} + +message CMsgProtoBufHeader { + option (msgpool_soft_limit) = 256; + option (msgpool_hard_limit) = 1024; + + optional fixed64 client_steam_id = 1; + optional int32 client_session_id = 2; + optional uint32 source_app_id = 3; + optional fixed64 job_id_source = 10 [default = 18446744073709551615]; + optional fixed64 job_id_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 ip = 15; + optional GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; + optional uint32 gc_dir_index_source = 201; +} + +message CMsgWebAPIKey { + optional uint32 status = 1 [default = 255]; + optional uint32 account_id = 2 [default = 0]; + optional uint32 publisher_group_id = 3 [default = 0]; + optional uint32 key_id = 4; + optional string domain = 5; +} + +message CMsgHttpRequest { + message RequestHeader { + optional string name = 1; + optional string value = 2; + } + + message QueryParam { + optional string name = 1; + optional bytes value = 2; + } + + optional uint32 request_method = 1; + optional string hostname = 2; + optional string url = 3; + repeated CMsgHttpRequest.RequestHeader headers = 4; + repeated CMsgHttpRequest.QueryParam get_params = 5; + repeated CMsgHttpRequest.QueryParam post_params = 6; + optional bytes body = 7; + optional uint32 absolute_timeout = 8; +} + +message CMsgWebAPIRequest { + optional string interface_name = 2; + optional string method_name = 3; + optional uint32 version = 4; + optional CMsgWebAPIKey api_key = 5; + optional CMsgHttpRequest request = 6; + optional uint32 routing_app_id = 7; +} + +message CMsgHttpResponse { + message ResponseHeader { + optional string name = 1; + optional string value = 2; + } + + optional uint32 status_code = 1; + repeated CMsgHttpResponse.ResponseHeader headers = 2; + optional bytes body = 3; +} + +message CMsgAMFindAccounts { + optional uint32 search_type = 1; + optional string search_string = 2; +} + +message CMsgAMFindAccountsResponse { + repeated fixed64 steam_id = 1; +} + +message CMsgNotifyWatchdog { + optional uint32 source = 1; + optional uint32 alert_type = 2; + optional uint32 alert_destination = 3; + optional bool critical = 4; + optional uint32 time = 5; + optional uint32 appid = 6; + optional string text = 7; +} + +message CMsgAMGetLicenses { + optional fixed64 steamid = 1; +} + +message CMsgPackageLicense { + optional uint32 package_id = 1; + optional uint32 time_created = 2; + optional uint32 owner_id = 3; +} + +message CMsgAMGetLicensesResponse { + repeated CMsgPackageLicense license = 1; + optional uint32 result = 2; +} + +message CMsgAMGetUserGameStats { + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + repeated uint32 stats = 3; +} + +message CMsgAMGetUserGameStatsResponse { + message Stats { + optional uint32 stat_id = 1; + optional uint32 stat_value = 2; + } + + message Achievement_Blocks { + optional uint32 achievement_id = 1; + optional uint32 achievement_bit_id = 2; + optional fixed32 unlock_time = 3; + } + + optional fixed64 steam_id = 1; + optional fixed64 game_id = 2; + optional int32 eresult = 3 [default = 2]; + repeated CMsgAMGetUserGameStatsResponse.Stats stats = 4; + repeated CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; +} + +message CMsgGCGetCommandList { + optional uint32 app_id = 1; + optional string command_prefix = 2; +} + +message CMsgGCGetCommandListResponse { + repeated string command_name = 1; +} + +message CGCMsgMemCachedGet { + repeated string keys = 1; +} + +message CGCMsgMemCachedGetResponse { + message ValueTag { + optional bool found = 1; + optional bytes value = 2; + } + + repeated CGCMsgMemCachedGetResponse.ValueTag values = 1; +} + +message CGCMsgMemCachedSet { + message KeyPair { + optional string name = 1; + optional bytes value = 2; + } + + repeated CGCMsgMemCachedSet.KeyPair keys = 1; +} + +message CGCMsgMemCachedDelete { + repeated string keys = 1; +} + +message CGCMsgMemCachedStats { +} + +message CGCMsgMemCachedStatsResponse { + optional uint64 curr_connections = 1; + optional uint64 cmd_get = 2; + optional uint64 cmd_set = 3; + optional uint64 cmd_flush = 4; + optional uint64 get_hits = 5; + optional uint64 get_misses = 6; + optional uint64 delete_hits = 7; + optional uint64 delete_misses = 8; + optional uint64 bytes_read = 9; + optional uint64 bytes_written = 10; + optional uint64 limit_maxbytes = 11; + optional uint64 curr_items = 12; + optional uint64 evictions = 13; + optional uint64 bytes = 14; +} + +message CGCMsgSQLStats { + optional uint32 schema_catalog = 1; +} + +message CGCMsgSQLStatsResponse { + optional uint32 threads = 1; + optional uint32 threads_connected = 2; + optional uint32 threads_active = 3; + optional uint32 operations_submitted = 4; + optional uint32 prepared_statements_executed = 5; + optional uint32 non_prepared_statements_executed = 6; + optional uint32 deadlock_retries = 7; + optional uint32 operations_timed_out_in_queue = 8; + optional uint32 errors = 9; +} + +message CMsgAMAddFreeLicense { + optional fixed64 steamid = 1; + optional uint32 ip_public = 2; + optional uint32 packageid = 3; + optional string store_country_code = 4; +} + +message CMsgAMAddFreeLicenseResponse { + optional int32 eresult = 1 [default = 2]; + optional int32 purchase_result_detail = 2; + optional fixed64 transid = 3; +} + +message CGCMsgGetIPLocation { + repeated fixed32 ips = 1; +} + +message CIPLocationInfo { + optional uint32 ip = 1; + optional float latitude = 2; + optional float longitude = 3; + optional string country = 4; + optional string state = 5; + optional string city = 6; +} + +message CGCMsgGetIPLocationResponse { + repeated CIPLocationInfo infos = 1; +} + +message CGCMsgSystemStatsSchema { + optional uint32 gc_app_id = 1; + optional bytes schema_kv = 2; +} + +message CGCMsgGetSystemStats { +} + +message CGCMsgGetSystemStatsResponse { + optional uint32 gc_app_id = 1; + optional bytes stats_kv = 2; + optional uint32 active_jobs = 3; + optional uint32 yielding_jobs = 4; + optional uint32 user_sessions = 5; + optional uint32 game_server_sessions = 6; + optional uint32 socaches = 7; + optional uint32 socaches_to_unload = 8; + optional uint32 socaches_loading = 9; + optional uint32 writeback_queue = 10; + optional uint32 steamid_locks = 11; + optional uint32 logon_queue = 12; + optional uint32 logon_jobs = 13; +} + +message CMsgAMSendEmail { + message ReplacementToken { + optional string token_name = 1; + optional string token_value = 2; + } + + message PersonaNameReplacementToken { + optional fixed64 steamid = 1; + optional string token_name = 2; + } + + optional fixed64 steamid = 1; + optional uint32 email_msg_type = 2; + optional uint32 email_format = 3; + repeated CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; + optional uint32 source_gc = 6; + repeated CMsgAMSendEmail.ReplacementToken tokens = 7; +} + +message CMsgAMSendEmailResponse { + optional uint32 eresult = 1 [default = 2]; +} + +message CMsgGCGetEmailTemplate { + optional uint32 app_id = 1; + optional uint32 email_msg_type = 2; + optional int32 email_lang = 3; + optional int32 email_format = 4; +} + +message CMsgGCGetEmailTemplateResponse { + optional uint32 eresult = 1 [default = 2]; + optional bool template_exists = 2; + optional string template = 3; +} + +message CMsgAMGrantGuestPasses2 { + optional fixed64 steam_id = 1; + optional uint32 package_id = 2; + optional int32 passes_to_grant = 3; + optional int32 days_to_expiration = 4; + optional int32 action = 5; +} + +message CMsgAMGrantGuestPasses2Response { + optional int32 eresult = 1 [default = 2]; + optional int32 passes_granted = 2 [default = 0]; +} + +message CGCSystemMsg_GetAccountDetails { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional fixed64 steamid = 1; + optional uint32 appid = 2; +} + +message CGCSystemMsg_GetAccountDetails_Response { + option (msgpool_soft_limit) = 128; + option (msgpool_hard_limit) = 512; + + optional uint32 eresult_deprecated = 1 [default = 2]; + optional string account_name = 2; + optional string persona_name = 3; + optional bool is_profile_public = 4; + optional bool is_inventory_public = 5; + optional bool is_vac_banned = 7; + optional bool is_cyber_cafe = 8; + optional bool is_school_account = 9; + optional bool is_limited = 10; + optional bool is_subscribed = 11; + optional uint32 package = 12; + optional bool is_free_trial_account = 13; + optional uint32 free_trial_expiration = 14; + optional bool is_low_violence = 15; + optional bool is_account_locked_down = 16; + optional bool is_community_banned = 17; + optional bool is_trade_banned = 18; + optional uint32 trade_ban_expiration = 19; + optional uint32 accountid = 20; + optional uint32 suspension_end_time = 21; + optional string currency = 22; + optional uint32 steam_level = 23; + optional uint32 friend_count = 24; + optional uint32 account_creation_time = 25; + optional bool is_steamguard_enabled = 27; + optional bool is_phone_verified = 28; + optional bool is_two_factor_auth_enabled = 29; + optional uint32 two_factor_enabled_time = 30; + optional uint32 phone_verification_time = 31; + optional uint64 phone_id = 33; + optional bool is_phone_identifying = 34; + optional uint32 rt_identity_linked = 35; + optional uint32 rt_birth_date = 36; + optional string txn_country_code = 37; + optional bool has_accepted_china_ssa = 38; + optional bool is_banned_steam_china = 39; +} + +message CMsgGCGetPersonaNames { + repeated fixed64 steamids = 1; +} + +message CMsgGCGetPersonaNames_Response { + message PersonaName { + optional fixed64 steamid = 1; + optional string persona_name = 2; + } + + repeated CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; + repeated fixed64 failed_lookup_steamids = 2; +} + +message CMsgGCCheckFriendship { + optional fixed64 steamid_left = 1; + optional fixed64 steamid_right = 2; +} + +message CMsgGCCheckFriendship_Response { + optional bool success = 1; + optional bool found_friendship = 2; +} + +message CMsgGCMsgMasterSetDirectory { + message SubGC { + optional uint32 dir_index = 1; + optional string name = 2; + optional string box = 3; + optional string command_line = 4; + optional string gc_binary = 5; + } + + optional uint32 master_dir_index = 1; + repeated CMsgGCMsgMasterSetDirectory.SubGC dir = 2; +} + +message CMsgGCMsgMasterSetDirectory_Response { + optional int32 eresult = 1 [default = 2]; + optional string message = 2; +} + +message CMsgGCMsgWebAPIJobRequestForwardResponse { + optional uint32 dir_index = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Request { + optional fixed64 steamid = 1; +} + +message CGCSystemMsg_GetPurchaseTrust_Response { + optional bool has_prior_purchase_history = 1; + optional bool has_no_recent_password_resets = 2; + optional bool is_wallet_cash_trusted = 3; + optional uint32 time_all_trusted = 4; +} + +message CMsgGCHAccountVacStatusChange { + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional uint32 rtime_vacban_starts = 3; + optional bool is_banned_now = 4; + optional bool is_banned_future = 5; +} + +message CMsgGCGetPartnerAccountLink { + optional fixed64 steamid = 1; +} + +message CMsgGCGetPartnerAccountLink_Response { + optional uint32 pwid = 1; + optional uint32 nexonid = 2; + optional int32 ageclass = 3; + optional bool id_verified = 4 [default = true]; + optional bool is_adult = 5; +} + +message CMsgGCRoutingInfo { + enum RoutingMethod { + RANDOM = 0; + DISCARD = 1; + CLIENT_STEAMID = 2; + PROTOBUF_FIELD_UINT64 = 3; + WEBAPI_PARAM_UINT64 = 4; + } + + repeated uint32 dir_index = 1; + optional CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; + optional CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; + optional uint32 protobuf_field = 4; + optional string webapi_param = 5; +} + +message CMsgGCMsgMasterSetWebAPIRouting { + message Entry { + optional string interface_name = 1; + optional string method_name = 2; + optional CMsgGCRoutingInfo routing = 3; + } + + repeated CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetClientMsgRouting { + message Entry { + optional uint32 msg_type = 1; + optional CMsgGCRoutingInfo routing = 2; + } + + repeated CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; +} + +message CMsgGCMsgMasterSetWebAPIRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgMasterSetClientMsgRouting_Response { + optional int32 eresult = 1 [default = 2]; +} + +message CMsgGCMsgSetOptions { + message MessageRange { + required uint32 low = 1; + required uint32 high = 2; + } + + enum Option { + NOTIFY_USER_SESSIONS = 0; + NOTIFY_SERVER_SESSIONS = 1; + NOTIFY_ACHIEVEMENTS = 2; + NOTIFY_VAC_ACTION = 3; + } + + repeated CMsgGCMsgSetOptions.Option options = 1; + repeated CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; +} + +message CMsgGCHUpdateSession { + message ExtraField { + optional string name = 1; + optional string value = 2; + } + + optional fixed64 steam_id = 1; + optional uint32 app_id = 2; + optional bool online = 3; + optional fixed64 server_steam_id = 4; + optional uint32 server_addr = 5; + optional uint32 server_port = 6; + optional uint32 os_type = 7; + optional uint32 client_addr = 8; + repeated CMsgGCHUpdateSession.ExtraField extra_fields = 9; + optional fixed64 owner_id = 10; + optional uint32 cm_session_sysid = 11; + optional uint32 cm_session_identifier = 12; + repeated uint32 depot_ids = 13; +} + +message CMsgNotificationOfSuspiciousActivity { + message MultipleGameInstances { + optional uint32 app_instance_count = 1; + repeated fixed64 other_steamids = 2; + } + + optional fixed64 steamid = 1; + optional uint32 appid = 2; + optional CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; +} + +message CMsgDPPartnerMicroTxns { + message PartnerMicroTxn { + optional uint32 init_time = 1; + optional uint32 last_update_time = 2; + optional uint64 txn_id = 3; + optional uint32 account_id = 4; + optional uint32 line_item = 5; + optional uint64 item_id = 6; + optional uint32 def_index = 7; + optional uint64 price = 8; + optional uint64 tax = 9; + optional uint64 price_usd = 10; + optional uint64 tax_usd = 11; + optional uint32 purchase_type = 12; + optional uint32 steam_txn_type = 13; + optional string country_code = 14; + optional string region_code = 15; + optional int32 quantity = 16; + optional uint64 ref_trans_id = 17; + } + + message PartnerInfo { + optional uint32 partner_id = 1; + optional string partner_name = 2; + optional string currency_code = 3; + optional string currency_name = 4; + } + + optional uint32 appid = 1; + optional string gc_name = 2; + optional CMsgDPPartnerMicroTxns.PartnerInfo partner = 3; + repeated CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4; +} + +message CMsgDPPartnerMicroTxnsResponse { + enum EErrorCode { + k_MsgValid = 0; + k_MsgInvalidAppID = 1; + k_MsgInvalidPartnerInfo = 2; + k_MsgNoTransactions = 3; + k_MsgSQLFailure = 4; + k_MsgPartnerInfoDiscrepancy = 5; + k_MsgTransactionInsertFailed = 7; + k_MsgAlreadyRunning = 8; + k_MsgInvalidTransactionData = 9; + } + + optional uint32 eresult = 1 [default = 2]; + optional CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid]; +} + +message CChinaAgreementSessions_StartAgreementSessionInGame_Request { + optional uint32 appid = 1; + optional fixed64 steamid = 2; + optional string client_ipaddress = 3; +} + +message CChinaAgreementSessions_StartAgreementSessionInGame_Response { + optional string agreement_url = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_base.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_base.proto new file mode 100644 index 00000000..4f6dad05 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_base.proto @@ -0,0 +1,303 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; +option (force_php_generation) = true; + +extend google.protobuf.MessageOptions { + optional int32 msgpool_soft_limit = 50000 [default = 32]; + optional int32 msgpool_hard_limit = 50001 [default = 384]; +} + +extend google.protobuf.FileOptions { + optional bool force_php_generation = 50000 [default = false]; +} + +extend google.protobuf.FieldOptions { + optional bool php_output_always_number = 50020 [default = false]; + optional bool allow_field_named_steam_id = 50024 [default = false]; +} + +enum EBanContentCheckResult { + k_EBanContentCheckResult_NotScanned = 0; + k_EBanContentCheckResult_Reset = 1; + k_EBanContentCheckResult_NeedsChecking = 2; + k_EBanContentCheckResult_VeryUnlikely = 5; + k_EBanContentCheckResult_Unlikely = 30; + k_EBanContentCheckResult_Possible = 50; + k_EBanContentCheckResult_Likely = 75; + k_EBanContentCheckResult_VeryLikely = 100; +} + +enum EProtoClanEventType { + k_EClanOtherEvent = 1; + k_EClanGameEvent = 2; + k_EClanPartyEvent = 3; + k_EClanMeetingEvent = 4; + k_EClanSpecialCauseEvent = 5; + k_EClanMusicAndArtsEvent = 6; + k_EClanSportsEvent = 7; + k_EClanTripEvent = 8; + k_EClanChatEvent = 9; + k_EClanGameReleaseEvent = 10; + k_EClanBroadcastEvent = 11; + k_EClanSmallUpdateEvent = 12; + k_EClanPreAnnounceMajorUpdateEvent = 13; + k_EClanMajorUpdateEvent = 14; + k_EClanDLCReleaseEvent = 15; + k_EClanFutureReleaseEvent = 16; + k_EClanESportTournamentStreamEvent = 17; + k_EClanDevStreamEvent = 18; + k_EClanFamousStreamEvent = 19; + k_EClanGameSalesEvent = 20; + k_EClanGameItemSalesEvent = 21; + k_EClanInGameBonusXPEvent = 22; + k_EClanInGameLootEvent = 23; + k_EClanInGamePerksEvent = 24; + k_EClanInGameChallengeEvent = 25; + k_EClanInGameContestEvent = 26; + k_EClanIRLEvent = 27; + k_EClanNewsEvent = 28; + k_EClanBetaReleaseEvent = 29; + k_EClanInGameContentReleaseEvent = 30; + k_EClanFreeTrial = 31; + k_EClanSeasonRelease = 32; + k_EClanSeasonUpdate = 33; + k_EClanCrosspostEvent = 34; + k_EClanInGameEventGeneral = 35; +} + +enum PartnerEventNotificationType { + k_EEventStart = 0; + k_EEventBroadcastStart = 1; + k_EEventMatchStart = 2; + k_EEventPartnerMaxType = 3; +} + +message CMsgIPAddress { + oneof ip { + fixed32 v4 = 1; + bytes v6 = 2; + } +} + +message CMsgIPAddressBucket { + optional CMsgIPAddress original_ip_address = 1; + optional fixed64 bucket = 2; +} + +message CMsgProtoBufHeader { + optional fixed64 steamid = 1; + optional int32 client_sessionid = 2; + optional uint32 routing_appid = 3; + optional fixed64 jobid_source = 10 [default = 18446744073709551615]; + optional fixed64 jobid_target = 11 [default = 18446744073709551615]; + optional string target_job_name = 12; + optional int32 seq_num = 24; + optional int32 eresult = 13 [default = 2]; + optional string error_message = 14; + optional uint32 auth_account_flags = 16; + optional uint32 token_source = 22; + optional bool admin_spoofing_user = 23; + optional int32 transport_error = 17 [default = 1]; + optional uint64 messageid = 18 [default = 18446744073709551615]; + optional uint32 publisher_group_id = 19; + optional uint32 sysid = 20; + optional uint64 trace_tag = 21; + optional uint32 webapi_key_id = 25; + optional bool is_from_external_source = 26; + repeated uint32 forward_to_sysid = 27; + optional uint32 cm_sysid = 28; + optional uint32 launcher_type = 31 [default = 0]; + optional uint32 realm = 32 [default = 0]; + optional int32 timeout_ms = 33 [default = -1]; + optional string debug_source = 34; + + oneof ip_addr { + uint32 ip = 15; + bytes ip_v6 = 29; + } +} + +message CMsgMulti { + optional uint32 size_unzipped = 1; + optional bytes message_body = 2; +} + +message CMsgProtobufWrapped { + optional bytes message_body = 1; +} + +message CMsgAuthTicket { + optional uint32 estate = 1; + optional uint32 eresult = 2 [default = 2]; + optional fixed64 steamid = 3; + optional fixed64 gameid = 4; + optional uint32 h_steam_pipe = 5; + optional uint32 ticket_crc = 6; + optional bytes ticket = 7; +} + +message CCDDBAppDetailCommon { + optional uint32 appid = 1; + optional string name = 2; + optional string icon = 3; + optional bool tool = 6; + optional bool demo = 7; + optional bool media = 8; + optional bool community_visible_stats = 9; + optional string friendly_name = 10; + optional string propagation = 11; + optional bool has_adult_content = 12; + optional bool is_visible_in_steam_china = 13; + optional uint32 app_type = 14; +} + +message CMsgAppRights { + optional bool edit_info = 1; + optional bool publish = 2; + optional bool view_error_data = 3; + optional bool download = 4; + optional bool upload_cdkeys = 5; + optional bool generate_cdkeys = 6; + optional bool view_financials = 7; + optional bool manage_ceg = 8; + optional bool manage_signing = 9; + optional bool manage_cdkeys = 10; + optional bool edit_marketing = 11; + optional bool economy_support = 12; + optional bool economy_support_supervisor = 13; + optional bool manage_pricing = 14; + optional bool broadcast_live = 15; + optional bool view_marketing_traffic = 16; + optional bool edit_store_display_content = 17; +} + +message CCuratorPreferences { + optional uint32 supported_languages = 1; + optional bool platform_windows = 2; + optional bool platform_mac = 3; + optional bool platform_linux = 4; + optional bool vr_content = 5; + optional bool adult_content_violence = 6; + optional bool adult_content_sex = 7; + optional uint32 timestamp_updated = 8; + repeated uint32 tagids_curated = 9; + repeated uint32 tagids_filtered = 10; + optional string website_title = 11; + optional string website_url = 12; + optional string discussion_url = 13; + optional bool show_broadcast = 14; +} + +message CLocalizationToken { + optional uint32 language = 1; + optional string localized_string = 2; +} + +message CClanEventUserNewsTuple { + optional uint32 clanid = 1; + optional fixed64 event_gid = 2; + optional fixed64 announcement_gid = 3; + optional uint32 rtime_start = 4; + optional uint32 rtime_end = 5; + optional uint32 priority_score = 6; + optional uint32 type = 7; + optional uint32 clamp_range_slot = 8; + optional uint32 appid = 9; + optional uint32 rtime32_last_modified = 10; +} + +message CClanMatchEventByRange { + optional uint32 rtime_before = 1; + optional uint32 rtime_after = 2; + optional uint32 qualified = 3; + repeated CClanEventUserNewsTuple events = 4; +} + +message CCommunity_ClanAnnouncementInfo { + optional uint64 gid = 1; + optional uint64 clanid = 2; + optional uint64 posterid = 3; + optional string headline = 4; + optional uint32 posttime = 5; + optional uint32 updatetime = 6; + optional string body = 7; + optional int32 commentcount = 8; + repeated string tags = 9; + optional int32 language = 10; + optional bool hidden = 11; + optional fixed64 forum_topic_id = 12; + optional fixed64 event_gid = 13; + optional int32 voteupcount = 14; + optional int32 votedowncount = 15; + optional EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned]; +} + +message CClanEventData { + optional fixed64 gid = 1; + optional fixed64 clan_steamid = 2; + optional string event_name = 3; + optional EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent]; + optional uint32 appid = 5; + optional string server_address = 6; + optional string server_password = 7; + optional uint32 rtime32_start_time = 8; + optional uint32 rtime32_end_time = 9; + optional int32 comment_count = 10; + optional fixed64 creator_steamid = 11; + optional fixed64 last_update_steamid = 12; + optional string event_notes = 13; + optional string jsondata = 14; + optional CCommunity_ClanAnnouncementInfo announcement_body = 15; + optional bool published = 16; + optional bool hidden = 17; + optional uint32 rtime32_visibility_start = 18; + optional uint32 rtime32_visibility_end = 19; + optional uint32 broadcaster_accountid = 20; + optional uint32 follower_count = 21; + optional uint32 ignore_count = 22; + optional fixed64 forum_topic_id = 23; + optional uint32 rtime32_last_modified = 24; + optional fixed64 news_post_gid = 25; + optional uint32 rtime_mod_reviewed = 26; + optional uint32 featured_app_tagid = 27; + repeated uint32 referenced_appids = 28; + optional uint32 build_id = 29; + optional string build_branch = 30; +} + +message CBilling_Address { + optional string first_name = 1; + optional string last_name = 2; + optional string address1 = 3; + optional string address2 = 4; + optional string city = 5; + optional string us_state = 6; + optional string country_code = 7; + optional string postcode = 8; + optional int32 zip_plus4 = 9; + optional string phone = 10; +} + +message CPackageReservationStatus { + optional uint32 packageid = 1; + optional int32 reservation_state = 2; + optional int32 queue_position = 3; + optional int32 total_queue_size = 4; + optional string reservation_country_code = 5; + optional bool expired = 6; + optional uint32 time_expires = 7; + optional uint32 time_reserved = 8; +} + +message CMsgKeyValuePair { + optional string name = 1; + optional string value = 2; +} + +message CMsgKeyValueSet { + repeated CMsgKeyValuePair pairs = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_cloud.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_cloud.steamworkssdk.proto new file mode 100644 index 00000000..f4cddd84 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_cloud.steamworkssdk.proto @@ -0,0 +1,70 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +message CCloud_GetUploadServerInfo_Request { + optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."]; +} + +message CCloud_GetUploadServerInfo_Response { + optional string server_url = 1; +} + +message CCloud_GetFileDetails_Request { + optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."]; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_UserFile { + optional uint32 appid = 1; + optional uint64 ugcid = 2; + optional string filename = 3; + optional uint64 timestamp = 4; + optional uint32 file_size = 5; + optional string url = 6; + optional fixed64 steamid_creator = 7; +} + +message CCloud_GetFileDetails_Response { + optional CCloud_UserFile details = 1; +} + +message CCloud_EnumerateUserFiles_Request { + optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."]; + optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."]; + optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."]; + optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."]; +} + +message CCloud_EnumerateUserFiles_Response { + repeated CCloud_UserFile files = 1; + optional uint32 total_files = 2; +} + +message CCloud_Delete_Request { + optional string filename = 1; + optional uint32 appid = 2 [(description) = "App ID the file belongs to."]; +} + +message CCloud_Delete_Response { +} + +service Cloud { + option (service_description) = "A service for Steam Cloud operations."; + + rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) { + option (method_description) = "Returns the URL of the proper cloud server for a user."; + } + + rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) { + option (method_description) = "Returns details on a Cloud file."; + } + + rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) { + option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time."; + } + + rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) { + option (method_description) = "Deletes a file from the user's cloud."; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_gamenetworkingui.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_gamenetworkingui.proto new file mode 100644 index 00000000..410ca84a --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_gamenetworkingui.proto @@ -0,0 +1,44 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steamnetworkingsockets_messages.proto"; +import "s2/steamdatagram_messages_sdr.proto"; + +option optimize_for = SPEED; +option cc_generic_services = true; + +message CGameNetworkingUI_GlobalState { +} + +message CGameNetworkingUI_ConnectionState { + optional string connection_key = 1; + optional uint32 appid = 2; + optional fixed32 connection_id_local = 3; + optional string identity_local = 4; + optional string identity_remote = 5; + optional uint32 connection_state = 10; + optional uint32 start_time = 12; + optional uint32 close_time = 13; + optional uint32 close_reason = 14; + optional string close_message = 15; + optional string status_loc_token = 16; + optional uint32 transport_kind = 20; + optional string sdrpopid_local = 21; + optional string sdrpopid_remote = 22; + optional string address_remote = 23; + optional CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; + optional uint32 ping_interior = 25; + optional uint32 ping_remote_front = 26; + optional uint32 ping_default_internet_route = 27; + optional CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; + optional CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; + optional uint64 e2e_quality_remote_instantaneous_time = 32; + optional uint64 e2e_quality_remote_lifetime_time = 33; + optional CMsgSteamDatagramConnectionQuality front_quality_local = 40; + optional CMsgSteamDatagramConnectionQuality front_quality_remote = 41; + optional uint64 front_quality_remote_instantaneous_time = 42; + optional uint64 front_quality_remote_lifetime_time = 43; +} + +message CGameNetworkingUI_Message { + repeated CGameNetworkingUI_ConnectionState connection_state = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_helprequest.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_helprequest.steamworkssdk.proto new file mode 100644 index 00000000..f458a05d --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_helprequest.steamworkssdk.proto @@ -0,0 +1,24 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +message CHelpRequestLogs_UploadUserApplicationLog_Request { + optional uint32 appid = 1; + optional string log_type = 2; + optional string version_string = 3; + optional string log_contents = 4; +} + +message CHelpRequestLogs_UploadUserApplicationLog_Response { + optional uint64 id = 1; +} + +service HelpRequestLogs { + option (service_description) = "Service for dealing with user-submitted logs"; + + rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { + option (method_description) = "User uploading application logs"; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_oauth.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_oauth.steamworkssdk.proto new file mode 100644 index 00000000..4ccb29d8 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_oauth.steamworkssdk.proto @@ -0,0 +1,20 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +message COAuthToken_ImplicitGrantNoPrompt_Request { + optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; +} + +message COAuthToken_ImplicitGrantNoPrompt_Response { + optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; + optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; +} + +service OAuthToken { + option (service_description) = "Service containing methods to manage OAuth tokens"; + + rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { + option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_player.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_player.steamworkssdk.proto new file mode 100644 index 00000000..4f66411b --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_player.steamworkssdk.proto @@ -0,0 +1,256 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +option cc_generic_services = true; + +enum ENotificationSetting { + k_ENotificationSettingNotifyUseDefault = 0; + k_ENotificationSettingAlways = 1; + k_ENotificationSettingNever = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Request { +} + +message CPlayer_IncomingInviteMutualFriendList { + optional fixed64 steamid = 1; + repeated uint32 mutual_friend_account_ids = 2; +} + +message CPlayer_GetMutualFriendsForIncomingInvites_Response { + repeated CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetFriendsGameplayInfo_Response { + message FriendsGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + } + + message OwnGameplayInfo { + optional fixed64 steamid = 1; + optional uint32 minutes_played = 2; + optional uint32 minutes_played_forever = 3; + optional bool in_wishlist = 4; + optional bool owned = 5; + } + + optional CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1; + repeated CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2; + repeated CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3; + repeated CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4; + repeated CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5; + repeated CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6; +} + +message CPlayer_GetGameBadgeLevels_Request { + optional uint32 appid = 1; +} + +message CPlayer_GetGameBadgeLevels_Response { + message Badge { + optional int32 level = 1; + optional int32 series = 2; + optional uint32 border_color = 3; + } + + optional uint32 player_level = 1; + repeated CPlayer_GetGameBadgeLevels_Response.Badge badges = 2; +} + +message CPlayer_GetLastPlayedTimes_Request { + optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"]; +} + +message CPlayer_GetLastPlayedTimes_Response { + message Game { + optional int32 appid = 1; + optional uint32 last_playtime = 2; + optional int32 playtime_2weeks = 3; + optional int32 playtime_forever = 4; + optional uint32 first_playtime = 5; + } + + repeated CPlayer_GetLastPlayedTimes_Response.Game games = 1; +} + +message CPlayer_AcceptSSA_Request { +} + +message CPlayer_AcceptSSA_Response { +} + +message CPlayer_GetNicknameList_Request { +} + +message CPlayer_GetNicknameList_Response { + message PlayerNickname { + optional fixed32 accountid = 1; + optional string nickname = 2; + } + + repeated CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1; +} + +message CPlayer_GetPerFriendPreferences_Request { +} + +message PerFriendPreferences { + optional fixed32 accountid = 1; + optional string nickname = 2; + optional ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault]; + optional ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault]; +} + +message CPlayer_GetPerFriendPreferences_Response { + repeated PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Request { + optional PerFriendPreferences preferences = 1; +} + +message CPlayer_SetPerFriendPreferences_Response { +} + +message CPlayer_AddFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."]; +} + +message CPlayer_AddFriend_Response { + optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."]; + optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"]; +} + +message CPlayer_RemoveFriend_Request { + optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."]; +} + +message CPlayer_RemoveFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_IgnoreFriend_Request { + optional fixed64 steamid = 1; + optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "]; +} + +message CPlayer_IgnoreFriend_Response { + optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"]; +} + +message CPlayer_GetCommunityPreferences_Request { +} + +message CPlayer_CommunityPreferences { + optional bool hide_adult_content_violence = 1 [default = true]; + optional bool hide_adult_content_sex = 2 [default = true]; + optional bool parenthesize_nicknames = 4 [default = false]; + optional uint32 timestamp_updated = 3; +} + +message CPlayer_GetCommunityPreferences_Response { + optional CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Request { + optional CPlayer_CommunityPreferences preferences = 1; +} + +message CPlayer_SetCommunityPreferences_Response { +} + +message CPlayer_GetNewSteamAnnouncementState_Request { + optional int32 language = 1; +} + +message CPlayer_GetNewSteamAnnouncementState_Response { + optional int32 state = 1; + optional string announcement_headline = 2; + optional string announcement_url = 3; + optional uint32 time_posted = 4; + optional uint64 announcement_gid = 5; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Request { + optional uint64 announcement_gid = 1; + optional uint32 time_posted = 2; +} + +message CPlayer_UpdateSteamAnnouncementLastRead_Response { +} + +service Player { + option (service_description) = "A service for accessing Steam player data"; + + rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) { + option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans)."; + } + + rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) { + option (method_description) = "Get a list of friends who are playing, have played, own, or want a game"; + } + + rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) { + option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil"; + } + + rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) { + option (method_description) = "Gets the last-played times for the account"; + } + + rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) { + option (method_description) = "User is accepting the SSA"; + } + + rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) { + option (method_description) = "Gets the list of nicknames this user has for other users"; + } + + rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) { + option (method_description) = "Gets the list of per-friend preferences this user has set for other users"; + } + + rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) { + option (method_description) = "Sets the logged in user's per-friend preferences for the given user"; + } + + rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) { + option (method_description) = "Invites another Steam user to be a friend"; + } + + rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) { + option (method_description) = "Removes a friend or ignores a friend suggestion"; + } + + rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) { + option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend."; + } + + rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) { + option (method_description) = "Returns the player's community preferences"; + } + + rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) { + option (method_description) = "Sets the player's community preferences"; + } + + rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) { + option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available"; + } + + rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) { + option (method_description) = "Marks latest announcement timestamp read by user"; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_publishedfile.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_publishedfile.steamworkssdk.proto new file mode 100644 index 00000000..a08f37f6 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_publishedfile.steamworkssdk.proto @@ -0,0 +1,235 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +message CPublishedFile_Subscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Subscribe_Response { +} + +message CPublishedFile_Unsubscribe_Request { + optional uint64 publishedfileid = 1; + optional uint32 list_type = 2; + optional int32 appid = 3; + optional bool notify_client = 4; +} + +message CPublishedFile_Unsubscribe_Response { +} + +message CPublishedFile_Publish_Request { + optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."]; + optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."]; + optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."]; + optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."]; + optional string title = 5 [(description) = "Text title for the published file."]; + optional string file_description = 6 [(description) = "Text description for the published file."]; + optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."]; + optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."]; + optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."]; + optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."]; + optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"]; + optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."]; + repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."]; + optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."]; + optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."]; + optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."]; +} + +message CPublishedFile_Publish_Response { + optional uint64 publishedfileid = 1; + optional string redirect_uri = 2; +} + +message CPublishedFile_GetDetails_Request { + repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."]; + optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."]; + optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."]; + optional bool includechildren = 4 [(description) = "If true, return children in the returned details."]; + optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."]; + optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."]; + optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."]; +} + +message PublishedFileDetails { + message Tag { + optional string tag = 1; + optional bool adminonly = 2; + } + + message Preview { + optional uint64 previewid = 1; + optional uint32 sortorder = 2; + optional string url = 3; + optional uint32 size = 4; + optional string filename = 5; + optional string youtubevideoid = 6; + } + + message Child { + optional uint64 publishedfileid = 1; + optional uint32 sortorder = 2; + optional uint32 file_type = 3; + } + + message KVTag { + optional string key = 1; + optional string value = 2; + } + + message VoteData { + optional float score = 1; + optional uint32 votes_up = 2; + optional uint32 votes_down = 3; + } + + optional uint32 result = 1; + optional uint64 publishedfileid = 2; + optional fixed64 creator = 3; + optional uint32 creator_appid = 4; + optional uint32 consumer_appid = 5; + optional uint32 consumer_shortcutid = 6; + optional string filename = 7; + optional uint64 file_size = 8; + optional uint64 preview_file_size = 9; + optional string file_url = 10; + optional string preview_url = 11; + optional string youtubevideoid = 12; + optional string url = 13; + optional fixed64 hcontent_file = 14; + optional fixed64 hcontent_preview = 15; + optional string title = 16; + optional string file_description = 17; + optional string short_description = 18; + optional uint32 time_created = 19; + optional uint32 time_updated = 20; + optional uint32 visibility = 21; + optional uint32 flags = 22; + optional bool workshop_file = 23; + optional bool workshop_accepted = 24; + optional bool show_subscribe_all = 25; + optional int32 num_comments_developer = 26; + optional int32 num_comments_public = 27; + optional bool banned = 28; + optional string ban_reason = 29; + optional fixed64 banner = 30; + optional bool can_be_deleted = 31; + optional bool incompatible = 32; + optional string app_name = 33; + optional uint32 file_type = 34; + optional bool can_subscribe = 35; + optional uint32 subscriptions = 36; + optional uint32 favorited = 37; + optional uint32 followers = 38; + optional uint32 lifetime_subscriptions = 39; + optional uint32 lifetime_favorited = 40; + optional uint32 lifetime_followers = 41; + optional uint32 views = 42; + optional uint32 image_width = 43; + optional uint32 image_height = 44; + optional string image_url = 45; + optional bool spoiler_tag = 46; + optional uint32 shortcutid = 47; + optional string shortcutname = 48; + optional uint32 num_children = 49; + optional uint32 num_reports = 50; + repeated PublishedFileDetails.Preview previews = 51; + repeated PublishedFileDetails.Tag tags = 52; + repeated PublishedFileDetails.Child children = 53; + repeated PublishedFileDetails.KVTag kvtags = 54; + optional PublishedFileDetails.VoteData vote_data = 55; + optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"]; +} + +message CPublishedFile_GetDetails_Response { + repeated PublishedFileDetails publishedfiledetails = 1; +} + +message CPublishedFile_GetUserFiles_Request { + optional uint32 appid = 1 [(description) = "App Id to retrieve published files from."]; + optional uint32 page = 3 [default = 1, (description) = "(Optional) Starting page for results."]; + optional uint32 numperpage = 4 [default = 1, (description) = "(Optional) The number of results, per page to return."]; + optional string sortmethod = 6 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."]; + optional bool totalonly = 7 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."]; + optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."]; + optional bool ids_only = 10 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."]; + repeated string requiredtags = 11 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."]; + repeated string excludedtags = 12 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."]; +} + +message CPublishedFile_GetUserFiles_Response { + message App { + optional uint32 appid = 1; + optional string name = 2; + optional uint32 shortcutid = 3; + optional bool private = 4; + } + + optional uint32 total = 1; + optional uint32 startindex = 2; + repeated PublishedFileDetails publishedfiledetails = 3; + repeated CPublishedFile_GetUserFiles_Response.App apps = 4; +} + +message CPublishedFile_Update_Request { + optional uint32 appid = 1 [(description) = "App Id this published file belongs to."]; + optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like update."]; + optional string title = 3 [(description) = "(Optional) Title of the published file."]; + optional string file_description = 4 [(description) = "(Optional) Description of the published file."]; + optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."]; + repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."]; + optional string filename = 7 [(description) = "(Optional) Filename for the published file."]; + optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."]; +} + +message CPublishedFile_Update_Response { +} + +message CPublishedFile_RefreshVotingQueue_Request { + optional uint32 appid = 1; + optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"]; + repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."]; + optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."]; + repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."]; + optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"]; +} + +message CPublishedFile_RefreshVotingQueue_Response { +} + +service PublishedFile { + option (service_description) = "A service to access published file data"; + + rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) { + option (method_description) = "Subscribes the user to the published file"; + } + + rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) { + option (method_description) = "Unsubscribes the user from the published file"; + } + + rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) { + option (method_description) = "Publishes a clouded user file to the Workshop."; + } + + rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) { + option (method_description) = "Retrieves information about a set of published files."; + } + + rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) { + option (method_description) = "Retrieves files published by a user."; + } + + rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) { + option (method_description) = "Updates information about a published file."; + } + + rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) { + option (method_description) = "Refresh the voting queue for the user"; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_steamlearn.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_steamlearn.steamworkssdk.proto new file mode 100644 index 00000000..727b74a8 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_steamlearn.steamworkssdk.proto @@ -0,0 +1,359 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steammessages_unified_base.steamworkssdk.proto"; + +enum ESteamLearnDataType { + STEAMLEARN_DATATYPE_INVALID = 0; + STEAMLEARN_DATATYPE_INT32 = 1; + STEAMLEARN_DATATYPE_FLOAT32 = 2; + STEAMLEARN_DATATYPE_BOOL = 3; + STEAMLEARN_DATATYPE_STRING = 4; + STEAMLEARN_DATATYPE_OBJECT = 5; +} + +enum ESteammLearnRegisterDataSourceResult { + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR = 0; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_CREATED = 1; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_SUCCESS_FOUND = 2; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_GENERIC = 3; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_NAME = 4; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_VERSION = 5; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_CHANGED = 6; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_DATA_INVALID = 7; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_FORBIDDEN = 8; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_DISABLED = 10; +} + +enum ESteamLearnCacheDataResult { + STEAMLEARN_CACHE_DATA_ERROR = 0; + STEAMLEARN_CACHE_DATA_SUCCESS = 1; + STEAMLEARN_CACHE_DATA_ERROR_UNKNOWN_DATA_SOURCE = 2; + STEAMLEARN_CACHE_DATA_ERROR_UNCACHED_DATA_SOURCE = 3; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_KEYS = 4; + STEAMLEARN_CACHE_DATA_ERROR_FORBIDDEN = 5; + STEAMLEARN_CACHE_DATA_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_CACHE_DATA_DISABLED = 7; +} + +enum ESteamLearnSnapshotProjectResult { + STEAMLEARN_SNAPSHOT_PROJECT_ERROR = 0; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_STORED = 1; + STEAMLEARN_SNAPSHOT_PROJECT_SUCCESS_QUEUED = 2; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PROJECT_ID = 3; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_UNKNOWN_DATA_SOURCE = 4; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_DATA_SOURCE_KEY = 5; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_MISSING_CACHE_DURATION = 6; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_NO_PUBLISHED_CONFIG = 7; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_FORBIDDEN = 8; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_TIMESTAMP = 9; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INTERNAL_DATA_SOURCE_ERROR = 10; + STEAMLEARN_SNAPSHOT_PROJECT_DISABLED = 11; + STEAMLEARN_SNAPSHOT_PROJECT_ERROR_INVALID_PUBLISHED_VERSION = 12; +} + +enum ESteamLearnGetHMACKeysResult { + STEAMLEARN_GET_HMAC_KEYS_SUCCESS = 0; +} + +enum ESteamLearnInferenceResult { + STEAMLEARN_INFERENCE_ERROR = 0; + STEAMLEARN_INFERENCE_SUCCESS = 1; + STEAMLEARN_INFERENCE_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_ERROR_MISSING_CACHED_SCHEMA_DATA = 3; + STEAMLEARN_INFERENCE_ERROR_NO_PUBLISHED_CONFIG = 4; + STEAMLEARN_INFERENCE_ERROR_FORBIDDEN = 5; + STEAMLEARN_INFERENCE_ERROR_INVALID_TIMESTAMP = 6; + STEAMLEARN_INFERENCE_ERROR_INVALID_PUBLISHED_VERSION = 7; + STEAMLEARN_INFERENCE_ERROR_NO_FETCH_ID_FOUND = 8; + STEAMLEARN_INFERENCE_ERROR_TOO_BUSY = 9; +} + +enum ESteamLearnInferenceMetadataResult { + STEAMLEARN_INFERENCE_METADATA_ERROR = 0; + STEAMLEARN_INFERENCE_METADATA_SUCCESS = 1; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PROJECT_ID = 2; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_PUBLISHED_CONFIG = 3; + STEAMLEARN_INFERENCE_METADATA_ERROR_FORBIDDEN = 4; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_TIMESTAMP = 5; + STEAMLEARN_INFERENCE_METADATA_ERROR_INVALID_PUBLISHED_VERSION = 6; + STEAMLEARN_INFERENCE_METADATA_ERROR_NO_FETCH_ID_FOUND = 7; +} + +message CMsgSteamLearnDataSourceDescObject { + repeated CMsgSteamLearnDataSourceDescElement elements = 1; +} + +message CMsgSteamLearnDataSourceDescElement { + optional string name = 1; + optional ESteamLearnDataType data_type = 2 [default = STEAMLEARN_DATATYPE_INVALID]; + optional CMsgSteamLearnDataSourceDescObject object = 3; + optional uint32 count = 4; +} + +message CMsgSteamLearnDataSource { + optional uint32 id = 1; + optional string name = 2; + optional uint32 version = 3; + optional string source_description = 4; + optional CMsgSteamLearnDataSourceDescObject structure = 5; + optional uint32 structure_crc = 6; + optional uint32 cache_duration_seconds = 7; +} + +message CMsgSteamLearnDataObject { + repeated CMsgSteamLearnDataElement elements = 1; +} + +message CMsgSteamLearnDataElement { + optional string name = 1; + repeated int32 data_int32s = 20; + repeated float data_floats = 21; + repeated bool data_bools = 22; + repeated string data_strings = 23; + repeated CMsgSteamLearnDataObject data_objects = 24; +} + +message CMsgSteamLearnData { + optional uint32 data_source_id = 1; + repeated uint64 keys = 2; + optional CMsgSteamLearnDataObject data_object = 3; +} + +message CMsgSteamLearnDataList { + repeated CMsgSteamLearnData data = 1; +} + +message CMsgSteamLearn_AccessData { + optional uint32 publisher_id = 1; + optional uint32 timestamp = 2; + optional uint64 random_value = 3; +} + +message CMsgSteamLearn_RegisterDataSource_Request { + optional string access_token = 1; + optional CMsgSteamLearn_AccessData access_data = 2; + optional CMsgSteamLearnDataSource data_source = 3; +} + +message CMsgSteamLearn_RegisterDataSource_Response { + optional ESteammLearnRegisterDataSourceResult result = 1 [default = STEAMLEARN_REGISTER_DATA_SOURCE_RESULT_ERROR]; + optional CMsgSteamLearnDataSource data_source = 2; +} + +message CMsgSteamLearn_CacheData_Request { + optional string access_token = 1; + optional CMsgSteamLearn_AccessData access_data = 2; + optional CMsgSteamLearnData data = 3; +} + +message CMsgSteamLearn_CacheData_Response { + optional ESteamLearnCacheDataResult cache_data_result = 1 [default = STEAMLEARN_CACHE_DATA_ERROR]; +} + +message CMsgSteamLearn_SnapshotProject_Request { + optional string access_token = 1; + optional CMsgSteamLearn_AccessData access_data = 2; + optional uint32 project_id = 3; + optional uint32 published_version = 7; + repeated uint64 keys = 4; + repeated CMsgSteamLearnData data = 5; + optional uint32 pending_data_limit_seconds = 6; +} + +message CMsgSteamLearn_SnapshotProject_Response { + optional ESteamLearnSnapshotProjectResult snapshot_result = 1 [default = STEAMLEARN_SNAPSHOT_PROJECT_ERROR]; +} + +message CMsgSteamLearn_BatchOperation_Request { + repeated CMsgSteamLearn_CacheData_Request cache_data_requests = 1; + repeated CMsgSteamLearn_SnapshotProject_Request snapshot_requests = 2; +} + +message CMsgSteamLearn_BatchOperation_Response { + repeated CMsgSteamLearn_CacheData_Response cache_data_responses = 1; + repeated CMsgSteamLearn_SnapshotProject_Response snapshot_responses = 2; +} + +message CMsgSteamLearnHMACKeys { + message CacheDataKeys { + optional uint32 data_source_id = 1; + optional uint32 version = 3; + optional string key = 2; + } + + message SnapshotProjectKeys { + optional uint32 project_id = 1; + optional uint32 published_version = 3; + optional string key = 2; + } + + optional string register_data_source_key = 1; + repeated CMsgSteamLearnHMACKeys.CacheDataKeys cache_data_keys = 2; + repeated CMsgSteamLearnHMACKeys.SnapshotProjectKeys snapshot_project_keys = 3; +} + +message CMsgSteamLearn_GetHMACKeys_Request { + optional uint32 appid = 1; +} + +message CMsgSteamLearn_GetHMACKeys_Response { + optional ESteamLearnGetHMACKeysResult result = 1 [default = STEAMLEARN_GET_HMAC_KEYS_SUCCESS]; + optional CMsgSteamLearnHMACKeys keys = 2; +} + +message CMsgSteamLearn_Inference_Request { + optional string access_token = 1; + optional CMsgSteamLearn_AccessData access_data = 2; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; + optional CMsgSteamLearnDataList data = 6; + repeated float additional_data = 7; +} + +message CMsgSteamLearn_InferenceMetadata_Request { + optional string access_token = 1; + optional CMsgSteamLearn_AccessData access_data = 2; + optional uint32 project_id = 3; + optional uint32 published_version = 4; + optional uint32 override_train_id = 5; +} + +message CMsgSteamLearn_InferenceMetadataBackend_Request { + optional uint32 project_id = 1; + optional uint32 fetch_id = 2; +} + +message CMsgSteamLearn_InferenceMetadata_Response { + message RowRange { + optional uint64 min_row = 1; + optional uint64 max_row = 2; + } + + message Range { + optional string data_element_path = 1; + optional float min_value = 2; + optional float max_value = 3; + } + + message StdDev { + optional string data_element_path = 1; + optional float mean = 2; + optional float std_dev = 3; + } + + message CompactTable { + message Entry { + optional uint32 value = 1; + optional uint32 mapping = 2; + optional uint64 count = 3; + } + + message MapValuesEntry { + optional uint32 key = 1; + optional CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + message MapMappingsEntry { + optional uint32 key = 1; + optional CMsgSteamLearn_InferenceMetadata_Response.CompactTable.Entry value = 2; + } + + optional string name = 1; + repeated CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapValuesEntry map_values = 2; + repeated CMsgSteamLearn_InferenceMetadata_Response.CompactTable.MapMappingsEntry map_mappings = 3; + } + + message KMeans { + message Cluster { + optional float x = 1; + optional float y = 2; + optional float radius = 3; + optional float radius_75pct = 4; + optional float radius_50pct = 5; + optional float radius_25pct = 6; + } + + optional string name = 1; + repeated CMsgSteamLearn_InferenceMetadata_Response.KMeans.Cluster clusters = 2; + } + + message SnapshotHistogram { + optional float min_value = 1; + optional float max_value = 2; + optional uint32 num_buckets = 3; + repeated uint32 bucket_counts = 4; + } + + optional ESteamLearnInferenceMetadataResult inference_metadata_result = 1 [default = STEAMLEARN_INFERENCE_METADATA_ERROR]; + optional CMsgSteamLearn_InferenceMetadata_Response.RowRange row_range = 2; + repeated CMsgSteamLearn_InferenceMetadata_Response.Range ranges = 3; + repeated CMsgSteamLearn_InferenceMetadata_Response.StdDev std_devs = 4; + repeated CMsgSteamLearn_InferenceMetadata_Response.CompactTable compact_tables = 5; + repeated CMsgSteamLearn_InferenceMetadata_Response.KMeans kmeans = 6; + optional CMsgSteamLearn_InferenceMetadata_Response.SnapshotHistogram snapshot_histogram = 7; +} + +message CMsgSteamLearn_InferenceBackend_Response { + message BinaryCrossEntropyOutput { + optional float value = 1; + } + + message MutliBinaryCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + } + + message CategoricalCrossEntropyOutput { + repeated float weight = 1; + repeated float value = 2; + } + + message Output { + oneof ResponseType { + .CMsgSteamLearn_InferenceBackend_Response.BinaryCrossEntropyOutput binary_crossentropy = 1; + .CMsgSteamLearn_InferenceBackend_Response.CategoricalCrossEntropyOutput categorical_crossentropy = 2; + .CMsgSteamLearn_InferenceBackend_Response.MutliBinaryCrossEntropyOutput multi_binary_crossentropy = 3; + } + } + + repeated CMsgSteamLearn_InferenceBackend_Response.Output outputs = 1; +} + +message CMsgSteamLearn_Inference_Response { + optional ESteamLearnInferenceResult inference_result = 1 [default = STEAMLEARN_INFERENCE_ERROR]; + optional CMsgSteamLearn_InferenceBackend_Response backend_response = 2; +} + +service SteamLearn { + option (service_description) = "Service for submitting data, training, and inferencing with SteamLearn."; + + rpc RegisterDataSource (.CMsgSteamLearn_RegisterDataSource_Request) returns (.CMsgSteamLearn_RegisterDataSource_Response) { + option (method_description) = "Registers a data desc (or finds a data desc if it's already registered)."; + } + + rpc CacheData (.CMsgSteamLearn_CacheData_Request) returns (.CMsgSteamLearn_CacheData_Response) { + option (method_description) = "Updates a cached data entry."; + } + + rpc SnapshotProject (.CMsgSteamLearn_SnapshotProject_Request) returns (.CMsgSteamLearn_SnapshotProject_Response) { + option (method_description) = "Snapshots the current data for a project."; + } + + rpc BatchOperation (.CMsgSteamLearn_BatchOperation_Request) returns (.CMsgSteamLearn_BatchOperation_Response) { + option (method_description) = "Batches multiple data updates, snapshots, and inference requests into a single call"; + } + + rpc GetHMACKeys (.CMsgSteamLearn_GetHMACKeys_Request) returns (.CMsgSteamLearn_GetHMACKeys_Response) { + option (method_description) = "Gets the HMAC keys needed for registering data sources, submitting data to them, and snapshotting projects"; + } + + rpc Inference (.CMsgSteamLearn_Inference_Request) returns (.CMsgSteamLearn_Inference_Response) { + option (method_description) = "Inferences using supplied data, or data associated with the specified key."; + } + + rpc InferenceMetadata (.CMsgSteamLearn_InferenceMetadata_Request) returns (.CMsgSteamLearn_InferenceMetadata_Response) { + option (method_description) = "Requests the metadata that was generated from a specified fetch."; + } +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steammessages_unified_base.steamworkssdk.proto b/pkg/demoinfocs/msgs2/proto/s2/steammessages_unified_base.steamworkssdk.proto new file mode 100644 index 00000000..11b4309f --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steammessages_unified_base.steamworkssdk.proto @@ -0,0 +1,32 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +extend google.protobuf.FieldOptions { + optional string description = 50000; +} + +extend google.protobuf.ServiceOptions { + optional string service_description = 50000; + optional EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; +} + +extend google.protobuf.MethodOptions { + optional string method_description = 50000; +} + +extend google.protobuf.EnumOptions { + optional string enum_description = 50000; +} + +extend google.protobuf.EnumValueOptions { + optional string enum_value_description = 50000; +} + +enum EProtoExecutionSite { + k_EProtoExecutionSiteUnknown = 0; + k_EProtoExecutionSiteSteamClient = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages.proto b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages.proto new file mode 100644 index 00000000..df14b48d --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages.proto @@ -0,0 +1,207 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steamnetworkingsockets_messages_certs.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingSocketsCipher { + k_ESteamNetworkingSocketsCipher_INVALID = 0; + k_ESteamNetworkingSocketsCipher_NULL = 1; + k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2; +} + +message CMsgSteamDatagramSessionCryptInfo { + enum EKeyType { + INVALID = 0; + CURVE25519 = 1; + } + + optional CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 nonce = 3; + optional uint32 protocol_version = 4; + repeated ESteamNetworkingSocketsCipher ciphers = 5; +} + +message CMsgSteamDatagramSessionCryptInfoSigned { + optional bytes info = 1; + optional bytes signature = 2; +} + +message CMsgSteamDatagramDiagnostic { + optional uint32 severity = 1; + optional string text = 2; +} + +message CMsgSteamDatagramLinkInstantaneousStats { + optional uint32 out_packets_per_sec_x10 = 1; + optional uint32 out_bytes_per_sec = 2; + optional uint32 in_packets_per_sec_x10 = 3; + optional uint32 in_bytes_per_sec = 4; + optional uint32 ping_ms = 5; + optional uint32 packets_dropped_pct = 6; + optional uint32 packets_weird_sequence_pct = 7; + optional uint32 peak_jitter_usec = 8; +} + +message CMsgSteamDatagramLinkLifetimeStats { + optional uint32 connected_seconds = 2; + optional uint64 packets_sent = 3; + optional uint64 kb_sent = 4; + optional uint64 packets_recv = 5; + optional uint64 kb_recv = 6; + optional uint64 packets_recv_sequenced = 7; + optional uint64 packets_recv_dropped = 8; + optional uint64 packets_recv_out_of_order = 9; + optional uint64 packets_recv_out_of_order_corrected = 15; + optional uint64 packets_recv_duplicate = 10; + optional uint64 packets_recv_lurch = 11; + repeated uint64 multipath_packets_recv_sequenced = 12; + repeated uint64 multipath_packets_recv_later = 13; + optional uint32 multipath_send_enabled = 14; + optional uint32 quality_histogram_100 = 21; + optional uint32 quality_histogram_99 = 22; + optional uint32 quality_histogram_97 = 23; + optional uint32 quality_histogram_95 = 24; + optional uint32 quality_histogram_90 = 25; + optional uint32 quality_histogram_75 = 26; + optional uint32 quality_histogram_50 = 27; + optional uint32 quality_histogram_1 = 28; + optional uint32 quality_histogram_dead = 29; + optional uint32 quality_ntile_2nd = 30; + optional uint32 quality_ntile_5th = 31; + optional uint32 quality_ntile_25th = 32; + optional uint32 quality_ntile_50th = 33; + optional uint32 ping_histogram_25 = 41; + optional uint32 ping_histogram_50 = 42; + optional uint32 ping_histogram_75 = 43; + optional uint32 ping_histogram_100 = 44; + optional uint32 ping_histogram_125 = 45; + optional uint32 ping_histogram_150 = 46; + optional uint32 ping_histogram_200 = 47; + optional uint32 ping_histogram_300 = 48; + optional uint32 ping_histogram_max = 49; + optional uint32 ping_ntile_5th = 50; + optional uint32 ping_ntile_50th = 51; + optional uint32 ping_ntile_75th = 52; + optional uint32 ping_ntile_95th = 53; + optional uint32 ping_ntile_98th = 54; + optional uint32 jitter_histogram_negligible = 61; + optional uint32 jitter_histogram_1 = 62; + optional uint32 jitter_histogram_2 = 63; + optional uint32 jitter_histogram_5 = 64; + optional uint32 jitter_histogram_10 = 65; + optional uint32 jitter_histogram_20 = 66; + optional uint32 txspeed_max = 67; + optional uint32 txspeed_histogram_16 = 68; + optional uint32 txspeed_histogram_32 = 69; + optional uint32 txspeed_histogram_64 = 70; + optional uint32 txspeed_histogram_128 = 71; + optional uint32 txspeed_histogram_256 = 72; + optional uint32 txspeed_histogram_512 = 73; + optional uint32 txspeed_histogram_1024 = 74; + optional uint32 txspeed_histogram_max = 75; + optional uint32 txspeed_ntile_5th = 76; + optional uint32 txspeed_ntile_50th = 77; + optional uint32 txspeed_ntile_75th = 78; + optional uint32 txspeed_ntile_95th = 79; + optional uint32 txspeed_ntile_98th = 80; + optional uint32 rxspeed_max = 81; + optional uint32 rxspeed_histogram_16 = 82; + optional uint32 rxspeed_histogram_32 = 83; + optional uint32 rxspeed_histogram_64 = 84; + optional uint32 rxspeed_histogram_128 = 85; + optional uint32 rxspeed_histogram_256 = 86; + optional uint32 rxspeed_histogram_512 = 87; + optional uint32 rxspeed_histogram_1024 = 88; + optional uint32 rxspeed_histogram_max = 89; + optional uint32 rxspeed_ntile_5th = 90; + optional uint32 rxspeed_ntile_50th = 91; + optional uint32 rxspeed_ntile_75th = 92; + optional uint32 rxspeed_ntile_95th = 93; + optional uint32 rxspeed_ntile_98th = 94; +} + +message CMsgSteamDatagramConnectionQuality { + optional CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1; + optional CMsgSteamDatagramLinkLifetimeStats lifetime = 2; +} + +message CMsgICECandidate { + optional string candidate = 3; +} + +message CMsgICERendezvous { + message Auth { + optional string pwd_frag = 1; + } + + optional CMsgICERendezvous.Auth auth = 2; + optional CMsgICECandidate add_candidate = 1; +} + +message CMsgSteamNetworkingP2PRendezvous { + message ConnectRequest { + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 6; + optional CMsgSteamDatagramCertificateSigned cert = 7; + optional uint32 to_virtual_port = 9; + optional uint32 from_virtual_port = 10; + optional string from_fakeip = 11; + } + + message ConnectOK { + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 5; + optional CMsgSteamDatagramCertificateSigned cert = 6; + } + + message ConnectionClosed { + optional string debug = 5; + optional uint32 reason_code = 6; + } + + message ReliableMessage { + optional CMsgICERendezvous ice = 1; + } + + message ApplicationMessage { + optional bytes data = 1; + optional uint64 msg_num = 2; + optional uint32 flags = 3; + optional uint32 lane_idx = 4; + } + + optional string from_identity = 8; + optional fixed32 from_connection_id = 9; + optional string to_identity = 10; + optional fixed32 to_connection_id = 1; + optional bytes sdr_routes = 2; + optional uint32 ack_peer_routes_revision = 3; + optional bool ice_enabled = 7; + optional bytes hosted_server_ticket = 14; + optional CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4; + optional CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5; + optional CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6; + optional uint32 ack_reliable_msg = 11; + optional uint32 first_reliable_msg = 12; + repeated CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13; + repeated CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15; +} + +message CMsgSteamNetworkingICESessionSummary { + optional uint32 failure_reason_code = 7; + optional uint32 local_candidate_types = 1; + optional uint32 remote_candidate_types = 2; + optional uint32 initial_route_kind = 3; + optional uint32 initial_ping = 4; + optional uint32 initial_score = 6; + optional uint32 negotiation_ms = 5; + optional uint32 best_route_kind = 16; + optional uint32 best_ping = 17; + optional uint32 best_score = 18; + optional uint32 best_time = 19; + optional uint32 selected_seconds = 12; + optional uint32 user_settings = 13; + optional uint32 ice_enable_var = 14; + optional uint32 local_candidate_types_allowed = 15; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_certs.proto b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_certs.proto new file mode 100644 index 00000000..3728acee --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_certs.proto @@ -0,0 +1,41 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +option optimize_for = SPEED; +option cc_generic_services = false; + +message CMsgSteamNetworkingIdentityLegacyBinary { + optional fixed64 steam_id = 16; + optional string xbox_pairwise_id = 17; + optional bytes generic_bytes = 2; + optional string generic_string = 3; + optional bytes ipv6_and_port = 4; +} + +message CMsgSteamDatagramCertificate { + enum EKeyType { + INVALID = 0; + ED25519 = 1; + } + + optional CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; + optional bytes key_data = 2; + optional fixed64 legacy_steam_id = 4; + optional CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; + optional string identity_string = 12; + repeated fixed32 gameserver_datacenter_ids = 5; + optional fixed32 time_created = 8; + optional fixed32 time_expiry = 9; + repeated uint32 app_ids = 10; + repeated string ip_addresses = 13; +} + +message CMsgSteamDatagramCertificateSigned { + optional bytes cert = 4; + optional fixed64 ca_key_id = 5; + optional bytes ca_signature = 6; + optional bytes private_key_data = 1; +} + +message CMsgSteamDatagramCertificateRequest { + optional CMsgSteamDatagramCertificate cert = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_udp.proto b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_udp.proto new file mode 100644 index 00000000..38d7deae --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/steamnetworkingsockets_messages_udp.proto @@ -0,0 +1,77 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/steamnetworkingsockets_messages_certs.proto"; +import "s2/steamnetworkingsockets_messages.proto"; + +option optimize_for = SPEED; +option cc_generic_services = false; + +enum ESteamNetworkingUDPMsgID { + k_ESteamNetworkingUDPMsg_ChallengeRequest = 32; + k_ESteamNetworkingUDPMsg_ChallengeReply = 33; + k_ESteamNetworkingUDPMsg_ConnectRequest = 34; + k_ESteamNetworkingUDPMsg_ConnectOK = 35; + k_ESteamNetworkingUDPMsg_ConnectionClosed = 36; + k_ESteamNetworkingUDPMsg_NoConnection = 37; +} + +message CMsgSteamSockets_UDP_ChallengeRequest { + optional fixed32 connection_id = 1; + optional fixed64 my_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ChallengeReply { + optional fixed32 connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 your_timestamp = 3; + optional uint32 protocol_version = 4; +} + +message CMsgSteamSockets_UDP_ConnectRequest { + optional fixed32 client_connection_id = 1; + optional fixed64 challenge = 2; + optional fixed64 my_timestamp = 5; + optional uint32 ping_est_ms = 6; + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional CMsgSteamDatagramCertificateSigned cert = 4; + optional uint32 legacy_protocol_version = 8; + optional string identity_string = 10; + optional fixed64 legacy_client_steam_id = 3; + optional CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9; +} + +message CMsgSteamSockets_UDP_ConnectOK { + optional fixed32 client_connection_id = 1; + optional fixed32 server_connection_id = 5; + optional fixed64 your_timestamp = 3; + optional uint32 delay_time_usec = 4; + optional CMsgSteamDatagramSessionCryptInfoSigned crypt = 7; + optional CMsgSteamDatagramCertificateSigned cert = 8; + optional string identity_string = 11; + optional fixed64 legacy_server_steam_id = 2; + optional CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10; +} + +message CMsgSteamSockets_UDP_ConnectionClosed { + optional fixed32 to_connection_id = 4; + optional fixed32 from_connection_id = 5; + optional string debug = 2; + optional uint32 reason_code = 3; +} + +message CMsgSteamSockets_UDP_NoConnection { + optional fixed32 from_connection_id = 2; + optional fixed32 to_connection_id = 3; +} + +message CMsgSteamSockets_UDP_Stats { + enum Flags { + ACK_REQUEST_E2E = 2; + ACK_REQUEST_IMMEDIATE = 4; + NOT_PRIMARY_TRANSPORT_E2E = 16; + } + + optional CMsgSteamDatagramConnectionQuality stats = 1; + optional uint32 flags = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/te.proto b/pkg/demoinfocs/msgs2/proto/s2/te.proto new file mode 100644 index 00000000..c3853af8 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/te.proto @@ -0,0 +1,261 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum ETEProtobufIds { + TE_EffectDispatchId = 400; + TE_ArmorRicochetId = 401; + TE_BeamEntPointId = 402; + TE_BeamEntsId = 403; + TE_BeamPointsId = 404; + TE_BeamRingId = 405; + TE_BSPDecalId = 407; + TE_BubblesId = 408; + TE_BubbleTrailId = 409; + TE_DecalId = 410; + TE_WorldDecalId = 411; + TE_EnergySplashId = 412; + TE_FizzId = 413; + TE_ShatterSurfaceId = 414; + TE_GlowSpriteId = 415; + TE_ImpactId = 416; + TE_MuzzleFlashId = 417; + TE_BloodStreamId = 418; + TE_ExplosionId = 419; + TE_DustId = 420; + TE_LargeFunnelId = 421; + TE_SparksId = 422; + TE_PhysicsPropId = 423; + TE_PlayerDecalId = 424; + TE_ProjectedDecalId = 425; + TE_SmokeId = 426; +} + +message CMsgTEArmorRicochet { + optional CMsgVector pos = 1; + optional CMsgVector dir = 2; +} + +message CMsgTEBaseBeam { + optional fixed64 modelindex = 1; + optional fixed64 haloindex = 2; + optional uint32 startframe = 3; + optional uint32 framerate = 4; + optional float life = 5; + optional float width = 6; + optional float endwidth = 7; + optional uint32 fadelength = 8; + optional float amplitude = 9; + optional fixed32 color = 10; + optional uint32 speed = 11; + optional uint32 flags = 12; +} + +message CMsgTEBeamEntPoint { + optional CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; + optional CMsgVector start = 4; + optional CMsgVector end = 5; +} + +message CMsgTEBeamEnts { + optional CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBeamPoints { + optional CMsgTEBaseBeam base = 1; + optional CMsgVector start = 2; + optional CMsgVector end = 3; +} + +message CMsgTEBeamRing { + optional CMsgTEBaseBeam base = 1; + optional uint32 startentity = 2; + optional uint32 endentity = 3; +} + +message CMsgTEBSPDecal { + optional CMsgVector origin = 1; + optional CMsgVector normal = 2; + optional CMsgVector saxis = 3; + optional int32 entity = 4 [default = -1]; + optional uint32 index = 5; +} + +message CMsgTEBubbles { + optional CMsgVector mins = 1; + optional CMsgVector maxs = 2; + optional float height = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEBubbleTrail { + optional CMsgVector mins = 1; + optional CMsgVector maxs = 2; + optional float waterz = 3; + optional uint32 count = 4; + optional float speed = 5; +} + +message CMsgTEDecal { + optional CMsgVector origin = 1; + optional CMsgVector start = 2; + optional int32 entity = 3 [default = -1]; + optional uint32 hitbox = 4; + optional uint32 index = 5; +} + +message CMsgEffectData { + optional CMsgVector origin = 1; + optional CMsgVector start = 2; + optional CMsgVector normal = 3; + optional CMsgQAngle angles = 4; + optional fixed32 entity = 5 [default = 16777215]; + optional fixed32 otherentity = 6 [default = 16777215]; + optional float scale = 7; + optional float magnitude = 8; + optional float radius = 9; + optional fixed32 surfaceprop = 10; + optional fixed64 effectindex = 11; + optional uint32 damagetype = 12; + optional uint32 material = 13; + optional uint32 hitbox = 14; + optional uint32 color = 15; + optional uint32 flags = 16; + optional int32 attachmentindex = 17; + optional uint32 effectname = 18; + optional uint32 attachmentname = 19; +} + +message CMsgTEEffectDispatch { + optional CMsgEffectData effectdata = 1; +} + +message CMsgTEEnergySplash { + optional CMsgVector pos = 1; + optional CMsgVector dir = 2; + optional bool explosive = 3; +} + +message CMsgTEFizz { + optional int32 entity = 1 [default = -1]; + optional uint32 density = 2; + optional int32 current = 3; +} + +message CMsgTEShatterSurface { + optional CMsgVector origin = 1; + optional CMsgQAngle angles = 2; + optional CMsgVector force = 3; + optional CMsgVector forcepos = 4; + optional float width = 5; + optional float height = 6; + optional float shardsize = 7; + optional uint32 surfacetype = 8; + optional fixed32 frontcolor = 9; + optional fixed32 backcolor = 10; +} + +message CMsgTEGlowSprite { + optional CMsgVector origin = 1; + optional float scale = 2; + optional float life = 3; + optional uint32 brightness = 4; +} + +message CMsgTEImpact { + optional CMsgVector origin = 1; + optional CMsgVector normal = 2; + optional uint32 type = 3; +} + +message CMsgTEMuzzleFlash { + optional CMsgVector origin = 1; + optional CMsgQAngle angles = 2; + optional float scale = 3; + optional uint32 type = 4; +} + +message CMsgTEBloodStream { + optional CMsgVector origin = 1; + optional CMsgVector direction = 2; + optional fixed32 color = 3; + optional uint32 amount = 4; +} + +message CMsgTEExplosion { + optional CMsgVector origin = 1; + optional uint32 framerate = 2; + optional uint32 flags = 3; + optional CMsgVector normal = 4; + optional uint32 materialtype = 5; + optional uint32 radius = 6; + optional uint32 magnitude = 7; + optional float scale = 8; + optional bool affect_ragdolls = 9; + optional string effect_name = 10; + optional uint32 explosion_type = 11; +} + +message CMsgTEDust { + optional CMsgVector origin = 1; + optional float size = 2; + optional float speed = 3; + optional CMsgVector direction = 4; +} + +message CMsgTELargeFunnel { + optional CMsgVector origin = 1; + optional uint32 reversed = 2; +} + +message CMsgTESparks { + optional CMsgVector origin = 1; + optional uint32 magnitude = 2; + optional uint32 length = 3; + optional CMsgVector direction = 4; +} + +message CMsgTEPhysicsProp { + optional CMsgVector origin = 1; + optional CMsgVector velocity = 2; + optional CMsgQAngle angles = 3; + optional fixed32 skin = 4; + optional uint32 flags = 5; + optional uint32 effects = 6; + optional fixed32 color = 7; + optional fixed64 modelindex = 8; + optional uint32 unused_breakmodelsnottomake = 9; + optional float scale = 10; + optional CMsgVector dmgpos = 11; + optional CMsgVector dmgdir = 12; + optional int32 dmgtype = 13; +} + +message CMsgTEPlayerDecal { + optional CMsgVector origin = 1; + optional int32 player = 2 [default = -1]; + optional int32 entity = 3 [default = -1]; +} + +message CMsgTEProjectedDecal { + optional CMsgVector origin = 1; + optional CMsgQAngle angles = 2; + optional uint32 index = 3; + optional float distance = 4; +} + +message CMsgTESmoke { + optional CMsgVector origin = 1; + optional float scale = 2; +} + +message CMsgTEWorldDecal { + optional CMsgVector origin = 1; + optional CMsgVector normal = 2; + optional uint32 index = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/uifontfile_format.proto b/pkg/demoinfocs/msgs2/proto/s2/uifontfile_format.proto new file mode 100644 index 00000000..18602074 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/uifontfile_format.proto @@ -0,0 +1,15 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +message CUIFontFilePB { + optional string font_file_name = 1; + optional bytes opentype_font_data = 2; +} + +message CUIFontFilePackagePB { + message CUIEncryptedFontFilePB { + optional bytes encrypted_contents = 1; + } + + required uint32 package_version = 1; + repeated CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/usercmd.proto b/pkg/demoinfocs/msgs2/proto/s2/usercmd.proto new file mode 100644 index 00000000..5cd0c720 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/usercmd.proto @@ -0,0 +1,39 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +message CInButtonStatePB { + optional uint64 buttonstate1 = 1; + optional uint64 buttonstate2 = 2; + optional uint64 buttonstate3 = 3; +} + +message CSubtickMoveStep { + optional uint64 button = 1; + optional bool pressed = 2; + optional float when = 3; +} + +message CBaseUserCmdPB { + optional int32 command_number = 1; + optional int32 tick_count = 2; + optional CInButtonStatePB buttons_pb = 3; + optional CMsgQAngle viewangles = 4; + optional float forwardmove = 5; + optional float leftmove = 6; + optional float upmove = 7; + optional int32 impulse = 8; + optional int32 weaponselect = 9; + optional int32 random_seed = 10; + optional int32 mousedx = 11; + optional int32 mousedy = 12; + optional bool hasbeenpredicted = 13; + optional uint32 pawn_entity_handle = 14 [default = 16777215]; + repeated CSubtickMoveStep subtick_moves = 18; + optional bytes move_crc = 19; + optional uint32 consumed_server_angle_changes = 20; +} + +message CUserCmdBasePB { + optional CBaseUserCmdPB base = 1; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/usermessages.proto b/pkg/demoinfocs/msgs2/proto/s2/usermessages.proto new file mode 100644 index 00000000..e1467343 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/usermessages.proto @@ -0,0 +1,700 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "s2/networkbasetypes.proto"; + +enum EBaseUserMessages { + UM_AchievementEvent = 101; + UM_CloseCaption = 102; + UM_CloseCaptionDirect = 103; + UM_CurrentTimescale = 104; + UM_DesiredTimescale = 105; + UM_Fade = 106; + UM_GameTitle = 107; + UM_HudMsg = 110; + UM_HudText = 111; + UM_ColoredText = 113; + UM_RequestState = 114; + UM_ResetHUD = 115; + UM_Rumble = 116; + UM_SayText = 117; + UM_SayText2 = 118; + UM_SayTextChannel = 119; + UM_Shake = 120; + UM_ShakeDir = 121; + UM_TextMsg = 124; + UM_ScreenTilt = 125; + UM_VoiceMask = 128; + UM_SendAudio = 130; + UM_ItemPickup = 131; + UM_AmmoDenied = 132; + UM_ShowMenu = 134; + UM_CreditsMsg = 135; + UM_CloseCaptionPlaceholder = 142; + UM_CameraTransition = 143; + UM_AudioParameter = 144; + UM_ParticleManager = 145; + UM_HudError = 146; + UM_CustomGameEvent = 148; + UM_AnimGraphUpdate = 149; + UM_HapticsManagerPulse = 150; + UM_HapticsManagerEffect = 151; + UM_CommandQueueState = 152; + UM_UpdateCssClasses = 153; + UM_ServerFrameTime = 154; + UM_LagCompensationError = 155; + UM_RequestDllStatus = 156; + UM_RequestUtilAction = 157; + UM_UtilActionResponse = 158; + UM_DllStatusResponse = 159; + UM_RequestInventory = 160; + UM_InventoryResponse = 161; + UM_RequestDiagnostic = 162; + UM_DiagnosticResponse = 163; + UM_MAX_BASE = 200; +} + +enum EBaseEntityMessages { + EM_PlayJingle = 136; + EM_ScreenOverlay = 137; + EM_RemoveAllDecals = 138; + EM_PropagateForce = 139; + EM_DoSpark = 140; + EM_FixAngle = 141; +} + +enum eRollType { + ROLL_NONE = -1; + ROLL_STATS = 0; + ROLL_CREDITS = 1; + ROLL_LATE_JOIN_LOGO = 2; + ROLL_OUTTRO = 3; +} + +enum PARTICLE_MESSAGE { + GAME_PARTICLE_MANAGER_EVENT_CREATE = 0; + GAME_PARTICLE_MANAGER_EVENT_UPDATE = 1; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6; + GAME_PARTICLE_MANAGER_EVENT_DESTROY = 7; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8; + GAME_PARTICLE_MANAGER_EVENT_RELEASE = 9; + GAME_PARTICLE_MANAGER_EVENT_LATENCY = 10; + GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11; + GAME_PARTICLE_MANAGER_EVENT_FROZEN = 12; + GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT = 13; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION = 14; + GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES = 15; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXT = 16; + GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW = 17; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL = 18; + GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT = 19; + GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE = 20; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG = 21; + GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT = 22; + GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED = 23; + GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME = 24; + GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE = 25; + GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT = 26; + GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM = 27; + GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE = 28; +} + +enum EHapticPulseType { + VR_HAND_HAPTIC_PULSE_LIGHT = 0; + VR_HAND_HAPTIC_PULSE_MEDIUM = 1; + VR_HAND_HAPTIC_PULSE_STRONG = 2; +} + +message CUserMessageAchievementEvent { + optional uint32 achievement = 1; +} + +message CUserMessageCloseCaption { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionDirect { + optional fixed32 hash = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCloseCaptionPlaceholder { + optional string string = 1; + optional float duration = 2; + optional bool from_player = 3; + optional int32 ent_index = 4 [default = -1]; +} + +message CUserMessageCurrentTimescale { + optional float current = 1; +} + +message CUserMessageDesiredTimescale { + optional float desired = 1; + optional float acceleration = 2; + optional float minblendrate = 3; + optional float blenddeltamultiplier = 4; +} + +message CUserMessageFade { + optional uint32 duration = 1; + optional uint32 hold_time = 2; + optional uint32 flags = 3; + optional fixed32 color = 4; +} + +message CUserMessageShake { + optional uint32 command = 1; + optional float amplitude = 2; + optional float frequency = 3; + optional float duration = 4; +} + +message CUserMessageShakeDir { + optional CUserMessageShake shake = 1; + optional CMsgVector direction = 2; +} + +message CUserMessageScreenTilt { + optional uint32 command = 1; + optional bool ease_in_out = 2; + optional CMsgVector angle = 3; + optional float duration = 4; + optional float time = 5; +} + +message CUserMessageSayText { + optional int32 playerindex = 1 [default = -1]; + optional string text = 2; + optional bool chat = 3; +} + +message CUserMessageSayText2 { + optional int32 entityindex = 1 [default = -1]; + optional bool chat = 2; + optional string messagename = 3; + optional string param1 = 4; + optional string param2 = 5; + optional string param3 = 6; + optional string param4 = 7; +} + +message CUserMessageHudMsg { + optional uint32 channel = 1; + optional float x = 2; + optional float y = 3; + optional fixed32 color1 = 4; + optional fixed32 color2 = 5; + optional uint32 effect = 6; + optional string message = 11; +} + +message CUserMessageHudText { + optional string message = 1; +} + +message CUserMessageTextMsg { + optional uint32 dest = 1; + repeated string param = 2; +} + +message CUserMessageGameTitle { +} + +message CUserMessageResetHUD { +} + +message CUserMessageSendAudio { + optional string soundname = 1; + optional bool stop = 2; +} + +message CUserMessageAudioParameter { + optional uint32 parameter_type = 1; + optional uint32 name_hash_code = 2; + optional float value = 3; + optional uint32 int_value = 4; +} + +message CUserMessageVoiceMask { + repeated uint32 gamerules_masks = 1; + repeated uint32 ban_masks = 2; + optional bool mod_enable = 3; +} + +message CUserMessageRequestState { +} + +message CUserMessageRumble { + optional int32 index = 1; + optional int32 data = 2; + optional int32 flags = 3; +} + +message CUserMessageSayTextChannel { + optional int32 player = 1; + optional int32 channel = 2; + optional string text = 3; +} + +message CUserMessageColoredText { + optional uint32 color = 1; + optional string text = 2; + optional bool reset = 3; + optional int32 context_player_slot = 4 [default = -1]; + optional int32 context_value = 5; + optional int32 context_team_id = 6; +} + +message CUserMessageItemPickup { + optional string itemname = 1; +} + +message CUserMessageAmmoDenied { + optional uint32 ammo_id = 1; +} + +message CUserMessageShowMenu { + optional uint32 validslots = 1; + optional uint32 displaytime = 2; + optional bool needmore = 3; + optional string menustring = 4; +} + +message CUserMessageCreditsMsg { + optional eRollType rolltype = 1 [default = ROLL_NONE]; + optional float logo_length = 2; +} + +message CEntityMessagePlayJingle { + optional CEntityMsg entity_msg = 1; +} + +message CEntityMessageScreenOverlay { + optional bool start_effect = 1; + optional CEntityMsg entity_msg = 2; +} + +message CEntityMessageRemoveAllDecals { + optional bool remove_decals = 1; + optional CEntityMsg entity_msg = 2; +} + +message CEntityMessagePropagateForce { + optional CMsgVector impulse = 1; + optional CEntityMsg entity_msg = 2; +} + +message CEntityMessageDoSpark { + optional CMsgVector origin = 1; + optional int32 entityindex = 2 [default = -1]; + optional float radius = 3; + optional fixed32 color = 4; + optional uint32 beams = 5; + optional float thick = 6; + optional float duration = 7; + optional CEntityMsg entity_msg = 8; +} + +message CEntityMessageFixAngle { + optional bool relative = 1; + optional CMsgQAngle angle = 2; + optional CEntityMsg entity_msg = 3; +} + +message CUserMessageCameraTransition { + message Transition_DataDriven { + optional string filename = 1; + optional int32 attach_ent_index = 2 [default = -1]; + optional float duration = 3; + } + + optional uint32 camera_type = 1; + optional float duration = 2; + optional CUserMessageCameraTransition.Transition_DataDriven params_data_driven = 3; +} + +message CUserMsg_ParticleManager { + message ReleaseParticleIndex { + } + + message CreateParticle { + optional fixed64 particle_name_index = 1; + optional int32 attach_type = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + optional uint32 entity_handle_for_modifiers = 4 [default = 16777215]; + optional bool apply_voice_ban_rules = 5; + optional int32 team_behavior = 6; + optional string control_point_configuration = 7; + } + + message DestroyParticle { + optional bool destroy_immediately = 1; + } + + message DestroyParticleInvolving { + optional bool destroy_immediately = 1; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message DestroyParticleNamed { + optional fixed64 particle_name_index = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional bool destroy_immediately = 3; + optional bool play_endcap = 4; + } + + message UpdateParticle_OBSOLETE { + optional int32 control_point = 1; + optional CMsgVector position = 2; + } + + message UpdateParticleFwd_OBSOLETE { + optional int32 control_point = 1; + optional CMsgVector forward = 2; + } + + message UpdateParticleOrient_OBSOLETE { + optional int32 control_point = 1; + optional CMsgVector forward = 2; + optional CMsgVector deprecated_right = 3; + optional CMsgVector up = 4; + optional CMsgVector left = 5; + } + + message UpdateParticleTransform { + optional int32 control_point = 1; + optional CMsgVector position = 2; + optional CMsgQuaternion orientation = 3; + optional float interpolation_interval = 4; + } + + message UpdateParticleFallback { + optional int32 control_point = 1; + optional CMsgVector position = 2; + } + + message UpdateParticleOffset { + optional int32 control_point = 1; + optional CMsgVector origin_offset = 2; + optional CMsgQAngle angle_offset = 3; + } + + message UpdateParticleEnt { + optional int32 control_point = 1; + optional uint32 entity_handle = 2 [default = 16777215]; + optional int32 attach_type = 3; + optional int32 attachment = 4; + optional CMsgVector fallback_position = 5; + optional bool include_wearables = 6; + optional CMsgVector offset_position = 7; + optional CMsgQAngle offset_angles = 8; + } + + message UpdateParticleSetFrozen { + optional bool set_frozen = 1; + optional float transition_duration = 2; + } + + message UpdateParticleShouldDraw { + optional bool should_draw = 1; + } + + message ChangeControlPointAttachment { + optional int32 attachment_old = 1; + optional int32 attachment_new = 2; + optional uint32 entity_handle = 3 [default = 16777215]; + } + + message UpdateEntityPosition { + optional uint32 entity_handle = 1 [default = 16777215]; + optional CMsgVector position = 2; + } + + message SetParticleFoWProperties { + optional int32 fow_control_point = 1; + optional int32 fow_control_point2 = 2; + optional float fow_radius = 3; + } + + message SetParticleShouldCheckFoW { + optional bool check_fow = 1; + } + + message SetControlPointModel { + optional int32 control_point = 1; + optional string model_name = 2; + } + + message SetControlPointSnapshot { + optional int32 control_point = 1; + optional string snapshot_name = 2; + } + + message SetParticleText { + optional string text = 1; + } + + message SetTextureAttribute { + optional string attribute_name = 1; + optional string texture_name = 2; + } + + message SetSceneObjectGenericFlag { + optional bool flag_value = 1; + } + + message SetSceneObjectTintAndDesat { + optional fixed32 tint = 1; + optional float desat = 2; + } + + message ParticleSkipToTime { + optional float skip_to_time = 1; + } + + message ParticleCanFreeze { + optional bool can_freeze = 1; + } + + message ParticleFreezeTransitionOverride { + optional float freeze_transition_override = 1; + } + + message SetParticleNamedValueContext { + message FloatContextValue { + optional uint32 value_name_hash = 1; + optional float value = 2; + } + + message VectorContextValue { + optional uint32 value_name_hash = 1; + optional CMsgVector value = 2; + } + + message TransformContextValue { + optional uint32 value_name_hash = 1; + optional CMsgQAngle angles = 2; + optional CMsgVector translation = 3; + } + + message EHandleContext { + optional uint32 value_name_hash = 1; + optional uint32 ent_index = 2 [default = 16777215]; + } + + repeated CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue float_values = 1; + repeated CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue vector_values = 2; + repeated CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue transform_values = 3; + repeated CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext ehandle_values = 4; + } + + required PARTICLE_MESSAGE type = 1 [default = GAME_PARTICLE_MANAGER_EVENT_CREATE]; + required uint32 index = 2; + optional CUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3; + optional CUserMsg_ParticleManager.CreateParticle create_particle = 4; + optional CUserMsg_ParticleManager.DestroyParticle destroy_particle = 5; + optional CUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6; + optional CUserMsg_ParticleManager.UpdateParticle_OBSOLETE update_particle = 7; + optional CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE update_particle_fwd = 8; + optional CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE update_particle_orient = 9; + optional CUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10; + optional CUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11; + optional CUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12; + optional CUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14; + optional CUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15; + optional CUserMsg_ParticleManager.ChangeControlPointAttachment change_control_point_attachment = 16; + optional CUserMsg_ParticleManager.UpdateEntityPosition update_entity_position = 17; + optional CUserMsg_ParticleManager.SetParticleFoWProperties set_particle_fow_properties = 18; + optional CUserMsg_ParticleManager.SetParticleText set_particle_text = 19; + optional CUserMsg_ParticleManager.SetParticleShouldCheckFoW set_particle_should_check_fow = 20; + optional CUserMsg_ParticleManager.SetControlPointModel set_control_point_model = 21; + optional CUserMsg_ParticleManager.SetControlPointSnapshot set_control_point_snapshot = 22; + optional CUserMsg_ParticleManager.SetTextureAttribute set_texture_attribute = 23; + optional CUserMsg_ParticleManager.SetSceneObjectGenericFlag set_scene_object_generic_flag = 24; + optional CUserMsg_ParticleManager.SetSceneObjectTintAndDesat set_scene_object_tint_and_desat = 25; + optional CUserMsg_ParticleManager.DestroyParticleNamed destroy_particle_named = 26; + optional CUserMsg_ParticleManager.ParticleSkipToTime particle_skip_to_time = 27; + optional CUserMsg_ParticleManager.ParticleCanFreeze particle_can_freeze = 28; + optional CUserMsg_ParticleManager.SetParticleNamedValueContext set_named_value_context = 29; + optional CUserMsg_ParticleManager.UpdateParticleTransform update_particle_transform = 30; + optional CUserMsg_ParticleManager.ParticleFreezeTransitionOverride particle_freeze_transition_override = 31; + + extensions 100 to 201; +} + +message CUserMsg_HudError { + optional int32 order_id = 1; +} + +message CUserMsg_CustomGameEvent { + optional string event_name = 1; + optional bytes data = 2; +} + +message CUserMessageHapticsManagerPulse { + optional int32 hand_id = 1; + optional float effect_amplitude = 2; + optional float effect_frequency = 3; + optional float effect_duration = 4; +} + +message CUserMessageHapticsManagerEffect { + optional int32 hand_id = 1; + optional uint32 effect_name_hash_code = 2; + optional float effect_scale = 3; +} + +message CUserMessageAnimStateGraphState { + optional int32 entity_index = 1; + optional bytes data = 2; +} + +message CUserMessageCommandQueueState { + message command_queue_info_t { + optional uint32 commands_queued = 1; + optional uint32 command_queue_desired_size = 2; + optional uint32 starved_command_ticks = 3; + optional int32 time_dilation_percent = 4; + } + + optional int32 player_slot = 1 [default = -1]; + optional CUserMessageCommandQueueState.command_queue_info_t command_queue_info = 2; +} + +message CUserMessageUpdateCssClasses { + optional int32 target_world_panel = 1; + optional string css_classes = 2; + optional bool is_add = 3; +} + +message CUserMessageServerFrameTime { + optional float frame_time = 1; +} + +message CUserMessageLagCompensationError { + optional float distance = 1; +} + +message CUserMessageRequestDllStatus { + optional string dll_action = 1; + optional bool full_report = 2; +} + +message CUserMessageRequestUtilAction { + optional int32 util1 = 2; + optional int32 util2 = 3; + optional int32 util3 = 4; + optional int32 util4 = 5; + optional int32 util5 = 6; +} + +message CUserMessage_UtilMsg_Response { + message ItemDetail { + optional int32 index = 1; + optional int32 hash = 2; + optional int32 crc = 3; + optional string name = 4; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional fixed32 crc2 = 3; + optional int32 item_count2 = 4; + repeated int32 crc_part = 5; + repeated int32 crc_part2 = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated CUserMessage_UtilMsg_Response.ItemDetail itemdetails = 9; + optional int32 itemgroup = 10; + optional int32 total_count = 11; + optional int32 total_count2 = 12; +} + +message CUserMessage_DllStatus { + message CVDiagnostic { + optional uint32 id = 1; + optional uint32 extended = 2; + optional uint64 value = 3; + optional string string_value = 4; + } + + optional string file_report = 1; + optional string command_line = 2; + optional uint32 total_files = 3; + optional uint32 process_id = 4; + optional int32 osversion = 5; + optional uint64 client_time = 6; + repeated CUserMessage_DllStatus.CVDiagnostic diagnostics = 7; +} + +message CUserMessageRequestInventory { + optional int32 inventory = 1; + optional int32 offset = 2; + optional int32 options = 3; +} + +message CUserMessage_Inventory_Response { + message InventoryDetail { + optional int32 index = 1; + optional int64 primary = 2; + optional int64 offset = 3; + optional int64 first = 4; + optional int64 base = 5; + optional string name = 6; + optional string base_name = 7; + optional int32 base_detail = 8; + optional int32 base_time = 9; + optional int32 base_hash = 10; + } + + optional fixed32 crc = 1; + optional int32 item_count = 2; + optional int32 osversion = 5; + optional int32 perf_time = 6; + optional int32 client_timestamp = 7; + optional int32 platform = 8; + repeated CUserMessage_Inventory_Response.InventoryDetail inventories = 9; + repeated CUserMessage_Inventory_Response.InventoryDetail inventories2 = 10; + repeated CUserMessage_Inventory_Response.InventoryDetail inventories3 = 14; + optional int32 inv_type = 11; + optional int32 build_version = 12; + optional int32 instance = 13; +} + +message CUserMessageRequestDiagnostic { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + optional int32 type = 5; + } + + repeated CUserMessageRequestDiagnostic.Diagnostic diagnostics = 1; +} + +message CUserMessage_Diagnostic_Response { + message Diagnostic { + optional int32 index = 1; + optional int64 offset = 2; + optional int32 param = 3; + optional int32 length = 4; + repeated bytes detail = 5; + optional int64 base = 6; + optional int64 range = 7; + optional int32 type = 8; + } + + repeated CUserMessage_Diagnostic_Response.Diagnostic diagnostics = 1; + optional int32 build_version = 2; + optional int32 instance = 3; +} diff --git a/pkg/demoinfocs/msgs2/proto/s2/valveextensions.proto b/pkg/demoinfocs/msgs2/proto/s2/valveextensions.proto new file mode 100644 index 00000000..d6b85598 --- /dev/null +++ b/pkg/demoinfocs/msgs2/proto/s2/valveextensions.proto @@ -0,0 +1,19 @@ +package com.github.markus_wa.demoinfocs_golang.s2; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.FieldOptions { + optional bool valve_map_field = 61000 [default = false]; + optional bool valve_map_key = 61001 [default = false]; + optional int32 diff_encode_field = 61002 [default = 0]; + optional bool delta_ignore = 61003 [default = false]; + optional uint32 steamml_max_entries = 61004 [default = 0]; + optional bool steamml_is_timestamp = 61005 [default = false]; + optional uint32 steamlearn_count = 61006 [default = 0]; +} + +extend google.protobuf.EnumValueOptions { + optional string schema_friendly_name = 1000; + optional string schema_description = 1001; + optional bool schema_suppress_enumerator = 1002; +} diff --git a/pkg/demoinfocs/msgs2/steammessages.pb.go b/pkg/demoinfocs/msgs2/steammessages.pb.go new file mode 100644 index 00000000..f8bc1dab --- /dev/null +++ b/pkg/demoinfocs/msgs2/steammessages.pb.go @@ -0,0 +1,8088 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/steammessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GCProtoBufMsgSrc int32 + +const ( + GCProtoBufMsgSrc_GCProtoBufMsgSrc_Unspecified GCProtoBufMsgSrc = 0 + GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromSystem GCProtoBufMsgSrc = 1 + GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromSteamID GCProtoBufMsgSrc = 2 + GCProtoBufMsgSrc_GCProtoBufMsgSrc_FromGC GCProtoBufMsgSrc = 3 + GCProtoBufMsgSrc_GCProtoBufMsgSrc_ReplySystem GCProtoBufMsgSrc = 4 +) + +// Enum value maps for GCProtoBufMsgSrc. +var ( + GCProtoBufMsgSrc_name = map[int32]string{ + 0: "GCProtoBufMsgSrc_Unspecified", + 1: "GCProtoBufMsgSrc_FromSystem", + 2: "GCProtoBufMsgSrc_FromSteamID", + 3: "GCProtoBufMsgSrc_FromGC", + 4: "GCProtoBufMsgSrc_ReplySystem", + } + GCProtoBufMsgSrc_value = map[string]int32{ + "GCProtoBufMsgSrc_Unspecified": 0, + "GCProtoBufMsgSrc_FromSystem": 1, + "GCProtoBufMsgSrc_FromSteamID": 2, + "GCProtoBufMsgSrc_FromGC": 3, + "GCProtoBufMsgSrc_ReplySystem": 4, + } +) + +func (x GCProtoBufMsgSrc) Enum() *GCProtoBufMsgSrc { + p := new(GCProtoBufMsgSrc) + *p = x + return p +} + +func (x GCProtoBufMsgSrc) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GCProtoBufMsgSrc) Descriptor() protoreflect.EnumDescriptor { + return file_s2_steammessages_proto_enumTypes[0].Descriptor() +} + +func (GCProtoBufMsgSrc) Type() protoreflect.EnumType { + return &file_s2_steammessages_proto_enumTypes[0] +} + +func (x GCProtoBufMsgSrc) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *GCProtoBufMsgSrc) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = GCProtoBufMsgSrc(num) + return nil +} + +// Deprecated: Use GCProtoBufMsgSrc.Descriptor instead. +func (GCProtoBufMsgSrc) EnumDescriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{0} +} + +type CMsgGCRoutingInfo_RoutingMethod int32 + +const ( + CMsgGCRoutingInfo_RANDOM CMsgGCRoutingInfo_RoutingMethod = 0 + CMsgGCRoutingInfo_DISCARD CMsgGCRoutingInfo_RoutingMethod = 1 + CMsgGCRoutingInfo_CLIENT_STEAMID CMsgGCRoutingInfo_RoutingMethod = 2 + CMsgGCRoutingInfo_PROTOBUF_FIELD_UINT64 CMsgGCRoutingInfo_RoutingMethod = 3 + CMsgGCRoutingInfo_WEBAPI_PARAM_UINT64 CMsgGCRoutingInfo_RoutingMethod = 4 +) + +// Enum value maps for CMsgGCRoutingInfo_RoutingMethod. +var ( + CMsgGCRoutingInfo_RoutingMethod_name = map[int32]string{ + 0: "RANDOM", + 1: "DISCARD", + 2: "CLIENT_STEAMID", + 3: "PROTOBUF_FIELD_UINT64", + 4: "WEBAPI_PARAM_UINT64", + } + CMsgGCRoutingInfo_RoutingMethod_value = map[string]int32{ + "RANDOM": 0, + "DISCARD": 1, + "CLIENT_STEAMID": 2, + "PROTOBUF_FIELD_UINT64": 3, + "WEBAPI_PARAM_UINT64": 4, + } +) + +func (x CMsgGCRoutingInfo_RoutingMethod) Enum() *CMsgGCRoutingInfo_RoutingMethod { + p := new(CMsgGCRoutingInfo_RoutingMethod) + *p = x + return p +} + +func (x CMsgGCRoutingInfo_RoutingMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgGCRoutingInfo_RoutingMethod) Descriptor() protoreflect.EnumDescriptor { + return file_s2_steammessages_proto_enumTypes[1].Descriptor() +} + +func (CMsgGCRoutingInfo_RoutingMethod) Type() protoreflect.EnumType { + return &file_s2_steammessages_proto_enumTypes[1] +} + +func (x CMsgGCRoutingInfo_RoutingMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgGCRoutingInfo_RoutingMethod) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgGCRoutingInfo_RoutingMethod(num) + return nil +} + +// Deprecated: Use CMsgGCRoutingInfo_RoutingMethod.Descriptor instead. +func (CMsgGCRoutingInfo_RoutingMethod) EnumDescriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{51, 0} +} + +type CMsgGCMsgSetOptions_Option int32 + +const ( + CMsgGCMsgSetOptions_NOTIFY_USER_SESSIONS CMsgGCMsgSetOptions_Option = 0 + CMsgGCMsgSetOptions_NOTIFY_SERVER_SESSIONS CMsgGCMsgSetOptions_Option = 1 + CMsgGCMsgSetOptions_NOTIFY_ACHIEVEMENTS CMsgGCMsgSetOptions_Option = 2 + CMsgGCMsgSetOptions_NOTIFY_VAC_ACTION CMsgGCMsgSetOptions_Option = 3 +) + +// Enum value maps for CMsgGCMsgSetOptions_Option. +var ( + CMsgGCMsgSetOptions_Option_name = map[int32]string{ + 0: "NOTIFY_USER_SESSIONS", + 1: "NOTIFY_SERVER_SESSIONS", + 2: "NOTIFY_ACHIEVEMENTS", + 3: "NOTIFY_VAC_ACTION", + } + CMsgGCMsgSetOptions_Option_value = map[string]int32{ + "NOTIFY_USER_SESSIONS": 0, + "NOTIFY_SERVER_SESSIONS": 1, + "NOTIFY_ACHIEVEMENTS": 2, + "NOTIFY_VAC_ACTION": 3, + } +) + +func (x CMsgGCMsgSetOptions_Option) Enum() *CMsgGCMsgSetOptions_Option { + p := new(CMsgGCMsgSetOptions_Option) + *p = x + return p +} + +func (x CMsgGCMsgSetOptions_Option) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgGCMsgSetOptions_Option) Descriptor() protoreflect.EnumDescriptor { + return file_s2_steammessages_proto_enumTypes[2].Descriptor() +} + +func (CMsgGCMsgSetOptions_Option) Type() protoreflect.EnumType { + return &file_s2_steammessages_proto_enumTypes[2] +} + +func (x CMsgGCMsgSetOptions_Option) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgGCMsgSetOptions_Option) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgGCMsgSetOptions_Option(num) + return nil +} + +// Deprecated: Use CMsgGCMsgSetOptions_Option.Descriptor instead. +func (CMsgGCMsgSetOptions_Option) EnumDescriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{56, 0} +} + +type CMsgDPPartnerMicroTxnsResponse_EErrorCode int32 + +const ( + CMsgDPPartnerMicroTxnsResponse_k_MsgValid CMsgDPPartnerMicroTxnsResponse_EErrorCode = 0 + CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidAppID CMsgDPPartnerMicroTxnsResponse_EErrorCode = 1 + CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidPartnerInfo CMsgDPPartnerMicroTxnsResponse_EErrorCode = 2 + CMsgDPPartnerMicroTxnsResponse_k_MsgNoTransactions CMsgDPPartnerMicroTxnsResponse_EErrorCode = 3 + CMsgDPPartnerMicroTxnsResponse_k_MsgSQLFailure CMsgDPPartnerMicroTxnsResponse_EErrorCode = 4 + CMsgDPPartnerMicroTxnsResponse_k_MsgPartnerInfoDiscrepancy CMsgDPPartnerMicroTxnsResponse_EErrorCode = 5 + CMsgDPPartnerMicroTxnsResponse_k_MsgTransactionInsertFailed CMsgDPPartnerMicroTxnsResponse_EErrorCode = 7 + CMsgDPPartnerMicroTxnsResponse_k_MsgAlreadyRunning CMsgDPPartnerMicroTxnsResponse_EErrorCode = 8 + CMsgDPPartnerMicroTxnsResponse_k_MsgInvalidTransactionData CMsgDPPartnerMicroTxnsResponse_EErrorCode = 9 +) + +// Enum value maps for CMsgDPPartnerMicroTxnsResponse_EErrorCode. +var ( + CMsgDPPartnerMicroTxnsResponse_EErrorCode_name = map[int32]string{ + 0: "k_MsgValid", + 1: "k_MsgInvalidAppID", + 2: "k_MsgInvalidPartnerInfo", + 3: "k_MsgNoTransactions", + 4: "k_MsgSQLFailure", + 5: "k_MsgPartnerInfoDiscrepancy", + 7: "k_MsgTransactionInsertFailed", + 8: "k_MsgAlreadyRunning", + 9: "k_MsgInvalidTransactionData", + } + CMsgDPPartnerMicroTxnsResponse_EErrorCode_value = map[string]int32{ + "k_MsgValid": 0, + "k_MsgInvalidAppID": 1, + "k_MsgInvalidPartnerInfo": 2, + "k_MsgNoTransactions": 3, + "k_MsgSQLFailure": 4, + "k_MsgPartnerInfoDiscrepancy": 5, + "k_MsgTransactionInsertFailed": 7, + "k_MsgAlreadyRunning": 8, + "k_MsgInvalidTransactionData": 9, + } +) + +func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) Enum() *CMsgDPPartnerMicroTxnsResponse_EErrorCode { + p := new(CMsgDPPartnerMicroTxnsResponse_EErrorCode) + *p = x + return p +} + +func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) Descriptor() protoreflect.EnumDescriptor { + return file_s2_steammessages_proto_enumTypes[3].Descriptor() +} + +func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) Type() protoreflect.EnumType { + return &file_s2_steammessages_proto_enumTypes[3] +} + +func (x CMsgDPPartnerMicroTxnsResponse_EErrorCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CMsgDPPartnerMicroTxnsResponse_EErrorCode) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CMsgDPPartnerMicroTxnsResponse_EErrorCode(num) + return nil +} + +// Deprecated: Use CMsgDPPartnerMicroTxnsResponse_EErrorCode.Descriptor instead. +func (CMsgDPPartnerMicroTxnsResponse_EErrorCode) EnumDescriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{60, 0} +} + +type CMsgProtoBufHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientSteamId *uint64 `protobuf:"fixed64,1,opt,name=client_steam_id,json=clientSteamId" json:"client_steam_id,omitempty"` + ClientSessionId *int32 `protobuf:"varint,2,opt,name=client_session_id,json=clientSessionId" json:"client_session_id,omitempty"` + SourceAppId *uint32 `protobuf:"varint,3,opt,name=source_app_id,json=sourceAppId" json:"source_app_id,omitempty"` + JobIdSource *uint64 `protobuf:"fixed64,10,opt,name=job_id_source,json=jobIdSource,def=18446744073709551615" json:"job_id_source,omitempty"` + JobIdTarget *uint64 `protobuf:"fixed64,11,opt,name=job_id_target,json=jobIdTarget,def=18446744073709551615" json:"job_id_target,omitempty"` + TargetJobName *string `protobuf:"bytes,12,opt,name=target_job_name,json=targetJobName" json:"target_job_name,omitempty"` + Eresult *int32 `protobuf:"varint,13,opt,name=eresult,def=2" json:"eresult,omitempty"` + ErrorMessage *string `protobuf:"bytes,14,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"` + Ip *uint32 `protobuf:"varint,15,opt,name=ip" json:"ip,omitempty"` + GcMsgSrc *GCProtoBufMsgSrc `protobuf:"varint,200,opt,name=gc_msg_src,json=gcMsgSrc,enum=com.github.markus_wa.demoinfocs_golang.s2.GCProtoBufMsgSrc,def=0" json:"gc_msg_src,omitempty"` + GcDirIndexSource *uint32 `protobuf:"varint,201,opt,name=gc_dir_index_source,json=gcDirIndexSource" json:"gc_dir_index_source,omitempty"` +} + +// Default values for CMsgProtoBufHeader fields. +const ( + Default_CMsgProtoBufHeader_JobIdSource = uint64(18446744073709551615) + Default_CMsgProtoBufHeader_JobIdTarget = uint64(18446744073709551615) + Default_CMsgProtoBufHeader_Eresult = int32(2) + Default_CMsgProtoBufHeader_GcMsgSrc = GCProtoBufMsgSrc_GCProtoBufMsgSrc_Unspecified +) + +func (x *CMsgProtoBufHeader) Reset() { + *x = CMsgProtoBufHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgProtoBufHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgProtoBufHeader) ProtoMessage() {} + +func (x *CMsgProtoBufHeader) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgProtoBufHeader.ProtoReflect.Descriptor instead. +func (*CMsgProtoBufHeader) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgProtoBufHeader) GetClientSteamId() uint64 { + if x != nil && x.ClientSteamId != nil { + return *x.ClientSteamId + } + return 0 +} + +func (x *CMsgProtoBufHeader) GetClientSessionId() int32 { + if x != nil && x.ClientSessionId != nil { + return *x.ClientSessionId + } + return 0 +} + +func (x *CMsgProtoBufHeader) GetSourceAppId() uint32 { + if x != nil && x.SourceAppId != nil { + return *x.SourceAppId + } + return 0 +} + +func (x *CMsgProtoBufHeader) GetJobIdSource() uint64 { + if x != nil && x.JobIdSource != nil { + return *x.JobIdSource + } + return Default_CMsgProtoBufHeader_JobIdSource +} + +func (x *CMsgProtoBufHeader) GetJobIdTarget() uint64 { + if x != nil && x.JobIdTarget != nil { + return *x.JobIdTarget + } + return Default_CMsgProtoBufHeader_JobIdTarget +} + +func (x *CMsgProtoBufHeader) GetTargetJobName() string { + if x != nil && x.TargetJobName != nil { + return *x.TargetJobName + } + return "" +} + +func (x *CMsgProtoBufHeader) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgProtoBufHeader_Eresult +} + +func (x *CMsgProtoBufHeader) GetErrorMessage() string { + if x != nil && x.ErrorMessage != nil { + return *x.ErrorMessage + } + return "" +} + +func (x *CMsgProtoBufHeader) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +func (x *CMsgProtoBufHeader) GetGcMsgSrc() GCProtoBufMsgSrc { + if x != nil && x.GcMsgSrc != nil { + return *x.GcMsgSrc + } + return Default_CMsgProtoBufHeader_GcMsgSrc +} + +func (x *CMsgProtoBufHeader) GetGcDirIndexSource() uint32 { + if x != nil && x.GcDirIndexSource != nil { + return *x.GcDirIndexSource + } + return 0 +} + +type CMsgWebAPIKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *uint32 `protobuf:"varint,1,opt,name=status,def=255" json:"status,omitempty"` + AccountId *uint32 `protobuf:"varint,2,opt,name=account_id,json=accountId,def=0" json:"account_id,omitempty"` + PublisherGroupId *uint32 `protobuf:"varint,3,opt,name=publisher_group_id,json=publisherGroupId,def=0" json:"publisher_group_id,omitempty"` + KeyId *uint32 `protobuf:"varint,4,opt,name=key_id,json=keyId" json:"key_id,omitempty"` + Domain *string `protobuf:"bytes,5,opt,name=domain" json:"domain,omitempty"` +} + +// Default values for CMsgWebAPIKey fields. +const ( + Default_CMsgWebAPIKey_Status = uint32(255) + Default_CMsgWebAPIKey_AccountId = uint32(0) + Default_CMsgWebAPIKey_PublisherGroupId = uint32(0) +) + +func (x *CMsgWebAPIKey) Reset() { + *x = CMsgWebAPIKey{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgWebAPIKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgWebAPIKey) ProtoMessage() {} + +func (x *CMsgWebAPIKey) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgWebAPIKey.ProtoReflect.Descriptor instead. +func (*CMsgWebAPIKey) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgWebAPIKey) GetStatus() uint32 { + if x != nil && x.Status != nil { + return *x.Status + } + return Default_CMsgWebAPIKey_Status +} + +func (x *CMsgWebAPIKey) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return Default_CMsgWebAPIKey_AccountId +} + +func (x *CMsgWebAPIKey) GetPublisherGroupId() uint32 { + if x != nil && x.PublisherGroupId != nil { + return *x.PublisherGroupId + } + return Default_CMsgWebAPIKey_PublisherGroupId +} + +func (x *CMsgWebAPIKey) GetKeyId() uint32 { + if x != nil && x.KeyId != nil { + return *x.KeyId + } + return 0 +} + +func (x *CMsgWebAPIKey) GetDomain() string { + if x != nil && x.Domain != nil { + return *x.Domain + } + return "" +} + +type CMsgHttpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestMethod *uint32 `protobuf:"varint,1,opt,name=request_method,json=requestMethod" json:"request_method,omitempty"` + Hostname *string `protobuf:"bytes,2,opt,name=hostname" json:"hostname,omitempty"` + Url *string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"` + Headers []*CMsgHttpRequest_RequestHeader `protobuf:"bytes,4,rep,name=headers" json:"headers,omitempty"` + GetParams []*CMsgHttpRequest_QueryParam `protobuf:"bytes,5,rep,name=get_params,json=getParams" json:"get_params,omitempty"` + PostParams []*CMsgHttpRequest_QueryParam `protobuf:"bytes,6,rep,name=post_params,json=postParams" json:"post_params,omitempty"` + Body []byte `protobuf:"bytes,7,opt,name=body" json:"body,omitempty"` + AbsoluteTimeout *uint32 `protobuf:"varint,8,opt,name=absolute_timeout,json=absoluteTimeout" json:"absolute_timeout,omitempty"` +} + +func (x *CMsgHttpRequest) Reset() { + *x = CMsgHttpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgHttpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgHttpRequest) ProtoMessage() {} + +func (x *CMsgHttpRequest) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgHttpRequest.ProtoReflect.Descriptor instead. +func (*CMsgHttpRequest) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgHttpRequest) GetRequestMethod() uint32 { + if x != nil && x.RequestMethod != nil { + return *x.RequestMethod + } + return 0 +} + +func (x *CMsgHttpRequest) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *CMsgHttpRequest) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *CMsgHttpRequest) GetHeaders() []*CMsgHttpRequest_RequestHeader { + if x != nil { + return x.Headers + } + return nil +} + +func (x *CMsgHttpRequest) GetGetParams() []*CMsgHttpRequest_QueryParam { + if x != nil { + return x.GetParams + } + return nil +} + +func (x *CMsgHttpRequest) GetPostParams() []*CMsgHttpRequest_QueryParam { + if x != nil { + return x.PostParams + } + return nil +} + +func (x *CMsgHttpRequest) GetBody() []byte { + if x != nil { + return x.Body + } + return nil +} + +func (x *CMsgHttpRequest) GetAbsoluteTimeout() uint32 { + if x != nil && x.AbsoluteTimeout != nil { + return *x.AbsoluteTimeout + } + return 0 +} + +type CMsgWebAPIRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InterfaceName *string `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName" json:"interface_name,omitempty"` + MethodName *string `protobuf:"bytes,3,opt,name=method_name,json=methodName" json:"method_name,omitempty"` + Version *uint32 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"` + ApiKey *CMsgWebAPIKey `protobuf:"bytes,5,opt,name=api_key,json=apiKey" json:"api_key,omitempty"` + Request *CMsgHttpRequest `protobuf:"bytes,6,opt,name=request" json:"request,omitempty"` + RoutingAppId *uint32 `protobuf:"varint,7,opt,name=routing_app_id,json=routingAppId" json:"routing_app_id,omitempty"` +} + +func (x *CMsgWebAPIRequest) Reset() { + *x = CMsgWebAPIRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgWebAPIRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgWebAPIRequest) ProtoMessage() {} + +func (x *CMsgWebAPIRequest) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgWebAPIRequest.ProtoReflect.Descriptor instead. +func (*CMsgWebAPIRequest) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgWebAPIRequest) GetInterfaceName() string { + if x != nil && x.InterfaceName != nil { + return *x.InterfaceName + } + return "" +} + +func (x *CMsgWebAPIRequest) GetMethodName() string { + if x != nil && x.MethodName != nil { + return *x.MethodName + } + return "" +} + +func (x *CMsgWebAPIRequest) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CMsgWebAPIRequest) GetApiKey() *CMsgWebAPIKey { + if x != nil { + return x.ApiKey + } + return nil +} + +func (x *CMsgWebAPIRequest) GetRequest() *CMsgHttpRequest { + if x != nil { + return x.Request + } + return nil +} + +func (x *CMsgWebAPIRequest) GetRoutingAppId() uint32 { + if x != nil && x.RoutingAppId != nil { + return *x.RoutingAppId + } + return 0 +} + +type CMsgHttpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatusCode *uint32 `protobuf:"varint,1,opt,name=status_code,json=statusCode" json:"status_code,omitempty"` + Headers []*CMsgHttpResponse_ResponseHeader `protobuf:"bytes,2,rep,name=headers" json:"headers,omitempty"` + Body []byte `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"` +} + +func (x *CMsgHttpResponse) Reset() { + *x = CMsgHttpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgHttpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgHttpResponse) ProtoMessage() {} + +func (x *CMsgHttpResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgHttpResponse.ProtoReflect.Descriptor instead. +func (*CMsgHttpResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgHttpResponse) GetStatusCode() uint32 { + if x != nil && x.StatusCode != nil { + return *x.StatusCode + } + return 0 +} + +func (x *CMsgHttpResponse) GetHeaders() []*CMsgHttpResponse_ResponseHeader { + if x != nil { + return x.Headers + } + return nil +} + +func (x *CMsgHttpResponse) GetBody() []byte { + if x != nil { + return x.Body + } + return nil +} + +type CMsgAMFindAccounts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SearchType *uint32 `protobuf:"varint,1,opt,name=search_type,json=searchType" json:"search_type,omitempty"` + SearchString *string `protobuf:"bytes,2,opt,name=search_string,json=searchString" json:"search_string,omitempty"` +} + +func (x *CMsgAMFindAccounts) Reset() { + *x = CMsgAMFindAccounts{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMFindAccounts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMFindAccounts) ProtoMessage() {} + +func (x *CMsgAMFindAccounts) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMFindAccounts.ProtoReflect.Descriptor instead. +func (*CMsgAMFindAccounts) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgAMFindAccounts) GetSearchType() uint32 { + if x != nil && x.SearchType != nil { + return *x.SearchType + } + return 0 +} + +func (x *CMsgAMFindAccounts) GetSearchString() string { + if x != nil && x.SearchString != nil { + return *x.SearchString + } + return "" +} + +type CMsgAMFindAccountsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId []uint64 `protobuf:"fixed64,1,rep,name=steam_id,json=steamId" json:"steam_id,omitempty"` +} + +func (x *CMsgAMFindAccountsResponse) Reset() { + *x = CMsgAMFindAccountsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMFindAccountsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMFindAccountsResponse) ProtoMessage() {} + +func (x *CMsgAMFindAccountsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMFindAccountsResponse.ProtoReflect.Descriptor instead. +func (*CMsgAMFindAccountsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgAMFindAccountsResponse) GetSteamId() []uint64 { + if x != nil { + return x.SteamId + } + return nil +} + +type CMsgNotifyWatchdog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source *uint32 `protobuf:"varint,1,opt,name=source" json:"source,omitempty"` + AlertType *uint32 `protobuf:"varint,2,opt,name=alert_type,json=alertType" json:"alert_type,omitempty"` + AlertDestination *uint32 `protobuf:"varint,3,opt,name=alert_destination,json=alertDestination" json:"alert_destination,omitempty"` + Critical *bool `protobuf:"varint,4,opt,name=critical" json:"critical,omitempty"` + Time *uint32 `protobuf:"varint,5,opt,name=time" json:"time,omitempty"` + Appid *uint32 `protobuf:"varint,6,opt,name=appid" json:"appid,omitempty"` + Text *string `protobuf:"bytes,7,opt,name=text" json:"text,omitempty"` +} + +func (x *CMsgNotifyWatchdog) Reset() { + *x = CMsgNotifyWatchdog{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgNotifyWatchdog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgNotifyWatchdog) ProtoMessage() {} + +func (x *CMsgNotifyWatchdog) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgNotifyWatchdog.ProtoReflect.Descriptor instead. +func (*CMsgNotifyWatchdog) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{7} +} + +func (x *CMsgNotifyWatchdog) GetSource() uint32 { + if x != nil && x.Source != nil { + return *x.Source + } + return 0 +} + +func (x *CMsgNotifyWatchdog) GetAlertType() uint32 { + if x != nil && x.AlertType != nil { + return *x.AlertType + } + return 0 +} + +func (x *CMsgNotifyWatchdog) GetAlertDestination() uint32 { + if x != nil && x.AlertDestination != nil { + return *x.AlertDestination + } + return 0 +} + +func (x *CMsgNotifyWatchdog) GetCritical() bool { + if x != nil && x.Critical != nil { + return *x.Critical + } + return false +} + +func (x *CMsgNotifyWatchdog) GetTime() uint32 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +func (x *CMsgNotifyWatchdog) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CMsgNotifyWatchdog) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CMsgAMGetLicenses struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CMsgAMGetLicenses) Reset() { + *x = CMsgAMGetLicenses{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetLicenses) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetLicenses) ProtoMessage() {} + +func (x *CMsgAMGetLicenses) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetLicenses.ProtoReflect.Descriptor instead. +func (*CMsgAMGetLicenses) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsgAMGetLicenses) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +type CMsgPackageLicense struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PackageId *uint32 `protobuf:"varint,1,opt,name=package_id,json=packageId" json:"package_id,omitempty"` + TimeCreated *uint32 `protobuf:"varint,2,opt,name=time_created,json=timeCreated" json:"time_created,omitempty"` + OwnerId *uint32 `protobuf:"varint,3,opt,name=owner_id,json=ownerId" json:"owner_id,omitempty"` +} + +func (x *CMsgPackageLicense) Reset() { + *x = CMsgPackageLicense{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgPackageLicense) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgPackageLicense) ProtoMessage() {} + +func (x *CMsgPackageLicense) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgPackageLicense.ProtoReflect.Descriptor instead. +func (*CMsgPackageLicense) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{9} +} + +func (x *CMsgPackageLicense) GetPackageId() uint32 { + if x != nil && x.PackageId != nil { + return *x.PackageId + } + return 0 +} + +func (x *CMsgPackageLicense) GetTimeCreated() uint32 { + if x != nil && x.TimeCreated != nil { + return *x.TimeCreated + } + return 0 +} + +func (x *CMsgPackageLicense) GetOwnerId() uint32 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +type CMsgAMGetLicensesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + License []*CMsgPackageLicense `protobuf:"bytes,1,rep,name=license" json:"license,omitempty"` + Result *uint32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` +} + +func (x *CMsgAMGetLicensesResponse) Reset() { + *x = CMsgAMGetLicensesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetLicensesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetLicensesResponse) ProtoMessage() {} + +func (x *CMsgAMGetLicensesResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetLicensesResponse.ProtoReflect.Descriptor instead. +func (*CMsgAMGetLicensesResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{10} +} + +func (x *CMsgAMGetLicensesResponse) GetLicense() []*CMsgPackageLicense { + if x != nil { + return x.License + } + return nil +} + +func (x *CMsgAMGetLicensesResponse) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +type CMsgAMGetUserGameStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + GameId *uint64 `protobuf:"fixed64,2,opt,name=game_id,json=gameId" json:"game_id,omitempty"` + Stats []uint32 `protobuf:"varint,3,rep,name=stats" json:"stats,omitempty"` +} + +func (x *CMsgAMGetUserGameStats) Reset() { + *x = CMsgAMGetUserGameStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetUserGameStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetUserGameStats) ProtoMessage() {} + +func (x *CMsgAMGetUserGameStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetUserGameStats.ProtoReflect.Descriptor instead. +func (*CMsgAMGetUserGameStats) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CMsgAMGetUserGameStats) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CMsgAMGetUserGameStats) GetGameId() uint64 { + if x != nil && x.GameId != nil { + return *x.GameId + } + return 0 +} + +func (x *CMsgAMGetUserGameStats) GetStats() []uint32 { + if x != nil { + return x.Stats + } + return nil +} + +type CMsgAMGetUserGameStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + GameId *uint64 `protobuf:"fixed64,2,opt,name=game_id,json=gameId" json:"game_id,omitempty"` + Eresult *int32 `protobuf:"varint,3,opt,name=eresult,def=2" json:"eresult,omitempty"` + Stats []*CMsgAMGetUserGameStatsResponse_Stats `protobuf:"bytes,4,rep,name=stats" json:"stats,omitempty"` + AchievementBlocks []*CMsgAMGetUserGameStatsResponse_Achievement_Blocks `protobuf:"bytes,5,rep,name=achievement_blocks,json=achievementBlocks" json:"achievement_blocks,omitempty"` +} + +// Default values for CMsgAMGetUserGameStatsResponse fields. +const ( + Default_CMsgAMGetUserGameStatsResponse_Eresult = int32(2) +) + +func (x *CMsgAMGetUserGameStatsResponse) Reset() { + *x = CMsgAMGetUserGameStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetUserGameStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetUserGameStatsResponse) ProtoMessage() {} + +func (x *CMsgAMGetUserGameStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetUserGameStatsResponse.ProtoReflect.Descriptor instead. +func (*CMsgAMGetUserGameStatsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CMsgAMGetUserGameStatsResponse) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CMsgAMGetUserGameStatsResponse) GetGameId() uint64 { + if x != nil && x.GameId != nil { + return *x.GameId + } + return 0 +} + +func (x *CMsgAMGetUserGameStatsResponse) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgAMGetUserGameStatsResponse_Eresult +} + +func (x *CMsgAMGetUserGameStatsResponse) GetStats() []*CMsgAMGetUserGameStatsResponse_Stats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *CMsgAMGetUserGameStatsResponse) GetAchievementBlocks() []*CMsgAMGetUserGameStatsResponse_Achievement_Blocks { + if x != nil { + return x.AchievementBlocks + } + return nil +} + +type CMsgGCGetCommandList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppId *uint32 `protobuf:"varint,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + CommandPrefix *string `protobuf:"bytes,2,opt,name=command_prefix,json=commandPrefix" json:"command_prefix,omitempty"` +} + +func (x *CMsgGCGetCommandList) Reset() { + *x = CMsgGCGetCommandList{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetCommandList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetCommandList) ProtoMessage() {} + +func (x *CMsgGCGetCommandList) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetCommandList.ProtoReflect.Descriptor instead. +func (*CMsgGCGetCommandList) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{13} +} + +func (x *CMsgGCGetCommandList) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +func (x *CMsgGCGetCommandList) GetCommandPrefix() string { + if x != nil && x.CommandPrefix != nil { + return *x.CommandPrefix + } + return "" +} + +type CMsgGCGetCommandListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommandName []string `protobuf:"bytes,1,rep,name=command_name,json=commandName" json:"command_name,omitempty"` +} + +func (x *CMsgGCGetCommandListResponse) Reset() { + *x = CMsgGCGetCommandListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetCommandListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetCommandListResponse) ProtoMessage() {} + +func (x *CMsgGCGetCommandListResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetCommandListResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCGetCommandListResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{14} +} + +func (x *CMsgGCGetCommandListResponse) GetCommandName() []string { + if x != nil { + return x.CommandName + } + return nil +} + +type CGCMsgMemCachedGet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []string `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CGCMsgMemCachedGet) Reset() { + *x = CGCMsgMemCachedGet{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedGet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedGet) ProtoMessage() {} + +func (x *CGCMsgMemCachedGet) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedGet.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedGet) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{15} +} + +func (x *CGCMsgMemCachedGet) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type CGCMsgMemCachedGetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values []*CGCMsgMemCachedGetResponse_ValueTag `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"` +} + +func (x *CGCMsgMemCachedGetResponse) Reset() { + *x = CGCMsgMemCachedGetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedGetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedGetResponse) ProtoMessage() {} + +func (x *CGCMsgMemCachedGetResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedGetResponse.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedGetResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{16} +} + +func (x *CGCMsgMemCachedGetResponse) GetValues() []*CGCMsgMemCachedGetResponse_ValueTag { + if x != nil { + return x.Values + } + return nil +} + +type CGCMsgMemCachedSet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []*CGCMsgMemCachedSet_KeyPair `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CGCMsgMemCachedSet) Reset() { + *x = CGCMsgMemCachedSet{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedSet) ProtoMessage() {} + +func (x *CGCMsgMemCachedSet) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedSet.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedSet) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CGCMsgMemCachedSet) GetKeys() []*CGCMsgMemCachedSet_KeyPair { + if x != nil { + return x.Keys + } + return nil +} + +type CGCMsgMemCachedDelete struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []string `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` +} + +func (x *CGCMsgMemCachedDelete) Reset() { + *x = CGCMsgMemCachedDelete{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedDelete) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedDelete) ProtoMessage() {} + +func (x *CGCMsgMemCachedDelete) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedDelete.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedDelete) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{18} +} + +func (x *CGCMsgMemCachedDelete) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type CGCMsgMemCachedStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CGCMsgMemCachedStats) Reset() { + *x = CGCMsgMemCachedStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedStats) ProtoMessage() {} + +func (x *CGCMsgMemCachedStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedStats.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedStats) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{19} +} + +type CGCMsgMemCachedStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CurrConnections *uint64 `protobuf:"varint,1,opt,name=curr_connections,json=currConnections" json:"curr_connections,omitempty"` + CmdGet *uint64 `protobuf:"varint,2,opt,name=cmd_get,json=cmdGet" json:"cmd_get,omitempty"` + CmdSet *uint64 `protobuf:"varint,3,opt,name=cmd_set,json=cmdSet" json:"cmd_set,omitempty"` + CmdFlush *uint64 `protobuf:"varint,4,opt,name=cmd_flush,json=cmdFlush" json:"cmd_flush,omitempty"` + GetHits *uint64 `protobuf:"varint,5,opt,name=get_hits,json=getHits" json:"get_hits,omitempty"` + GetMisses *uint64 `protobuf:"varint,6,opt,name=get_misses,json=getMisses" json:"get_misses,omitempty"` + DeleteHits *uint64 `protobuf:"varint,7,opt,name=delete_hits,json=deleteHits" json:"delete_hits,omitempty"` + DeleteMisses *uint64 `protobuf:"varint,8,opt,name=delete_misses,json=deleteMisses" json:"delete_misses,omitempty"` + BytesRead *uint64 `protobuf:"varint,9,opt,name=bytes_read,json=bytesRead" json:"bytes_read,omitempty"` + BytesWritten *uint64 `protobuf:"varint,10,opt,name=bytes_written,json=bytesWritten" json:"bytes_written,omitempty"` + LimitMaxbytes *uint64 `protobuf:"varint,11,opt,name=limit_maxbytes,json=limitMaxbytes" json:"limit_maxbytes,omitempty"` + CurrItems *uint64 `protobuf:"varint,12,opt,name=curr_items,json=currItems" json:"curr_items,omitempty"` + Evictions *uint64 `protobuf:"varint,13,opt,name=evictions" json:"evictions,omitempty"` + Bytes *uint64 `protobuf:"varint,14,opt,name=bytes" json:"bytes,omitempty"` +} + +func (x *CGCMsgMemCachedStatsResponse) Reset() { + *x = CGCMsgMemCachedStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedStatsResponse) ProtoMessage() {} + +func (x *CGCMsgMemCachedStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedStatsResponse.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedStatsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{20} +} + +func (x *CGCMsgMemCachedStatsResponse) GetCurrConnections() uint64 { + if x != nil && x.CurrConnections != nil { + return *x.CurrConnections + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetCmdGet() uint64 { + if x != nil && x.CmdGet != nil { + return *x.CmdGet + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetCmdSet() uint64 { + if x != nil && x.CmdSet != nil { + return *x.CmdSet + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetCmdFlush() uint64 { + if x != nil && x.CmdFlush != nil { + return *x.CmdFlush + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetGetHits() uint64 { + if x != nil && x.GetHits != nil { + return *x.GetHits + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetGetMisses() uint64 { + if x != nil && x.GetMisses != nil { + return *x.GetMisses + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetDeleteHits() uint64 { + if x != nil && x.DeleteHits != nil { + return *x.DeleteHits + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetDeleteMisses() uint64 { + if x != nil && x.DeleteMisses != nil { + return *x.DeleteMisses + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetBytesRead() uint64 { + if x != nil && x.BytesRead != nil { + return *x.BytesRead + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetBytesWritten() uint64 { + if x != nil && x.BytesWritten != nil { + return *x.BytesWritten + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetLimitMaxbytes() uint64 { + if x != nil && x.LimitMaxbytes != nil { + return *x.LimitMaxbytes + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetCurrItems() uint64 { + if x != nil && x.CurrItems != nil { + return *x.CurrItems + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetEvictions() uint64 { + if x != nil && x.Evictions != nil { + return *x.Evictions + } + return 0 +} + +func (x *CGCMsgMemCachedStatsResponse) GetBytes() uint64 { + if x != nil && x.Bytes != nil { + return *x.Bytes + } + return 0 +} + +type CGCMsgSQLStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SchemaCatalog *uint32 `protobuf:"varint,1,opt,name=schema_catalog,json=schemaCatalog" json:"schema_catalog,omitempty"` +} + +func (x *CGCMsgSQLStats) Reset() { + *x = CGCMsgSQLStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgSQLStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgSQLStats) ProtoMessage() {} + +func (x *CGCMsgSQLStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgSQLStats.ProtoReflect.Descriptor instead. +func (*CGCMsgSQLStats) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{21} +} + +func (x *CGCMsgSQLStats) GetSchemaCatalog() uint32 { + if x != nil && x.SchemaCatalog != nil { + return *x.SchemaCatalog + } + return 0 +} + +type CGCMsgSQLStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Threads *uint32 `protobuf:"varint,1,opt,name=threads" json:"threads,omitempty"` + ThreadsConnected *uint32 `protobuf:"varint,2,opt,name=threads_connected,json=threadsConnected" json:"threads_connected,omitempty"` + ThreadsActive *uint32 `protobuf:"varint,3,opt,name=threads_active,json=threadsActive" json:"threads_active,omitempty"` + OperationsSubmitted *uint32 `protobuf:"varint,4,opt,name=operations_submitted,json=operationsSubmitted" json:"operations_submitted,omitempty"` + PreparedStatementsExecuted *uint32 `protobuf:"varint,5,opt,name=prepared_statements_executed,json=preparedStatementsExecuted" json:"prepared_statements_executed,omitempty"` + NonPreparedStatementsExecuted *uint32 `protobuf:"varint,6,opt,name=non_prepared_statements_executed,json=nonPreparedStatementsExecuted" json:"non_prepared_statements_executed,omitempty"` + DeadlockRetries *uint32 `protobuf:"varint,7,opt,name=deadlock_retries,json=deadlockRetries" json:"deadlock_retries,omitempty"` + OperationsTimedOutInQueue *uint32 `protobuf:"varint,8,opt,name=operations_timed_out_in_queue,json=operationsTimedOutInQueue" json:"operations_timed_out_in_queue,omitempty"` + Errors *uint32 `protobuf:"varint,9,opt,name=errors" json:"errors,omitempty"` +} + +func (x *CGCMsgSQLStatsResponse) Reset() { + *x = CGCMsgSQLStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgSQLStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgSQLStatsResponse) ProtoMessage() {} + +func (x *CGCMsgSQLStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgSQLStatsResponse.ProtoReflect.Descriptor instead. +func (*CGCMsgSQLStatsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{22} +} + +func (x *CGCMsgSQLStatsResponse) GetThreads() uint32 { + if x != nil && x.Threads != nil { + return *x.Threads + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetThreadsConnected() uint32 { + if x != nil && x.ThreadsConnected != nil { + return *x.ThreadsConnected + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetThreadsActive() uint32 { + if x != nil && x.ThreadsActive != nil { + return *x.ThreadsActive + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetOperationsSubmitted() uint32 { + if x != nil && x.OperationsSubmitted != nil { + return *x.OperationsSubmitted + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetPreparedStatementsExecuted() uint32 { + if x != nil && x.PreparedStatementsExecuted != nil { + return *x.PreparedStatementsExecuted + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetNonPreparedStatementsExecuted() uint32 { + if x != nil && x.NonPreparedStatementsExecuted != nil { + return *x.NonPreparedStatementsExecuted + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetDeadlockRetries() uint32 { + if x != nil && x.DeadlockRetries != nil { + return *x.DeadlockRetries + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetOperationsTimedOutInQueue() uint32 { + if x != nil && x.OperationsTimedOutInQueue != nil { + return *x.OperationsTimedOutInQueue + } + return 0 +} + +func (x *CGCMsgSQLStatsResponse) GetErrors() uint32 { + if x != nil && x.Errors != nil { + return *x.Errors + } + return 0 +} + +type CMsgAMAddFreeLicense struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + IpPublic *uint32 `protobuf:"varint,2,opt,name=ip_public,json=ipPublic" json:"ip_public,omitempty"` + Packageid *uint32 `protobuf:"varint,3,opt,name=packageid" json:"packageid,omitempty"` + StoreCountryCode *string `protobuf:"bytes,4,opt,name=store_country_code,json=storeCountryCode" json:"store_country_code,omitempty"` +} + +func (x *CMsgAMAddFreeLicense) Reset() { + *x = CMsgAMAddFreeLicense{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMAddFreeLicense) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMAddFreeLicense) ProtoMessage() {} + +func (x *CMsgAMAddFreeLicense) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMAddFreeLicense.ProtoReflect.Descriptor instead. +func (*CMsgAMAddFreeLicense) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{23} +} + +func (x *CMsgAMAddFreeLicense) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgAMAddFreeLicense) GetIpPublic() uint32 { + if x != nil && x.IpPublic != nil { + return *x.IpPublic + } + return 0 +} + +func (x *CMsgAMAddFreeLicense) GetPackageid() uint32 { + if x != nil && x.Packageid != nil { + return *x.Packageid + } + return 0 +} + +func (x *CMsgAMAddFreeLicense) GetStoreCountryCode() string { + if x != nil && x.StoreCountryCode != nil { + return *x.StoreCountryCode + } + return "" +} + +type CMsgAMAddFreeLicenseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` + PurchaseResultDetail *int32 `protobuf:"varint,2,opt,name=purchase_result_detail,json=purchaseResultDetail" json:"purchase_result_detail,omitempty"` + Transid *uint64 `protobuf:"fixed64,3,opt,name=transid" json:"transid,omitempty"` +} + +// Default values for CMsgAMAddFreeLicenseResponse fields. +const ( + Default_CMsgAMAddFreeLicenseResponse_Eresult = int32(2) +) + +func (x *CMsgAMAddFreeLicenseResponse) Reset() { + *x = CMsgAMAddFreeLicenseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMAddFreeLicenseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMAddFreeLicenseResponse) ProtoMessage() {} + +func (x *CMsgAMAddFreeLicenseResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMAddFreeLicenseResponse.ProtoReflect.Descriptor instead. +func (*CMsgAMAddFreeLicenseResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CMsgAMAddFreeLicenseResponse) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgAMAddFreeLicenseResponse_Eresult +} + +func (x *CMsgAMAddFreeLicenseResponse) GetPurchaseResultDetail() int32 { + if x != nil && x.PurchaseResultDetail != nil { + return *x.PurchaseResultDetail + } + return 0 +} + +func (x *CMsgAMAddFreeLicenseResponse) GetTransid() uint64 { + if x != nil && x.Transid != nil { + return *x.Transid + } + return 0 +} + +type CGCMsgGetIPLocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ips []uint32 `protobuf:"fixed32,1,rep,name=ips" json:"ips,omitempty"` +} + +func (x *CGCMsgGetIPLocation) Reset() { + *x = CGCMsgGetIPLocation{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgGetIPLocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgGetIPLocation) ProtoMessage() {} + +func (x *CGCMsgGetIPLocation) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgGetIPLocation.ProtoReflect.Descriptor instead. +func (*CGCMsgGetIPLocation) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CGCMsgGetIPLocation) GetIps() []uint32 { + if x != nil { + return x.Ips + } + return nil +} + +type CIPLocationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ip *uint32 `protobuf:"varint,1,opt,name=ip" json:"ip,omitempty"` + Latitude *float32 `protobuf:"fixed32,2,opt,name=latitude" json:"latitude,omitempty"` + Longitude *float32 `protobuf:"fixed32,3,opt,name=longitude" json:"longitude,omitempty"` + Country *string `protobuf:"bytes,4,opt,name=country" json:"country,omitempty"` + State *string `protobuf:"bytes,5,opt,name=state" json:"state,omitempty"` + City *string `protobuf:"bytes,6,opt,name=city" json:"city,omitempty"` +} + +func (x *CIPLocationInfo) Reset() { + *x = CIPLocationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CIPLocationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CIPLocationInfo) ProtoMessage() {} + +func (x *CIPLocationInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CIPLocationInfo.ProtoReflect.Descriptor instead. +func (*CIPLocationInfo) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CIPLocationInfo) GetIp() uint32 { + if x != nil && x.Ip != nil { + return *x.Ip + } + return 0 +} + +func (x *CIPLocationInfo) GetLatitude() float32 { + if x != nil && x.Latitude != nil { + return *x.Latitude + } + return 0 +} + +func (x *CIPLocationInfo) GetLongitude() float32 { + if x != nil && x.Longitude != nil { + return *x.Longitude + } + return 0 +} + +func (x *CIPLocationInfo) GetCountry() string { + if x != nil && x.Country != nil { + return *x.Country + } + return "" +} + +func (x *CIPLocationInfo) GetState() string { + if x != nil && x.State != nil { + return *x.State + } + return "" +} + +func (x *CIPLocationInfo) GetCity() string { + if x != nil && x.City != nil { + return *x.City + } + return "" +} + +type CGCMsgGetIPLocationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Infos []*CIPLocationInfo `protobuf:"bytes,1,rep,name=infos" json:"infos,omitempty"` +} + +func (x *CGCMsgGetIPLocationResponse) Reset() { + *x = CGCMsgGetIPLocationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgGetIPLocationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgGetIPLocationResponse) ProtoMessage() {} + +func (x *CGCMsgGetIPLocationResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgGetIPLocationResponse.ProtoReflect.Descriptor instead. +func (*CGCMsgGetIPLocationResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CGCMsgGetIPLocationResponse) GetInfos() []*CIPLocationInfo { + if x != nil { + return x.Infos + } + return nil +} + +type CGCMsgSystemStatsSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GcAppId *uint32 `protobuf:"varint,1,opt,name=gc_app_id,json=gcAppId" json:"gc_app_id,omitempty"` + SchemaKv []byte `protobuf:"bytes,2,opt,name=schema_kv,json=schemaKv" json:"schema_kv,omitempty"` +} + +func (x *CGCMsgSystemStatsSchema) Reset() { + *x = CGCMsgSystemStatsSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgSystemStatsSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgSystemStatsSchema) ProtoMessage() {} + +func (x *CGCMsgSystemStatsSchema) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgSystemStatsSchema.ProtoReflect.Descriptor instead. +func (*CGCMsgSystemStatsSchema) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{28} +} + +func (x *CGCMsgSystemStatsSchema) GetGcAppId() uint32 { + if x != nil && x.GcAppId != nil { + return *x.GcAppId + } + return 0 +} + +func (x *CGCMsgSystemStatsSchema) GetSchemaKv() []byte { + if x != nil { + return x.SchemaKv + } + return nil +} + +type CGCMsgGetSystemStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CGCMsgGetSystemStats) Reset() { + *x = CGCMsgGetSystemStats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgGetSystemStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgGetSystemStats) ProtoMessage() {} + +func (x *CGCMsgGetSystemStats) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgGetSystemStats.ProtoReflect.Descriptor instead. +func (*CGCMsgGetSystemStats) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{29} +} + +type CGCMsgGetSystemStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GcAppId *uint32 `protobuf:"varint,1,opt,name=gc_app_id,json=gcAppId" json:"gc_app_id,omitempty"` + StatsKv []byte `protobuf:"bytes,2,opt,name=stats_kv,json=statsKv" json:"stats_kv,omitempty"` + ActiveJobs *uint32 `protobuf:"varint,3,opt,name=active_jobs,json=activeJobs" json:"active_jobs,omitempty"` + YieldingJobs *uint32 `protobuf:"varint,4,opt,name=yielding_jobs,json=yieldingJobs" json:"yielding_jobs,omitempty"` + UserSessions *uint32 `protobuf:"varint,5,opt,name=user_sessions,json=userSessions" json:"user_sessions,omitempty"` + GameServerSessions *uint32 `protobuf:"varint,6,opt,name=game_server_sessions,json=gameServerSessions" json:"game_server_sessions,omitempty"` + Socaches *uint32 `protobuf:"varint,7,opt,name=socaches" json:"socaches,omitempty"` + SocachesToUnload *uint32 `protobuf:"varint,8,opt,name=socaches_to_unload,json=socachesToUnload" json:"socaches_to_unload,omitempty"` + SocachesLoading *uint32 `protobuf:"varint,9,opt,name=socaches_loading,json=socachesLoading" json:"socaches_loading,omitempty"` + WritebackQueue *uint32 `protobuf:"varint,10,opt,name=writeback_queue,json=writebackQueue" json:"writeback_queue,omitempty"` + SteamidLocks *uint32 `protobuf:"varint,11,opt,name=steamid_locks,json=steamidLocks" json:"steamid_locks,omitempty"` + LogonQueue *uint32 `protobuf:"varint,12,opt,name=logon_queue,json=logonQueue" json:"logon_queue,omitempty"` + LogonJobs *uint32 `protobuf:"varint,13,opt,name=logon_jobs,json=logonJobs" json:"logon_jobs,omitempty"` +} + +func (x *CGCMsgGetSystemStatsResponse) Reset() { + *x = CGCMsgGetSystemStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgGetSystemStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgGetSystemStatsResponse) ProtoMessage() {} + +func (x *CGCMsgGetSystemStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgGetSystemStatsResponse.ProtoReflect.Descriptor instead. +func (*CGCMsgGetSystemStatsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CGCMsgGetSystemStatsResponse) GetGcAppId() uint32 { + if x != nil && x.GcAppId != nil { + return *x.GcAppId + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetStatsKv() []byte { + if x != nil { + return x.StatsKv + } + return nil +} + +func (x *CGCMsgGetSystemStatsResponse) GetActiveJobs() uint32 { + if x != nil && x.ActiveJobs != nil { + return *x.ActiveJobs + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetYieldingJobs() uint32 { + if x != nil && x.YieldingJobs != nil { + return *x.YieldingJobs + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetUserSessions() uint32 { + if x != nil && x.UserSessions != nil { + return *x.UserSessions + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetGameServerSessions() uint32 { + if x != nil && x.GameServerSessions != nil { + return *x.GameServerSessions + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetSocaches() uint32 { + if x != nil && x.Socaches != nil { + return *x.Socaches + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetSocachesToUnload() uint32 { + if x != nil && x.SocachesToUnload != nil { + return *x.SocachesToUnload + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetSocachesLoading() uint32 { + if x != nil && x.SocachesLoading != nil { + return *x.SocachesLoading + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetWritebackQueue() uint32 { + if x != nil && x.WritebackQueue != nil { + return *x.WritebackQueue + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetSteamidLocks() uint32 { + if x != nil && x.SteamidLocks != nil { + return *x.SteamidLocks + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetLogonQueue() uint32 { + if x != nil && x.LogonQueue != nil { + return *x.LogonQueue + } + return 0 +} + +func (x *CGCMsgGetSystemStatsResponse) GetLogonJobs() uint32 { + if x != nil && x.LogonJobs != nil { + return *x.LogonJobs + } + return 0 +} + +type CMsgAMSendEmail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + EmailMsgType *uint32 `protobuf:"varint,2,opt,name=email_msg_type,json=emailMsgType" json:"email_msg_type,omitempty"` + EmailFormat *uint32 `protobuf:"varint,3,opt,name=email_format,json=emailFormat" json:"email_format,omitempty"` + PersonaNameTokens []*CMsgAMSendEmail_PersonaNameReplacementToken `protobuf:"bytes,5,rep,name=persona_name_tokens,json=personaNameTokens" json:"persona_name_tokens,omitempty"` + SourceGc *uint32 `protobuf:"varint,6,opt,name=source_gc,json=sourceGc" json:"source_gc,omitempty"` + Tokens []*CMsgAMSendEmail_ReplacementToken `protobuf:"bytes,7,rep,name=tokens" json:"tokens,omitempty"` +} + +func (x *CMsgAMSendEmail) Reset() { + *x = CMsgAMSendEmail{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMSendEmail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMSendEmail) ProtoMessage() {} + +func (x *CMsgAMSendEmail) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMSendEmail.ProtoReflect.Descriptor instead. +func (*CMsgAMSendEmail) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CMsgAMSendEmail) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgAMSendEmail) GetEmailMsgType() uint32 { + if x != nil && x.EmailMsgType != nil { + return *x.EmailMsgType + } + return 0 +} + +func (x *CMsgAMSendEmail) GetEmailFormat() uint32 { + if x != nil && x.EmailFormat != nil { + return *x.EmailFormat + } + return 0 +} + +func (x *CMsgAMSendEmail) GetPersonaNameTokens() []*CMsgAMSendEmail_PersonaNameReplacementToken { + if x != nil { + return x.PersonaNameTokens + } + return nil +} + +func (x *CMsgAMSendEmail) GetSourceGc() uint32 { + if x != nil && x.SourceGc != nil { + return *x.SourceGc + } + return 0 +} + +func (x *CMsgAMSendEmail) GetTokens() []*CMsgAMSendEmail_ReplacementToken { + if x != nil { + return x.Tokens + } + return nil +} + +type CMsgAMSendEmailResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` +} + +// Default values for CMsgAMSendEmailResponse fields. +const ( + Default_CMsgAMSendEmailResponse_Eresult = uint32(2) +) + +func (x *CMsgAMSendEmailResponse) Reset() { + *x = CMsgAMSendEmailResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMSendEmailResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMSendEmailResponse) ProtoMessage() {} + +func (x *CMsgAMSendEmailResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMSendEmailResponse.ProtoReflect.Descriptor instead. +func (*CMsgAMSendEmailResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{32} +} + +func (x *CMsgAMSendEmailResponse) GetEresult() uint32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgAMSendEmailResponse_Eresult +} + +type CMsgGCGetEmailTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppId *uint32 `protobuf:"varint,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + EmailMsgType *uint32 `protobuf:"varint,2,opt,name=email_msg_type,json=emailMsgType" json:"email_msg_type,omitempty"` + EmailLang *int32 `protobuf:"varint,3,opt,name=email_lang,json=emailLang" json:"email_lang,omitempty"` + EmailFormat *int32 `protobuf:"varint,4,opt,name=email_format,json=emailFormat" json:"email_format,omitempty"` +} + +func (x *CMsgGCGetEmailTemplate) Reset() { + *x = CMsgGCGetEmailTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetEmailTemplate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetEmailTemplate) ProtoMessage() {} + +func (x *CMsgGCGetEmailTemplate) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetEmailTemplate.ProtoReflect.Descriptor instead. +func (*CMsgGCGetEmailTemplate) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CMsgGCGetEmailTemplate) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +func (x *CMsgGCGetEmailTemplate) GetEmailMsgType() uint32 { + if x != nil && x.EmailMsgType != nil { + return *x.EmailMsgType + } + return 0 +} + +func (x *CMsgGCGetEmailTemplate) GetEmailLang() int32 { + if x != nil && x.EmailLang != nil { + return *x.EmailLang + } + return 0 +} + +func (x *CMsgGCGetEmailTemplate) GetEmailFormat() int32 { + if x != nil && x.EmailFormat != nil { + return *x.EmailFormat + } + return 0 +} + +type CMsgGCGetEmailTemplateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` + TemplateExists *bool `protobuf:"varint,2,opt,name=template_exists,json=templateExists" json:"template_exists,omitempty"` + Template *string `protobuf:"bytes,3,opt,name=template" json:"template,omitempty"` +} + +// Default values for CMsgGCGetEmailTemplateResponse fields. +const ( + Default_CMsgGCGetEmailTemplateResponse_Eresult = uint32(2) +) + +func (x *CMsgGCGetEmailTemplateResponse) Reset() { + *x = CMsgGCGetEmailTemplateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetEmailTemplateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetEmailTemplateResponse) ProtoMessage() {} + +func (x *CMsgGCGetEmailTemplateResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetEmailTemplateResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCGetEmailTemplateResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{34} +} + +func (x *CMsgGCGetEmailTemplateResponse) GetEresult() uint32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgGCGetEmailTemplateResponse_Eresult +} + +func (x *CMsgGCGetEmailTemplateResponse) GetTemplateExists() bool { + if x != nil && x.TemplateExists != nil { + return *x.TemplateExists + } + return false +} + +func (x *CMsgGCGetEmailTemplateResponse) GetTemplate() string { + if x != nil && x.Template != nil { + return *x.Template + } + return "" +} + +type CMsgAMGrantGuestPasses2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + PackageId *uint32 `protobuf:"varint,2,opt,name=package_id,json=packageId" json:"package_id,omitempty"` + PassesToGrant *int32 `protobuf:"varint,3,opt,name=passes_to_grant,json=passesToGrant" json:"passes_to_grant,omitempty"` + DaysToExpiration *int32 `protobuf:"varint,4,opt,name=days_to_expiration,json=daysToExpiration" json:"days_to_expiration,omitempty"` + Action *int32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` +} + +func (x *CMsgAMGrantGuestPasses2) Reset() { + *x = CMsgAMGrantGuestPasses2{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGrantGuestPasses2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGrantGuestPasses2) ProtoMessage() {} + +func (x *CMsgAMGrantGuestPasses2) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGrantGuestPasses2.ProtoReflect.Descriptor instead. +func (*CMsgAMGrantGuestPasses2) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CMsgAMGrantGuestPasses2) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CMsgAMGrantGuestPasses2) GetPackageId() uint32 { + if x != nil && x.PackageId != nil { + return *x.PackageId + } + return 0 +} + +func (x *CMsgAMGrantGuestPasses2) GetPassesToGrant() int32 { + if x != nil && x.PassesToGrant != nil { + return *x.PassesToGrant + } + return 0 +} + +func (x *CMsgAMGrantGuestPasses2) GetDaysToExpiration() int32 { + if x != nil && x.DaysToExpiration != nil { + return *x.DaysToExpiration + } + return 0 +} + +func (x *CMsgAMGrantGuestPasses2) GetAction() int32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type CMsgAMGrantGuestPasses2Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` + PassesGranted *int32 `protobuf:"varint,2,opt,name=passes_granted,json=passesGranted,def=0" json:"passes_granted,omitempty"` +} + +// Default values for CMsgAMGrantGuestPasses2Response fields. +const ( + Default_CMsgAMGrantGuestPasses2Response_Eresult = int32(2) + Default_CMsgAMGrantGuestPasses2Response_PassesGranted = int32(0) +) + +func (x *CMsgAMGrantGuestPasses2Response) Reset() { + *x = CMsgAMGrantGuestPasses2Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGrantGuestPasses2Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGrantGuestPasses2Response) ProtoMessage() {} + +func (x *CMsgAMGrantGuestPasses2Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGrantGuestPasses2Response.ProtoReflect.Descriptor instead. +func (*CMsgAMGrantGuestPasses2Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{36} +} + +func (x *CMsgAMGrantGuestPasses2Response) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgAMGrantGuestPasses2Response_Eresult +} + +func (x *CMsgAMGrantGuestPasses2Response) GetPassesGranted() int32 { + if x != nil && x.PassesGranted != nil { + return *x.PassesGranted + } + return Default_CMsgAMGrantGuestPasses2Response_PassesGranted +} + +type CGCSystemMsg_GetAccountDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + Appid *uint32 `protobuf:"varint,2,opt,name=appid" json:"appid,omitempty"` +} + +func (x *CGCSystemMsg_GetAccountDetails) Reset() { + *x = CGCSystemMsg_GetAccountDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCSystemMsg_GetAccountDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCSystemMsg_GetAccountDetails) ProtoMessage() {} + +func (x *CGCSystemMsg_GetAccountDetails) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCSystemMsg_GetAccountDetails.ProtoReflect.Descriptor instead. +func (*CGCSystemMsg_GetAccountDetails) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{37} +} + +func (x *CGCSystemMsg_GetAccountDetails) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +type CGCSystemMsg_GetAccountDetails_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EresultDeprecated *uint32 `protobuf:"varint,1,opt,name=eresult_deprecated,json=eresultDeprecated,def=2" json:"eresult_deprecated,omitempty"` + AccountName *string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"` + PersonaName *string `protobuf:"bytes,3,opt,name=persona_name,json=personaName" json:"persona_name,omitempty"` + IsProfilePublic *bool `protobuf:"varint,4,opt,name=is_profile_public,json=isProfilePublic" json:"is_profile_public,omitempty"` + IsInventoryPublic *bool `protobuf:"varint,5,opt,name=is_inventory_public,json=isInventoryPublic" json:"is_inventory_public,omitempty"` + IsVacBanned *bool `protobuf:"varint,7,opt,name=is_vac_banned,json=isVacBanned" json:"is_vac_banned,omitempty"` + IsCyberCafe *bool `protobuf:"varint,8,opt,name=is_cyber_cafe,json=isCyberCafe" json:"is_cyber_cafe,omitempty"` + IsSchoolAccount *bool `protobuf:"varint,9,opt,name=is_school_account,json=isSchoolAccount" json:"is_school_account,omitempty"` + IsLimited *bool `protobuf:"varint,10,opt,name=is_limited,json=isLimited" json:"is_limited,omitempty"` + IsSubscribed *bool `protobuf:"varint,11,opt,name=is_subscribed,json=isSubscribed" json:"is_subscribed,omitempty"` + Package *uint32 `protobuf:"varint,12,opt,name=package" json:"package,omitempty"` + IsFreeTrialAccount *bool `protobuf:"varint,13,opt,name=is_free_trial_account,json=isFreeTrialAccount" json:"is_free_trial_account,omitempty"` + FreeTrialExpiration *uint32 `protobuf:"varint,14,opt,name=free_trial_expiration,json=freeTrialExpiration" json:"free_trial_expiration,omitempty"` + IsLowViolence *bool `protobuf:"varint,15,opt,name=is_low_violence,json=isLowViolence" json:"is_low_violence,omitempty"` + IsAccountLockedDown *bool `protobuf:"varint,16,opt,name=is_account_locked_down,json=isAccountLockedDown" json:"is_account_locked_down,omitempty"` + IsCommunityBanned *bool `protobuf:"varint,17,opt,name=is_community_banned,json=isCommunityBanned" json:"is_community_banned,omitempty"` + IsTradeBanned *bool `protobuf:"varint,18,opt,name=is_trade_banned,json=isTradeBanned" json:"is_trade_banned,omitempty"` + TradeBanExpiration *uint32 `protobuf:"varint,19,opt,name=trade_ban_expiration,json=tradeBanExpiration" json:"trade_ban_expiration,omitempty"` + Accountid *uint32 `protobuf:"varint,20,opt,name=accountid" json:"accountid,omitempty"` + SuspensionEndTime *uint32 `protobuf:"varint,21,opt,name=suspension_end_time,json=suspensionEndTime" json:"suspension_end_time,omitempty"` + Currency *string `protobuf:"bytes,22,opt,name=currency" json:"currency,omitempty"` + SteamLevel *uint32 `protobuf:"varint,23,opt,name=steam_level,json=steamLevel" json:"steam_level,omitempty"` + FriendCount *uint32 `protobuf:"varint,24,opt,name=friend_count,json=friendCount" json:"friend_count,omitempty"` + AccountCreationTime *uint32 `protobuf:"varint,25,opt,name=account_creation_time,json=accountCreationTime" json:"account_creation_time,omitempty"` + IsSteamguardEnabled *bool `protobuf:"varint,27,opt,name=is_steamguard_enabled,json=isSteamguardEnabled" json:"is_steamguard_enabled,omitempty"` + IsPhoneVerified *bool `protobuf:"varint,28,opt,name=is_phone_verified,json=isPhoneVerified" json:"is_phone_verified,omitempty"` + IsTwoFactorAuthEnabled *bool `protobuf:"varint,29,opt,name=is_two_factor_auth_enabled,json=isTwoFactorAuthEnabled" json:"is_two_factor_auth_enabled,omitempty"` + TwoFactorEnabledTime *uint32 `protobuf:"varint,30,opt,name=two_factor_enabled_time,json=twoFactorEnabledTime" json:"two_factor_enabled_time,omitempty"` + PhoneVerificationTime *uint32 `protobuf:"varint,31,opt,name=phone_verification_time,json=phoneVerificationTime" json:"phone_verification_time,omitempty"` + PhoneId *uint64 `protobuf:"varint,33,opt,name=phone_id,json=phoneId" json:"phone_id,omitempty"` + IsPhoneIdentifying *bool `protobuf:"varint,34,opt,name=is_phone_identifying,json=isPhoneIdentifying" json:"is_phone_identifying,omitempty"` + RtIdentityLinked *uint32 `protobuf:"varint,35,opt,name=rt_identity_linked,json=rtIdentityLinked" json:"rt_identity_linked,omitempty"` + RtBirthDate *uint32 `protobuf:"varint,36,opt,name=rt_birth_date,json=rtBirthDate" json:"rt_birth_date,omitempty"` + TxnCountryCode *string `protobuf:"bytes,37,opt,name=txn_country_code,json=txnCountryCode" json:"txn_country_code,omitempty"` + HasAcceptedChinaSsa *bool `protobuf:"varint,38,opt,name=has_accepted_china_ssa,json=hasAcceptedChinaSsa" json:"has_accepted_china_ssa,omitempty"` + IsBannedSteamChina *bool `protobuf:"varint,39,opt,name=is_banned_steam_china,json=isBannedSteamChina" json:"is_banned_steam_china,omitempty"` +} + +// Default values for CGCSystemMsg_GetAccountDetails_Response fields. +const ( + Default_CGCSystemMsg_GetAccountDetails_Response_EresultDeprecated = uint32(2) +) + +func (x *CGCSystemMsg_GetAccountDetails_Response) Reset() { + *x = CGCSystemMsg_GetAccountDetails_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCSystemMsg_GetAccountDetails_Response) ProtoMessage() {} + +func (x *CGCSystemMsg_GetAccountDetails_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCSystemMsg_GetAccountDetails_Response.ProtoReflect.Descriptor instead. +func (*CGCSystemMsg_GetAccountDetails_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{38} +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetEresultDeprecated() uint32 { + if x != nil && x.EresultDeprecated != nil { + return *x.EresultDeprecated + } + return Default_CGCSystemMsg_GetAccountDetails_Response_EresultDeprecated +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountName() string { + if x != nil && x.AccountName != nil { + return *x.AccountName + } + return "" +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetPersonaName() string { + if x != nil && x.PersonaName != nil { + return *x.PersonaName + } + return "" +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsProfilePublic() bool { + if x != nil && x.IsProfilePublic != nil { + return *x.IsProfilePublic + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsInventoryPublic() bool { + if x != nil && x.IsInventoryPublic != nil { + return *x.IsInventoryPublic + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsVacBanned() bool { + if x != nil && x.IsVacBanned != nil { + return *x.IsVacBanned + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsCyberCafe() bool { + if x != nil && x.IsCyberCafe != nil { + return *x.IsCyberCafe + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSchoolAccount() bool { + if x != nil && x.IsSchoolAccount != nil { + return *x.IsSchoolAccount + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsLimited() bool { + if x != nil && x.IsLimited != nil { + return *x.IsLimited + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSubscribed() bool { + if x != nil && x.IsSubscribed != nil { + return *x.IsSubscribed + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetPackage() uint32 { + if x != nil && x.Package != nil { + return *x.Package + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsFreeTrialAccount() bool { + if x != nil && x.IsFreeTrialAccount != nil { + return *x.IsFreeTrialAccount + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetFreeTrialExpiration() uint32 { + if x != nil && x.FreeTrialExpiration != nil { + return *x.FreeTrialExpiration + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsLowViolence() bool { + if x != nil && x.IsLowViolence != nil { + return *x.IsLowViolence + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsAccountLockedDown() bool { + if x != nil && x.IsAccountLockedDown != nil { + return *x.IsAccountLockedDown + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsCommunityBanned() bool { + if x != nil && x.IsCommunityBanned != nil { + return *x.IsCommunityBanned + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsTradeBanned() bool { + if x != nil && x.IsTradeBanned != nil { + return *x.IsTradeBanned + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetTradeBanExpiration() uint32 { + if x != nil && x.TradeBanExpiration != nil { + return *x.TradeBanExpiration + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountid() uint32 { + if x != nil && x.Accountid != nil { + return *x.Accountid + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetSuspensionEndTime() uint32 { + if x != nil && x.SuspensionEndTime != nil { + return *x.SuspensionEndTime + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetCurrency() string { + if x != nil && x.Currency != nil { + return *x.Currency + } + return "" +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetSteamLevel() uint32 { + if x != nil && x.SteamLevel != nil { + return *x.SteamLevel + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetFriendCount() uint32 { + if x != nil && x.FriendCount != nil { + return *x.FriendCount + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetAccountCreationTime() uint32 { + if x != nil && x.AccountCreationTime != nil { + return *x.AccountCreationTime + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsSteamguardEnabled() bool { + if x != nil && x.IsSteamguardEnabled != nil { + return *x.IsSteamguardEnabled + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsPhoneVerified() bool { + if x != nil && x.IsPhoneVerified != nil { + return *x.IsPhoneVerified + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsTwoFactorAuthEnabled() bool { + if x != nil && x.IsTwoFactorAuthEnabled != nil { + return *x.IsTwoFactorAuthEnabled + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetTwoFactorEnabledTime() uint32 { + if x != nil && x.TwoFactorEnabledTime != nil { + return *x.TwoFactorEnabledTime + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetPhoneVerificationTime() uint32 { + if x != nil && x.PhoneVerificationTime != nil { + return *x.PhoneVerificationTime + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetPhoneId() uint64 { + if x != nil && x.PhoneId != nil { + return *x.PhoneId + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsPhoneIdentifying() bool { + if x != nil && x.IsPhoneIdentifying != nil { + return *x.IsPhoneIdentifying + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetRtIdentityLinked() uint32 { + if x != nil && x.RtIdentityLinked != nil { + return *x.RtIdentityLinked + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetRtBirthDate() uint32 { + if x != nil && x.RtBirthDate != nil { + return *x.RtBirthDate + } + return 0 +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetTxnCountryCode() string { + if x != nil && x.TxnCountryCode != nil { + return *x.TxnCountryCode + } + return "" +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetHasAcceptedChinaSsa() bool { + if x != nil && x.HasAcceptedChinaSsa != nil { + return *x.HasAcceptedChinaSsa + } + return false +} + +func (x *CGCSystemMsg_GetAccountDetails_Response) GetIsBannedSteamChina() bool { + if x != nil && x.IsBannedSteamChina != nil { + return *x.IsBannedSteamChina + } + return false +} + +type CMsgGCGetPersonaNames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamids []uint64 `protobuf:"fixed64,1,rep,name=steamids" json:"steamids,omitempty"` +} + +func (x *CMsgGCGetPersonaNames) Reset() { + *x = CMsgGCGetPersonaNames{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetPersonaNames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetPersonaNames) ProtoMessage() {} + +func (x *CMsgGCGetPersonaNames) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetPersonaNames.ProtoReflect.Descriptor instead. +func (*CMsgGCGetPersonaNames) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{39} +} + +func (x *CMsgGCGetPersonaNames) GetSteamids() []uint64 { + if x != nil { + return x.Steamids + } + return nil +} + +type CMsgGCGetPersonaNames_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SucceededLookups []*CMsgGCGetPersonaNames_Response_PersonaName `protobuf:"bytes,1,rep,name=succeeded_lookups,json=succeededLookups" json:"succeeded_lookups,omitempty"` + FailedLookupSteamids []uint64 `protobuf:"fixed64,2,rep,name=failed_lookup_steamids,json=failedLookupSteamids" json:"failed_lookup_steamids,omitempty"` +} + +func (x *CMsgGCGetPersonaNames_Response) Reset() { + *x = CMsgGCGetPersonaNames_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetPersonaNames_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetPersonaNames_Response) ProtoMessage() {} + +func (x *CMsgGCGetPersonaNames_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetPersonaNames_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCGetPersonaNames_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{40} +} + +func (x *CMsgGCGetPersonaNames_Response) GetSucceededLookups() []*CMsgGCGetPersonaNames_Response_PersonaName { + if x != nil { + return x.SucceededLookups + } + return nil +} + +func (x *CMsgGCGetPersonaNames_Response) GetFailedLookupSteamids() []uint64 { + if x != nil { + return x.FailedLookupSteamids + } + return nil +} + +type CMsgGCCheckFriendship struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamidLeft *uint64 `protobuf:"fixed64,1,opt,name=steamid_left,json=steamidLeft" json:"steamid_left,omitempty"` + SteamidRight *uint64 `protobuf:"fixed64,2,opt,name=steamid_right,json=steamidRight" json:"steamid_right,omitempty"` +} + +func (x *CMsgGCCheckFriendship) Reset() { + *x = CMsgGCCheckFriendship{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCheckFriendship) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCheckFriendship) ProtoMessage() {} + +func (x *CMsgGCCheckFriendship) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCheckFriendship.ProtoReflect.Descriptor instead. +func (*CMsgGCCheckFriendship) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{41} +} + +func (x *CMsgGCCheckFriendship) GetSteamidLeft() uint64 { + if x != nil && x.SteamidLeft != nil { + return *x.SteamidLeft + } + return 0 +} + +func (x *CMsgGCCheckFriendship) GetSteamidRight() uint64 { + if x != nil && x.SteamidRight != nil { + return *x.SteamidRight + } + return 0 +} + +type CMsgGCCheckFriendship_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success *bool `protobuf:"varint,1,opt,name=success" json:"success,omitempty"` + FoundFriendship *bool `protobuf:"varint,2,opt,name=found_friendship,json=foundFriendship" json:"found_friendship,omitempty"` +} + +func (x *CMsgGCCheckFriendship_Response) Reset() { + *x = CMsgGCCheckFriendship_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCCheckFriendship_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCCheckFriendship_Response) ProtoMessage() {} + +func (x *CMsgGCCheckFriendship_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCCheckFriendship_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCCheckFriendship_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{42} +} + +func (x *CMsgGCCheckFriendship_Response) GetSuccess() bool { + if x != nil && x.Success != nil { + return *x.Success + } + return false +} + +func (x *CMsgGCCheckFriendship_Response) GetFoundFriendship() bool { + if x != nil && x.FoundFriendship != nil { + return *x.FoundFriendship + } + return false +} + +type CMsgGCMsgMasterSetDirectory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MasterDirIndex *uint32 `protobuf:"varint,1,opt,name=master_dir_index,json=masterDirIndex" json:"master_dir_index,omitempty"` + Dir []*CMsgGCMsgMasterSetDirectory_SubGC `protobuf:"bytes,2,rep,name=dir" json:"dir,omitempty"` +} + +func (x *CMsgGCMsgMasterSetDirectory) Reset() { + *x = CMsgGCMsgMasterSetDirectory{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetDirectory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetDirectory) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetDirectory) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetDirectory.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetDirectory) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{43} +} + +func (x *CMsgGCMsgMasterSetDirectory) GetMasterDirIndex() uint32 { + if x != nil && x.MasterDirIndex != nil { + return *x.MasterDirIndex + } + return 0 +} + +func (x *CMsgGCMsgMasterSetDirectory) GetDir() []*CMsgGCMsgMasterSetDirectory_SubGC { + if x != nil { + return x.Dir + } + return nil +} + +type CMsgGCMsgMasterSetDirectory_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` +} + +// Default values for CMsgGCMsgMasterSetDirectory_Response fields. +const ( + Default_CMsgGCMsgMasterSetDirectory_Response_Eresult = int32(2) +) + +func (x *CMsgGCMsgMasterSetDirectory_Response) Reset() { + *x = CMsgGCMsgMasterSetDirectory_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetDirectory_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetDirectory_Response) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetDirectory_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetDirectory_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetDirectory_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{44} +} + +func (x *CMsgGCMsgMasterSetDirectory_Response) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgGCMsgMasterSetDirectory_Response_Eresult +} + +func (x *CMsgGCMsgMasterSetDirectory_Response) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type CMsgGCMsgWebAPIJobRequestForwardResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DirIndex *uint32 `protobuf:"varint,1,opt,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` +} + +func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) Reset() { + *x = CMsgGCMsgWebAPIJobRequestForwardResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgWebAPIJobRequestForwardResponse) ProtoMessage() {} + +func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgWebAPIJobRequestForwardResponse.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgWebAPIJobRequestForwardResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{45} +} + +func (x *CMsgGCMsgWebAPIJobRequestForwardResponse) GetDirIndex() uint32 { + if x != nil && x.DirIndex != nil { + return *x.DirIndex + } + return 0 +} + +type CGCSystemMsg_GetPurchaseTrust_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Request) Reset() { + *x = CGCSystemMsg_GetPurchaseTrust_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCSystemMsg_GetPurchaseTrust_Request) ProtoMessage() {} + +func (x *CGCSystemMsg_GetPurchaseTrust_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCSystemMsg_GetPurchaseTrust_Request.ProtoReflect.Descriptor instead. +func (*CGCSystemMsg_GetPurchaseTrust_Request) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{46} +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Request) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +type CGCSystemMsg_GetPurchaseTrust_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HasPriorPurchaseHistory *bool `protobuf:"varint,1,opt,name=has_prior_purchase_history,json=hasPriorPurchaseHistory" json:"has_prior_purchase_history,omitempty"` + HasNoRecentPasswordResets *bool `protobuf:"varint,2,opt,name=has_no_recent_password_resets,json=hasNoRecentPasswordResets" json:"has_no_recent_password_resets,omitempty"` + IsWalletCashTrusted *bool `protobuf:"varint,3,opt,name=is_wallet_cash_trusted,json=isWalletCashTrusted" json:"is_wallet_cash_trusted,omitempty"` + TimeAllTrusted *uint32 `protobuf:"varint,4,opt,name=time_all_trusted,json=timeAllTrusted" json:"time_all_trusted,omitempty"` +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) Reset() { + *x = CGCSystemMsg_GetPurchaseTrust_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCSystemMsg_GetPurchaseTrust_Response) ProtoMessage() {} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCSystemMsg_GetPurchaseTrust_Response.ProtoReflect.Descriptor instead. +func (*CGCSystemMsg_GetPurchaseTrust_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{47} +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetHasPriorPurchaseHistory() bool { + if x != nil && x.HasPriorPurchaseHistory != nil { + return *x.HasPriorPurchaseHistory + } + return false +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetHasNoRecentPasswordResets() bool { + if x != nil && x.HasNoRecentPasswordResets != nil { + return *x.HasNoRecentPasswordResets + } + return false +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetIsWalletCashTrusted() bool { + if x != nil && x.IsWalletCashTrusted != nil { + return *x.IsWalletCashTrusted + } + return false +} + +func (x *CGCSystemMsg_GetPurchaseTrust_Response) GetTimeAllTrusted() uint32 { + if x != nil && x.TimeAllTrusted != nil { + return *x.TimeAllTrusted + } + return 0 +} + +type CMsgGCHAccountVacStatusChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + AppId *uint32 `protobuf:"varint,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` + RtimeVacbanStarts *uint32 `protobuf:"varint,3,opt,name=rtime_vacban_starts,json=rtimeVacbanStarts" json:"rtime_vacban_starts,omitempty"` + IsBannedNow *bool `protobuf:"varint,4,opt,name=is_banned_now,json=isBannedNow" json:"is_banned_now,omitempty"` + IsBannedFuture *bool `protobuf:"varint,5,opt,name=is_banned_future,json=isBannedFuture" json:"is_banned_future,omitempty"` +} + +func (x *CMsgGCHAccountVacStatusChange) Reset() { + *x = CMsgGCHAccountVacStatusChange{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCHAccountVacStatusChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCHAccountVacStatusChange) ProtoMessage() {} + +func (x *CMsgGCHAccountVacStatusChange) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCHAccountVacStatusChange.ProtoReflect.Descriptor instead. +func (*CMsgGCHAccountVacStatusChange) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{48} +} + +func (x *CMsgGCHAccountVacStatusChange) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CMsgGCHAccountVacStatusChange) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +func (x *CMsgGCHAccountVacStatusChange) GetRtimeVacbanStarts() uint32 { + if x != nil && x.RtimeVacbanStarts != nil { + return *x.RtimeVacbanStarts + } + return 0 +} + +func (x *CMsgGCHAccountVacStatusChange) GetIsBannedNow() bool { + if x != nil && x.IsBannedNow != nil { + return *x.IsBannedNow + } + return false +} + +func (x *CMsgGCHAccountVacStatusChange) GetIsBannedFuture() bool { + if x != nil && x.IsBannedFuture != nil { + return *x.IsBannedFuture + } + return false +} + +type CMsgGCGetPartnerAccountLink struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` +} + +func (x *CMsgGCGetPartnerAccountLink) Reset() { + *x = CMsgGCGetPartnerAccountLink{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetPartnerAccountLink) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetPartnerAccountLink) ProtoMessage() {} + +func (x *CMsgGCGetPartnerAccountLink) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetPartnerAccountLink.ProtoReflect.Descriptor instead. +func (*CMsgGCGetPartnerAccountLink) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{49} +} + +func (x *CMsgGCGetPartnerAccountLink) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +type CMsgGCGetPartnerAccountLink_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pwid *uint32 `protobuf:"varint,1,opt,name=pwid" json:"pwid,omitempty"` + Nexonid *uint32 `protobuf:"varint,2,opt,name=nexonid" json:"nexonid,omitempty"` + Ageclass *int32 `protobuf:"varint,3,opt,name=ageclass" json:"ageclass,omitempty"` + IdVerified *bool `protobuf:"varint,4,opt,name=id_verified,json=idVerified,def=1" json:"id_verified,omitempty"` + IsAdult *bool `protobuf:"varint,5,opt,name=is_adult,json=isAdult" json:"is_adult,omitempty"` +} + +// Default values for CMsgGCGetPartnerAccountLink_Response fields. +const ( + Default_CMsgGCGetPartnerAccountLink_Response_IdVerified = bool(true) +) + +func (x *CMsgGCGetPartnerAccountLink_Response) Reset() { + *x = CMsgGCGetPartnerAccountLink_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetPartnerAccountLink_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetPartnerAccountLink_Response) ProtoMessage() {} + +func (x *CMsgGCGetPartnerAccountLink_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetPartnerAccountLink_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCGetPartnerAccountLink_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{50} +} + +func (x *CMsgGCGetPartnerAccountLink_Response) GetPwid() uint32 { + if x != nil && x.Pwid != nil { + return *x.Pwid + } + return 0 +} + +func (x *CMsgGCGetPartnerAccountLink_Response) GetNexonid() uint32 { + if x != nil && x.Nexonid != nil { + return *x.Nexonid + } + return 0 +} + +func (x *CMsgGCGetPartnerAccountLink_Response) GetAgeclass() int32 { + if x != nil && x.Ageclass != nil { + return *x.Ageclass + } + return 0 +} + +func (x *CMsgGCGetPartnerAccountLink_Response) GetIdVerified() bool { + if x != nil && x.IdVerified != nil { + return *x.IdVerified + } + return Default_CMsgGCGetPartnerAccountLink_Response_IdVerified +} + +func (x *CMsgGCGetPartnerAccountLink_Response) GetIsAdult() bool { + if x != nil && x.IsAdult != nil { + return *x.IsAdult + } + return false +} + +type CMsgGCRoutingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DirIndex []uint32 `protobuf:"varint,1,rep,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` + Method *CMsgGCRoutingInfo_RoutingMethod `protobuf:"varint,2,opt,name=method,enum=com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo_RoutingMethod,def=0" json:"method,omitempty"` + Fallback *CMsgGCRoutingInfo_RoutingMethod `protobuf:"varint,3,opt,name=fallback,enum=com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo_RoutingMethod,def=1" json:"fallback,omitempty"` + ProtobufField *uint32 `protobuf:"varint,4,opt,name=protobuf_field,json=protobufField" json:"protobuf_field,omitempty"` + WebapiParam *string `protobuf:"bytes,5,opt,name=webapi_param,json=webapiParam" json:"webapi_param,omitempty"` +} + +// Default values for CMsgGCRoutingInfo fields. +const ( + Default_CMsgGCRoutingInfo_Method = CMsgGCRoutingInfo_RANDOM + Default_CMsgGCRoutingInfo_Fallback = CMsgGCRoutingInfo_DISCARD +) + +func (x *CMsgGCRoutingInfo) Reset() { + *x = CMsgGCRoutingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCRoutingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCRoutingInfo) ProtoMessage() {} + +func (x *CMsgGCRoutingInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCRoutingInfo.ProtoReflect.Descriptor instead. +func (*CMsgGCRoutingInfo) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{51} +} + +func (x *CMsgGCRoutingInfo) GetDirIndex() []uint32 { + if x != nil { + return x.DirIndex + } + return nil +} + +func (x *CMsgGCRoutingInfo) GetMethod() CMsgGCRoutingInfo_RoutingMethod { + if x != nil && x.Method != nil { + return *x.Method + } + return Default_CMsgGCRoutingInfo_Method +} + +func (x *CMsgGCRoutingInfo) GetFallback() CMsgGCRoutingInfo_RoutingMethod { + if x != nil && x.Fallback != nil { + return *x.Fallback + } + return Default_CMsgGCRoutingInfo_Fallback +} + +func (x *CMsgGCRoutingInfo) GetProtobufField() uint32 { + if x != nil && x.ProtobufField != nil { + return *x.ProtobufField + } + return 0 +} + +func (x *CMsgGCRoutingInfo) GetWebapiParam() string { + if x != nil && x.WebapiParam != nil { + return *x.WebapiParam + } + return "" +} + +type CMsgGCMsgMasterSetWebAPIRouting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*CMsgGCMsgMasterSetWebAPIRouting_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting) Reset() { + *x = CMsgGCMsgMasterSetWebAPIRouting{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetWebAPIRouting) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetWebAPIRouting) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetWebAPIRouting) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{52} +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting) GetEntries() []*CMsgGCMsgMasterSetWebAPIRouting_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type CMsgGCMsgMasterSetClientMsgRouting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*CMsgGCMsgMasterSetClientMsgRouting_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting) Reset() { + *x = CMsgGCMsgMasterSetClientMsgRouting{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetClientMsgRouting) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetClientMsgRouting) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetClientMsgRouting) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{53} +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting) GetEntries() []*CMsgGCMsgMasterSetClientMsgRouting_Entry { + if x != nil { + return x.Entries + } + return nil +} + +type CMsgGCMsgMasterSetWebAPIRouting_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` +} + +// Default values for CMsgGCMsgMasterSetWebAPIRouting_Response fields. +const ( + Default_CMsgGCMsgMasterSetWebAPIRouting_Response_Eresult = int32(2) +) + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) Reset() { + *x = CMsgGCMsgMasterSetWebAPIRouting_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetWebAPIRouting_Response) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetWebAPIRouting_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{54} +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Response) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgGCMsgMasterSetWebAPIRouting_Response_Eresult +} + +type CMsgGCMsgMasterSetClientMsgRouting_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *int32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` +} + +// Default values for CMsgGCMsgMasterSetClientMsgRouting_Response fields. +const ( + Default_CMsgGCMsgMasterSetClientMsgRouting_Response_Eresult = int32(2) +) + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) Reset() { + *x = CMsgGCMsgMasterSetClientMsgRouting_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetClientMsgRouting_Response) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting_Response.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetClientMsgRouting_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{55} +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Response) GetEresult() int32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgGCMsgMasterSetClientMsgRouting_Response_Eresult +} + +type CMsgGCMsgSetOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Options []CMsgGCMsgSetOptions_Option `protobuf:"varint,1,rep,name=options,enum=com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions_Option" json:"options,omitempty"` + ClientMsgRanges []*CMsgGCMsgSetOptions_MessageRange `protobuf:"bytes,2,rep,name=client_msg_ranges,json=clientMsgRanges" json:"client_msg_ranges,omitempty"` +} + +func (x *CMsgGCMsgSetOptions) Reset() { + *x = CMsgGCMsgSetOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgSetOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgSetOptions) ProtoMessage() {} + +func (x *CMsgGCMsgSetOptions) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgSetOptions.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgSetOptions) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{56} +} + +func (x *CMsgGCMsgSetOptions) GetOptions() []CMsgGCMsgSetOptions_Option { + if x != nil { + return x.Options + } + return nil +} + +func (x *CMsgGCMsgSetOptions) GetClientMsgRanges() []*CMsgGCMsgSetOptions_MessageRange { + if x != nil { + return x.ClientMsgRanges + } + return nil +} + +type CMsgGCHUpdateSession struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SteamId *uint64 `protobuf:"fixed64,1,opt,name=steam_id,json=steamId" json:"steam_id,omitempty"` + AppId *uint32 `protobuf:"varint,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` + Online *bool `protobuf:"varint,3,opt,name=online" json:"online,omitempty"` + ServerSteamId *uint64 `protobuf:"fixed64,4,opt,name=server_steam_id,json=serverSteamId" json:"server_steam_id,omitempty"` + ServerAddr *uint32 `protobuf:"varint,5,opt,name=server_addr,json=serverAddr" json:"server_addr,omitempty"` + ServerPort *uint32 `protobuf:"varint,6,opt,name=server_port,json=serverPort" json:"server_port,omitempty"` + OsType *uint32 `protobuf:"varint,7,opt,name=os_type,json=osType" json:"os_type,omitempty"` + ClientAddr *uint32 `protobuf:"varint,8,opt,name=client_addr,json=clientAddr" json:"client_addr,omitempty"` + ExtraFields []*CMsgGCHUpdateSession_ExtraField `protobuf:"bytes,9,rep,name=extra_fields,json=extraFields" json:"extra_fields,omitempty"` + OwnerId *uint64 `protobuf:"fixed64,10,opt,name=owner_id,json=ownerId" json:"owner_id,omitempty"` + CmSessionSysid *uint32 `protobuf:"varint,11,opt,name=cm_session_sysid,json=cmSessionSysid" json:"cm_session_sysid,omitempty"` + CmSessionIdentifier *uint32 `protobuf:"varint,12,opt,name=cm_session_identifier,json=cmSessionIdentifier" json:"cm_session_identifier,omitempty"` + DepotIds []uint32 `protobuf:"varint,13,rep,name=depot_ids,json=depotIds" json:"depot_ids,omitempty"` +} + +func (x *CMsgGCHUpdateSession) Reset() { + *x = CMsgGCHUpdateSession{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCHUpdateSession) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCHUpdateSession) ProtoMessage() {} + +func (x *CMsgGCHUpdateSession) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCHUpdateSession.ProtoReflect.Descriptor instead. +func (*CMsgGCHUpdateSession) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{57} +} + +func (x *CMsgGCHUpdateSession) GetSteamId() uint64 { + if x != nil && x.SteamId != nil { + return *x.SteamId + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetAppId() uint32 { + if x != nil && x.AppId != nil { + return *x.AppId + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetOnline() bool { + if x != nil && x.Online != nil { + return *x.Online + } + return false +} + +func (x *CMsgGCHUpdateSession) GetServerSteamId() uint64 { + if x != nil && x.ServerSteamId != nil { + return *x.ServerSteamId + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetServerAddr() uint32 { + if x != nil && x.ServerAddr != nil { + return *x.ServerAddr + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetServerPort() uint32 { + if x != nil && x.ServerPort != nil { + return *x.ServerPort + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetOsType() uint32 { + if x != nil && x.OsType != nil { + return *x.OsType + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetClientAddr() uint32 { + if x != nil && x.ClientAddr != nil { + return *x.ClientAddr + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetExtraFields() []*CMsgGCHUpdateSession_ExtraField { + if x != nil { + return x.ExtraFields + } + return nil +} + +func (x *CMsgGCHUpdateSession) GetOwnerId() uint64 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetCmSessionSysid() uint32 { + if x != nil && x.CmSessionSysid != nil { + return *x.CmSessionSysid + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetCmSessionIdentifier() uint32 { + if x != nil && x.CmSessionIdentifier != nil { + return *x.CmSessionIdentifier + } + return 0 +} + +func (x *CMsgGCHUpdateSession) GetDepotIds() []uint32 { + if x != nil { + return x.DepotIds + } + return nil +} + +type CMsgNotificationOfSuspiciousActivity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + Appid *uint32 `protobuf:"varint,2,opt,name=appid" json:"appid,omitempty"` + MultipleInstances *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances `protobuf:"bytes,3,opt,name=multiple_instances,json=multipleInstances" json:"multiple_instances,omitempty"` +} + +func (x *CMsgNotificationOfSuspiciousActivity) Reset() { + *x = CMsgNotificationOfSuspiciousActivity{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgNotificationOfSuspiciousActivity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgNotificationOfSuspiciousActivity) ProtoMessage() {} + +func (x *CMsgNotificationOfSuspiciousActivity) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgNotificationOfSuspiciousActivity.ProtoReflect.Descriptor instead. +func (*CMsgNotificationOfSuspiciousActivity) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{58} +} + +func (x *CMsgNotificationOfSuspiciousActivity) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgNotificationOfSuspiciousActivity) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CMsgNotificationOfSuspiciousActivity) GetMultipleInstances() *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances { + if x != nil { + return x.MultipleInstances + } + return nil +} + +type CMsgDPPartnerMicroTxns struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + GcName *string `protobuf:"bytes,2,opt,name=gc_name,json=gcName" json:"gc_name,omitempty"` + Partner *CMsgDPPartnerMicroTxns_PartnerInfo `protobuf:"bytes,3,opt,name=partner" json:"partner,omitempty"` + Transactions []*CMsgDPPartnerMicroTxns_PartnerMicroTxn `protobuf:"bytes,4,rep,name=transactions" json:"transactions,omitempty"` +} + +func (x *CMsgDPPartnerMicroTxns) Reset() { + *x = CMsgDPPartnerMicroTxns{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgDPPartnerMicroTxns) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgDPPartnerMicroTxns) ProtoMessage() {} + +func (x *CMsgDPPartnerMicroTxns) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgDPPartnerMicroTxns.ProtoReflect.Descriptor instead. +func (*CMsgDPPartnerMicroTxns) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{59} +} + +func (x *CMsgDPPartnerMicroTxns) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns) GetGcName() string { + if x != nil && x.GcName != nil { + return *x.GcName + } + return "" +} + +func (x *CMsgDPPartnerMicroTxns) GetPartner() *CMsgDPPartnerMicroTxns_PartnerInfo { + if x != nil { + return x.Partner + } + return nil +} + +func (x *CMsgDPPartnerMicroTxns) GetTransactions() []*CMsgDPPartnerMicroTxns_PartnerMicroTxn { + if x != nil { + return x.Transactions + } + return nil +} + +type CMsgDPPartnerMicroTxnsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Eresult *uint32 `protobuf:"varint,1,opt,name=eresult,def=2" json:"eresult,omitempty"` + Eerrorcode *CMsgDPPartnerMicroTxnsResponse_EErrorCode `protobuf:"varint,2,opt,name=eerrorcode,enum=com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxnsResponse_EErrorCode,def=0" json:"eerrorcode,omitempty"` +} + +// Default values for CMsgDPPartnerMicroTxnsResponse fields. +const ( + Default_CMsgDPPartnerMicroTxnsResponse_Eresult = uint32(2) + Default_CMsgDPPartnerMicroTxnsResponse_Eerrorcode = CMsgDPPartnerMicroTxnsResponse_k_MsgValid +) + +func (x *CMsgDPPartnerMicroTxnsResponse) Reset() { + *x = CMsgDPPartnerMicroTxnsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgDPPartnerMicroTxnsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgDPPartnerMicroTxnsResponse) ProtoMessage() {} + +func (x *CMsgDPPartnerMicroTxnsResponse) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgDPPartnerMicroTxnsResponse.ProtoReflect.Descriptor instead. +func (*CMsgDPPartnerMicroTxnsResponse) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{60} +} + +func (x *CMsgDPPartnerMicroTxnsResponse) GetEresult() uint32 { + if x != nil && x.Eresult != nil { + return *x.Eresult + } + return Default_CMsgDPPartnerMicroTxnsResponse_Eresult +} + +func (x *CMsgDPPartnerMicroTxnsResponse) GetEerrorcode() CMsgDPPartnerMicroTxnsResponse_EErrorCode { + if x != nil && x.Eerrorcode != nil { + return *x.Eerrorcode + } + return Default_CMsgDPPartnerMicroTxnsResponse_Eerrorcode +} + +type CChinaAgreementSessions_StartAgreementSessionInGame_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Appid *uint32 `protobuf:"varint,1,opt,name=appid" json:"appid,omitempty"` + Steamid *uint64 `protobuf:"fixed64,2,opt,name=steamid" json:"steamid,omitempty"` + ClientIpaddress *string `protobuf:"bytes,3,opt,name=client_ipaddress,json=clientIpaddress" json:"client_ipaddress,omitempty"` +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) Reset() { + *x = CChinaAgreementSessions_StartAgreementSessionInGame_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CChinaAgreementSessions_StartAgreementSessionInGame_Request) ProtoMessage() {} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CChinaAgreementSessions_StartAgreementSessionInGame_Request.ProtoReflect.Descriptor instead. +func (*CChinaAgreementSessions_StartAgreementSessionInGame_Request) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{61} +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Request) GetClientIpaddress() string { + if x != nil && x.ClientIpaddress != nil { + return *x.ClientIpaddress + } + return "" +} + +type CChinaAgreementSessions_StartAgreementSessionInGame_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AgreementUrl *string `protobuf:"bytes,1,opt,name=agreement_url,json=agreementUrl" json:"agreement_url,omitempty"` +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) Reset() { + *x = CChinaAgreementSessions_StartAgreementSessionInGame_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CChinaAgreementSessions_StartAgreementSessionInGame_Response) ProtoMessage() {} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CChinaAgreementSessions_StartAgreementSessionInGame_Response.ProtoReflect.Descriptor instead. +func (*CChinaAgreementSessions_StartAgreementSessionInGame_Response) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{62} +} + +func (x *CChinaAgreementSessions_StartAgreementSessionInGame_Response) GetAgreementUrl() string { + if x != nil && x.AgreementUrl != nil { + return *x.AgreementUrl + } + return "" +} + +type CMsgHttpRequest_RequestHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CMsgHttpRequest_RequestHeader) Reset() { + *x = CMsgHttpRequest_RequestHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgHttpRequest_RequestHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgHttpRequest_RequestHeader) ProtoMessage() {} + +func (x *CMsgHttpRequest_RequestHeader) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgHttpRequest_RequestHeader.ProtoReflect.Descriptor instead. +func (*CMsgHttpRequest_RequestHeader) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *CMsgHttpRequest_RequestHeader) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgHttpRequest_RequestHeader) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CMsgHttpRequest_QueryParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CMsgHttpRequest_QueryParam) Reset() { + *x = CMsgHttpRequest_QueryParam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgHttpRequest_QueryParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgHttpRequest_QueryParam) ProtoMessage() {} + +func (x *CMsgHttpRequest_QueryParam) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgHttpRequest_QueryParam.ProtoReflect.Descriptor instead. +func (*CMsgHttpRequest_QueryParam) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{2, 1} +} + +func (x *CMsgHttpRequest_QueryParam) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgHttpRequest_QueryParam) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type CMsgHttpResponse_ResponseHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CMsgHttpResponse_ResponseHeader) Reset() { + *x = CMsgHttpResponse_ResponseHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgHttpResponse_ResponseHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgHttpResponse_ResponseHeader) ProtoMessage() {} + +func (x *CMsgHttpResponse_ResponseHeader) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgHttpResponse_ResponseHeader.ProtoReflect.Descriptor instead. +func (*CMsgHttpResponse_ResponseHeader) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *CMsgHttpResponse_ResponseHeader) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgHttpResponse_ResponseHeader) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CMsgAMGetUserGameStatsResponse_Stats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatId *uint32 `protobuf:"varint,1,opt,name=stat_id,json=statId" json:"stat_id,omitempty"` + StatValue *uint32 `protobuf:"varint,2,opt,name=stat_value,json=statValue" json:"stat_value,omitempty"` +} + +func (x *CMsgAMGetUserGameStatsResponse_Stats) Reset() { + *x = CMsgAMGetUserGameStatsResponse_Stats{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetUserGameStatsResponse_Stats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetUserGameStatsResponse_Stats) ProtoMessage() {} + +func (x *CMsgAMGetUserGameStatsResponse_Stats) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetUserGameStatsResponse_Stats.ProtoReflect.Descriptor instead. +func (*CMsgAMGetUserGameStatsResponse_Stats) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *CMsgAMGetUserGameStatsResponse_Stats) GetStatId() uint32 { + if x != nil && x.StatId != nil { + return *x.StatId + } + return 0 +} + +func (x *CMsgAMGetUserGameStatsResponse_Stats) GetStatValue() uint32 { + if x != nil && x.StatValue != nil { + return *x.StatValue + } + return 0 +} + +type CMsgAMGetUserGameStatsResponse_Achievement_Blocks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AchievementId *uint32 `protobuf:"varint,1,opt,name=achievement_id,json=achievementId" json:"achievement_id,omitempty"` + AchievementBitId *uint32 `protobuf:"varint,2,opt,name=achievement_bit_id,json=achievementBitId" json:"achievement_bit_id,omitempty"` + UnlockTime *uint32 `protobuf:"fixed32,3,opt,name=unlock_time,json=unlockTime" json:"unlock_time,omitempty"` +} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) Reset() { + *x = CMsgAMGetUserGameStatsResponse_Achievement_Blocks{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks) ProtoMessage() {} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMGetUserGameStatsResponse_Achievement_Blocks.ProtoReflect.Descriptor instead. +func (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{12, 1} +} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetAchievementId() uint32 { + if x != nil && x.AchievementId != nil { + return *x.AchievementId + } + return 0 +} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetAchievementBitId() uint32 { + if x != nil && x.AchievementBitId != nil { + return *x.AchievementBitId + } + return 0 +} + +func (x *CMsgAMGetUserGameStatsResponse_Achievement_Blocks) GetUnlockTime() uint32 { + if x != nil && x.UnlockTime != nil { + return *x.UnlockTime + } + return 0 +} + +type CGCMsgMemCachedGetResponse_ValueTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Found *bool `protobuf:"varint,1,opt,name=found" json:"found,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CGCMsgMemCachedGetResponse_ValueTag) Reset() { + *x = CGCMsgMemCachedGetResponse_ValueTag{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedGetResponse_ValueTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedGetResponse_ValueTag) ProtoMessage() {} + +func (x *CGCMsgMemCachedGetResponse_ValueTag) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedGetResponse_ValueTag.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedGetResponse_ValueTag) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{16, 0} +} + +func (x *CGCMsgMemCachedGetResponse_ValueTag) GetFound() bool { + if x != nil && x.Found != nil { + return *x.Found + } + return false +} + +func (x *CGCMsgMemCachedGetResponse_ValueTag) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type CGCMsgMemCachedSet_KeyPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CGCMsgMemCachedSet_KeyPair) Reset() { + *x = CGCMsgMemCachedSet_KeyPair{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CGCMsgMemCachedSet_KeyPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CGCMsgMemCachedSet_KeyPair) ProtoMessage() {} + +func (x *CGCMsgMemCachedSet_KeyPair) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CGCMsgMemCachedSet_KeyPair.ProtoReflect.Descriptor instead. +func (*CGCMsgMemCachedSet_KeyPair) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *CGCMsgMemCachedSet_KeyPair) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CGCMsgMemCachedSet_KeyPair) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type CMsgAMSendEmail_ReplacementToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenName *string `protobuf:"bytes,1,opt,name=token_name,json=tokenName" json:"token_name,omitempty"` + TokenValue *string `protobuf:"bytes,2,opt,name=token_value,json=tokenValue" json:"token_value,omitempty"` +} + +func (x *CMsgAMSendEmail_ReplacementToken) Reset() { + *x = CMsgAMSendEmail_ReplacementToken{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMSendEmail_ReplacementToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMSendEmail_ReplacementToken) ProtoMessage() {} + +func (x *CMsgAMSendEmail_ReplacementToken) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMSendEmail_ReplacementToken.ProtoReflect.Descriptor instead. +func (*CMsgAMSendEmail_ReplacementToken) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{31, 0} +} + +func (x *CMsgAMSendEmail_ReplacementToken) GetTokenName() string { + if x != nil && x.TokenName != nil { + return *x.TokenName + } + return "" +} + +func (x *CMsgAMSendEmail_ReplacementToken) GetTokenValue() string { + if x != nil && x.TokenValue != nil { + return *x.TokenValue + } + return "" +} + +type CMsgAMSendEmail_PersonaNameReplacementToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + TokenName *string `protobuf:"bytes,2,opt,name=token_name,json=tokenName" json:"token_name,omitempty"` +} + +func (x *CMsgAMSendEmail_PersonaNameReplacementToken) Reset() { + *x = CMsgAMSendEmail_PersonaNameReplacementToken{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgAMSendEmail_PersonaNameReplacementToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgAMSendEmail_PersonaNameReplacementToken) ProtoMessage() {} + +func (x *CMsgAMSendEmail_PersonaNameReplacementToken) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgAMSendEmail_PersonaNameReplacementToken.ProtoReflect.Descriptor instead. +func (*CMsgAMSendEmail_PersonaNameReplacementToken) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{31, 1} +} + +func (x *CMsgAMSendEmail_PersonaNameReplacementToken) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgAMSendEmail_PersonaNameReplacementToken) GetTokenName() string { + if x != nil && x.TokenName != nil { + return *x.TokenName + } + return "" +} + +type CMsgGCGetPersonaNames_Response_PersonaName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Steamid *uint64 `protobuf:"fixed64,1,opt,name=steamid" json:"steamid,omitempty"` + PersonaName *string `protobuf:"bytes,2,opt,name=persona_name,json=personaName" json:"persona_name,omitempty"` +} + +func (x *CMsgGCGetPersonaNames_Response_PersonaName) Reset() { + *x = CMsgGCGetPersonaNames_Response_PersonaName{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCGetPersonaNames_Response_PersonaName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCGetPersonaNames_Response_PersonaName) ProtoMessage() {} + +func (x *CMsgGCGetPersonaNames_Response_PersonaName) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCGetPersonaNames_Response_PersonaName.ProtoReflect.Descriptor instead. +func (*CMsgGCGetPersonaNames_Response_PersonaName) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{40, 0} +} + +func (x *CMsgGCGetPersonaNames_Response_PersonaName) GetSteamid() uint64 { + if x != nil && x.Steamid != nil { + return *x.Steamid + } + return 0 +} + +func (x *CMsgGCGetPersonaNames_Response_PersonaName) GetPersonaName() string { + if x != nil && x.PersonaName != nil { + return *x.PersonaName + } + return "" +} + +type CMsgGCMsgMasterSetDirectory_SubGC struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DirIndex *uint32 `protobuf:"varint,1,opt,name=dir_index,json=dirIndex" json:"dir_index,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Box *string `protobuf:"bytes,3,opt,name=box" json:"box,omitempty"` + CommandLine *string `protobuf:"bytes,4,opt,name=command_line,json=commandLine" json:"command_line,omitempty"` + GcBinary *string `protobuf:"bytes,5,opt,name=gc_binary,json=gcBinary" json:"gc_binary,omitempty"` +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) Reset() { + *x = CMsgGCMsgMasterSetDirectory_SubGC{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetDirectory_SubGC) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetDirectory_SubGC.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetDirectory_SubGC) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{43, 0} +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetDirIndex() uint32 { + if x != nil && x.DirIndex != nil { + return *x.DirIndex + } + return 0 +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetBox() string { + if x != nil && x.Box != nil { + return *x.Box + } + return "" +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetCommandLine() string { + if x != nil && x.CommandLine != nil { + return *x.CommandLine + } + return "" +} + +func (x *CMsgGCMsgMasterSetDirectory_SubGC) GetGcBinary() string { + if x != nil && x.GcBinary != nil { + return *x.GcBinary + } + return "" +} + +type CMsgGCMsgMasterSetWebAPIRouting_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InterfaceName *string `protobuf:"bytes,1,opt,name=interface_name,json=interfaceName" json:"interface_name,omitempty"` + MethodName *string `protobuf:"bytes,2,opt,name=method_name,json=methodName" json:"method_name,omitempty"` + Routing *CMsgGCRoutingInfo `protobuf:"bytes,3,opt,name=routing" json:"routing,omitempty"` +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) Reset() { + *x = CMsgGCMsgMasterSetWebAPIRouting_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetWebAPIRouting_Entry) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetWebAPIRouting_Entry.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetWebAPIRouting_Entry) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{52, 0} +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetInterfaceName() string { + if x != nil && x.InterfaceName != nil { + return *x.InterfaceName + } + return "" +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetMethodName() string { + if x != nil && x.MethodName != nil { + return *x.MethodName + } + return "" +} + +func (x *CMsgGCMsgMasterSetWebAPIRouting_Entry) GetRouting() *CMsgGCRoutingInfo { + if x != nil { + return x.Routing + } + return nil +} + +type CMsgGCMsgMasterSetClientMsgRouting_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` + Routing *CMsgGCRoutingInfo `protobuf:"bytes,2,opt,name=routing" json:"routing,omitempty"` +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) Reset() { + *x = CMsgGCMsgMasterSetClientMsgRouting_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgMasterSetClientMsgRouting_Entry) ProtoMessage() {} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgMasterSetClientMsgRouting_Entry.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgMasterSetClientMsgRouting_Entry) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{53, 0} +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *CMsgGCMsgMasterSetClientMsgRouting_Entry) GetRouting() *CMsgGCRoutingInfo { + if x != nil { + return x.Routing + } + return nil +} + +type CMsgGCMsgSetOptions_MessageRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Low *uint32 `protobuf:"varint,1,req,name=low" json:"low,omitempty"` + High *uint32 `protobuf:"varint,2,req,name=high" json:"high,omitempty"` +} + +func (x *CMsgGCMsgSetOptions_MessageRange) Reset() { + *x = CMsgGCMsgSetOptions_MessageRange{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCMsgSetOptions_MessageRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCMsgSetOptions_MessageRange) ProtoMessage() {} + +func (x *CMsgGCMsgSetOptions_MessageRange) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCMsgSetOptions_MessageRange.ProtoReflect.Descriptor instead. +func (*CMsgGCMsgSetOptions_MessageRange) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{56, 0} +} + +func (x *CMsgGCMsgSetOptions_MessageRange) GetLow() uint32 { + if x != nil && x.Low != nil { + return *x.Low + } + return 0 +} + +func (x *CMsgGCMsgSetOptions_MessageRange) GetHigh() uint32 { + if x != nil && x.High != nil { + return *x.High + } + return 0 +} + +type CMsgGCHUpdateSession_ExtraField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CMsgGCHUpdateSession_ExtraField) Reset() { + *x = CMsgGCHUpdateSession_ExtraField{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgGCHUpdateSession_ExtraField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgGCHUpdateSession_ExtraField) ProtoMessage() {} + +func (x *CMsgGCHUpdateSession_ExtraField) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgGCHUpdateSession_ExtraField.ProtoReflect.Descriptor instead. +func (*CMsgGCHUpdateSession_ExtraField) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{57, 0} +} + +func (x *CMsgGCHUpdateSession_ExtraField) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CMsgGCHUpdateSession_ExtraField) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type CMsgNotificationOfSuspiciousActivity_MultipleGameInstances struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppInstanceCount *uint32 `protobuf:"varint,1,opt,name=app_instance_count,json=appInstanceCount" json:"app_instance_count,omitempty"` + OtherSteamids []uint64 `protobuf:"fixed64,2,rep,name=other_steamids,json=otherSteamids" json:"other_steamids,omitempty"` +} + +func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) Reset() { + *x = CMsgNotificationOfSuspiciousActivity_MultipleGameInstances{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) ProtoMessage() {} + +func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgNotificationOfSuspiciousActivity_MultipleGameInstances.ProtoReflect.Descriptor instead. +func (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{58, 0} +} + +func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) GetAppInstanceCount() uint32 { + if x != nil && x.AppInstanceCount != nil { + return *x.AppInstanceCount + } + return 0 +} + +func (x *CMsgNotificationOfSuspiciousActivity_MultipleGameInstances) GetOtherSteamids() []uint64 { + if x != nil { + return x.OtherSteamids + } + return nil +} + +type CMsgDPPartnerMicroTxns_PartnerMicroTxn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InitTime *uint32 `protobuf:"varint,1,opt,name=init_time,json=initTime" json:"init_time,omitempty"` + LastUpdateTime *uint32 `protobuf:"varint,2,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"` + TxnId *uint64 `protobuf:"varint,3,opt,name=txn_id,json=txnId" json:"txn_id,omitempty"` + AccountId *uint32 `protobuf:"varint,4,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + LineItem *uint32 `protobuf:"varint,5,opt,name=line_item,json=lineItem" json:"line_item,omitempty"` + ItemId *uint64 `protobuf:"varint,6,opt,name=item_id,json=itemId" json:"item_id,omitempty"` + DefIndex *uint32 `protobuf:"varint,7,opt,name=def_index,json=defIndex" json:"def_index,omitempty"` + Price *uint64 `protobuf:"varint,8,opt,name=price" json:"price,omitempty"` + Tax *uint64 `protobuf:"varint,9,opt,name=tax" json:"tax,omitempty"` + PriceUsd *uint64 `protobuf:"varint,10,opt,name=price_usd,json=priceUsd" json:"price_usd,omitempty"` + TaxUsd *uint64 `protobuf:"varint,11,opt,name=tax_usd,json=taxUsd" json:"tax_usd,omitempty"` + PurchaseType *uint32 `protobuf:"varint,12,opt,name=purchase_type,json=purchaseType" json:"purchase_type,omitempty"` + SteamTxnType *uint32 `protobuf:"varint,13,opt,name=steam_txn_type,json=steamTxnType" json:"steam_txn_type,omitempty"` + CountryCode *string `protobuf:"bytes,14,opt,name=country_code,json=countryCode" json:"country_code,omitempty"` + RegionCode *string `protobuf:"bytes,15,opt,name=region_code,json=regionCode" json:"region_code,omitempty"` + Quantity *int32 `protobuf:"varint,16,opt,name=quantity" json:"quantity,omitempty"` + RefTransId *uint64 `protobuf:"varint,17,opt,name=ref_trans_id,json=refTransId" json:"ref_trans_id,omitempty"` +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) Reset() { + *x = CMsgDPPartnerMicroTxns_PartnerMicroTxn{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgDPPartnerMicroTxns_PartnerMicroTxn) ProtoMessage() {} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgDPPartnerMicroTxns_PartnerMicroTxn.ProtoReflect.Descriptor instead. +func (*CMsgDPPartnerMicroTxns_PartnerMicroTxn) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{59, 0} +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetInitTime() uint32 { + if x != nil && x.InitTime != nil { + return *x.InitTime + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetLastUpdateTime() uint32 { + if x != nil && x.LastUpdateTime != nil { + return *x.LastUpdateTime + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTxnId() uint64 { + if x != nil && x.TxnId != nil { + return *x.TxnId + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetAccountId() uint32 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetLineItem() uint32 { + if x != nil && x.LineItem != nil { + return *x.LineItem + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetItemId() uint64 { + if x != nil && x.ItemId != nil { + return *x.ItemId + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetDefIndex() uint32 { + if x != nil && x.DefIndex != nil { + return *x.DefIndex + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPrice() uint64 { + if x != nil && x.Price != nil { + return *x.Price + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTax() uint64 { + if x != nil && x.Tax != nil { + return *x.Tax + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPriceUsd() uint64 { + if x != nil && x.PriceUsd != nil { + return *x.PriceUsd + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetTaxUsd() uint64 { + if x != nil && x.TaxUsd != nil { + return *x.TaxUsd + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetPurchaseType() uint32 { + if x != nil && x.PurchaseType != nil { + return *x.PurchaseType + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetSteamTxnType() uint32 { + if x != nil && x.SteamTxnType != nil { + return *x.SteamTxnType + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetCountryCode() string { + if x != nil && x.CountryCode != nil { + return *x.CountryCode + } + return "" +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetRegionCode() string { + if x != nil && x.RegionCode != nil { + return *x.RegionCode + } + return "" +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetQuantity() int32 { + if x != nil && x.Quantity != nil { + return *x.Quantity + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerMicroTxn) GetRefTransId() uint64 { + if x != nil && x.RefTransId != nil { + return *x.RefTransId + } + return 0 +} + +type CMsgDPPartnerMicroTxns_PartnerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PartnerId *uint32 `protobuf:"varint,1,opt,name=partner_id,json=partnerId" json:"partner_id,omitempty"` + PartnerName *string `protobuf:"bytes,2,opt,name=partner_name,json=partnerName" json:"partner_name,omitempty"` + CurrencyCode *string `protobuf:"bytes,3,opt,name=currency_code,json=currencyCode" json:"currency_code,omitempty"` + CurrencyName *string `protobuf:"bytes,4,opt,name=currency_name,json=currencyName" json:"currency_name,omitempty"` +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) Reset() { + *x = CMsgDPPartnerMicroTxns_PartnerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_steammessages_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgDPPartnerMicroTxns_PartnerInfo) ProtoMessage() {} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) ProtoReflect() protoreflect.Message { + mi := &file_s2_steammessages_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgDPPartnerMicroTxns_PartnerInfo.ProtoReflect.Descriptor instead. +func (*CMsgDPPartnerMicroTxns_PartnerInfo) Descriptor() ([]byte, []int) { + return file_s2_steammessages_proto_rawDescGZIP(), []int{59, 1} +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetPartnerId() uint32 { + if x != nil && x.PartnerId != nil { + return *x.PartnerId + } + return 0 +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetPartnerName() string { + if x != nil && x.PartnerName != nil { + return *x.PartnerName + } + return "" +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetCurrencyCode() string { + if x != nil && x.CurrencyCode != nil { + return *x.CurrencyCode + } + return "" +} + +func (x *CMsgDPPartnerMicroTxns_PartnerInfo) GetCurrencyName() string { + if x != nil && x.CurrencyName != nil { + return *x.CurrencyName + } + return "" +} + +var file_s2_steammessages_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 70000, + Name: "com.github.markus_wa.demoinfocs_golang.s2.key_field", + Tag: "varint,70000,opt,name=key_field,def=0", + Filename: "s2/steammessages.proto", + }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*int32)(nil), + Field: 70000, + Name: "com.github.markus_wa.demoinfocs_golang.s2.msgpool_soft_limit", + Tag: "varint,70000,opt,name=msgpool_soft_limit,def=32", + Filename: "s2/steammessages.proto", + }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*int32)(nil), + Field: 70001, + Name: "com.github.markus_wa.demoinfocs_golang.s2.msgpool_hard_limit", + Tag: "varint,70001,opt,name=msgpool_hard_limit,def=384", + Filename: "s2/steammessages.proto", + }, +} + +// Extension fields to descriptorpb.FieldOptions. +var ( + // optional bool key_field = 70000; + E_KeyField = &file_s2_steammessages_proto_extTypes[0] +) + +// Extension fields to descriptorpb.MessageOptions. +var ( + // optional int32 msgpool_soft_limit = 70000; + E_MsgpoolSoftLimit = &file_s2_steammessages_proto_extTypes[1] + // optional int32 msgpool_hard_limit = 70001; + E_MsgpoolHardLimit = &file_s2_steammessages_proto_extTypes[2] +) + +var File_s2_steammessages_proto protoreflect.FileDescriptor + +var file_s2_steammessages_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x73, 0x32, 0x2f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x04, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, + 0x70, 0x70, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x14, 0x31, 0x38, 0x34, + 0x34, 0x36, 0x37, 0x34, 0x34, 0x30, 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, 0x36, 0x31, + 0x35, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x38, + 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x14, 0x31, 0x38, 0x34, 0x34, 0x36, 0x37, 0x34, 0x34, 0x30, + 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, 0x36, 0x31, 0x35, 0x52, 0x0b, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x70, 0x12, 0x78, 0x0a, 0x0a, 0x67, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x72, 0x63, + 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, + 0x67, 0x53, 0x72, 0x63, 0x3a, 0x1c, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, + 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x52, 0x08, 0x67, 0x63, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x12, 0x2e, 0x0a, 0x13, + 0x67, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x67, 0x63, 0x44, 0x69, + 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x0a, 0x80, 0x97, + 0x22, 0x80, 0x02, 0x88, 0x97, 0x22, 0x80, 0x08, 0x22, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x4d, 0x73, + 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x03, 0x32, 0x35, 0x35, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x12, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xca, 0x04, 0x0a, 0x0f, 0x43, 0x4d, + 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x62, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x64, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x52, 0x09, 0x67, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x0b, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x62, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x1a, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x36, + 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc4, 0x02, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x57, + 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x51, + 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, + 0x79, 0x12, 0x54, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x49, 0x64, 0x22, 0xe9, 0x01, + 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x64, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x3a, 0x0a, + 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x4d, 0x73, + 0x67, 0x41, 0x4d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x37, 0x0a, 0x1a, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x46, + 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0xd2, + 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x64, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, + 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x69, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x72, 0x69, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x22, 0x2d, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x22, 0x71, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, + 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x19, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, + 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x22, 0x62, 0x0a, 0x16, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x61, 0x6d, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xb4, 0x04, 0x0a, 0x1e, 0x43, 0x4d, 0x73, + 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x65, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x41, 0x4d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x63, 0x68, 0x69, + 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x11, + 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x1a, 0x3f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x8a, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x68, + 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, + 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x0a, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x54, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x41, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x28, 0x0a, 0x12, 0x43, 0x47, 0x43, 0x4d, + 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, 0x65, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x1a, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x47, + 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x61, + 0x67, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x36, 0x0a, 0x08, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x54, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x59, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x53, 0x65, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x1a, 0x33, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x15, 0x43, 0x47, 0x43, 0x4d, + 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, + 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0xd6, 0x03, + 0x0a, 0x1c, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, + 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6d, 0x64, + 0x5f, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x47, + 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6d, 0x64, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x63, 0x6d, 0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, + 0x68, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x65, 0x74, 0x48, + 0x69, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x68, 0x69, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, + 0x69, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x61, 0x78, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x75, 0x72, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0e, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, + 0x53, 0x51, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, + 0xc9, 0x03, 0x0a, 0x16, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x51, 0x4c, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x70, + 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x1a, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x47, 0x0a, + 0x20, 0x6e, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x6e, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x70, + 0x61, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x12, 0x40, 0x0a, 0x1d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x14, + 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x65, 0x65, 0x4c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x69, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, + 0x41, 0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x65, 0x65, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x65, 0x74, 0x49, 0x50, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x07, 0x52, 0x03, 0x69, 0x70, 0x73, 0x22, 0x9f, + 0x01, 0x0a, 0x0f, 0x43, 0x49, 0x50, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, + 0x22, 0x6f, 0x0a, 0x1b, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x49, 0x50, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x50, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x49, 0x50, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, + 0x73, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x09, + 0x67, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x67, 0x63, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x5f, 0x6b, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x4b, 0x76, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0xf5, 0x03, + 0x0a, 0x1c, 0x43, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x67, 0x63, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x5f, 0x6b, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x4b, 0x76, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x79, + 0x69, 0x65, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x30, 0x0a, 0x14, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, + 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x2c, + 0x0a, 0x12, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x6f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x0a, 0x10, + 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, + 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x4c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x6e, 0x5f, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, + 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x6e, 0x5f, + 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, + 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xab, 0x04, 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, + 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6d, 0x73, 0x67, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x86, 0x01, 0x0a, + 0x13, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, + 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x47, 0x63, 0x12, 0x63, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x52, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x56, 0x0a, 0x1b, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x17, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x53, 0x65, 0x6e, + 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, + 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, + 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x16, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, + 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6c, 0x61, 0x6e, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x4c, 0x61, + 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x43, + 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x50, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x73, 0x54, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x61, 0x79, 0x73, + 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x64, 0x61, 0x79, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x68, + 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x41, 0x4d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x47, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x65, 0x73, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, + 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x73, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x1e, 0x43, 0x47, 0x43, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x3a, 0x0a, 0x80, 0x97, 0x22, 0x80, + 0x01, 0x88, 0x97, 0x22, 0x80, 0x04, 0x22, 0xc7, 0x0c, 0x0a, 0x27, 0x43, 0x47, 0x43, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, + 0x32, 0x52, 0x11, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x63, + 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x73, 0x56, 0x61, 0x63, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, + 0x5f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x66, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x79, 0x62, 0x65, 0x72, 0x43, 0x61, 0x66, 0x65, 0x12, 0x2a, + 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x69, 0x73, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x66, + 0x72, 0x65, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x46, 0x72, 0x65, 0x65, 0x54, + 0x72, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x66, + 0x72, 0x65, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x66, 0x72, 0x65, 0x65, + 0x54, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x6f, 0x77, 0x56, + 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x77, + 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x2e, 0x0a, 0x13, + 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, + 0x69, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x65, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x62, 0x61, + 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x42, 0x61, 0x6e, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x1a, 0x69, 0x73, 0x5f, 0x74, + 0x77, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, + 0x54, 0x77, 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x77, 0x6f, 0x5f, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x74, 0x77, 0x6f, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x30, + 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, + 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x74, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x12, 0x22, + 0x0a, 0x0d, 0x72, 0x74, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x78, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x78, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, + 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x69, + 0x6e, 0x61, 0x5f, 0x73, 0x73, 0x61, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, + 0x73, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x53, 0x73, + 0x61, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x68, 0x69, 0x6e, 0x61, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x43, + 0x68, 0x69, 0x6e, 0x61, 0x3a, 0x0a, 0x80, 0x97, 0x22, 0x80, 0x01, 0x88, 0x97, 0x22, 0x80, 0x04, + 0x22, 0x33, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x06, 0x52, 0x08, 0x73, 0x74, 0x65, + 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0xa7, 0x02, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x10, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x34, 0x0a, + 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x14, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x73, 0x1a, 0x4a, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x5f, 0x0a, 0x15, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0b, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x22, 0x65, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x68, 0x69, 0x70, 0x22, 0xb4, 0x02, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x5e, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, + 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x47, 0x43, 0x52, 0x03, 0x64, 0x69, + 0x72, 0x1a, 0x8a, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x47, 0x43, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x64, 0x69, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x63, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x22, 0x5d, + 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, + 0x28, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, + 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x41, 0x0a, 0x25, 0x43, 0x47, 0x43, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, + 0x73, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x26, 0x43, 0x47, + 0x43, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x75, + 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x40, 0x0a, 0x1d, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x68, 0x61, 0x73, 0x4e, 0x6f, 0x52, + 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, + 0x65, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x5f, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x73, + 0x68, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, + 0x65, 0x64, 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x76, 0x61, 0x63, 0x62, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x63, 0x62, 0x61, 0x6e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, + 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x74, 0x75, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x1b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, + 0x69, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x22, 0xb2, 0x01, + 0x0a, 0x24, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x77, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x77, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, + 0x78, 0x6f, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x78, + 0x6f, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x67, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x12, 0x25, 0x0a, 0x0b, 0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x64, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, + 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x75, + 0x6c, 0x74, 0x22, 0xc9, 0x03, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x72, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x6a, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x3a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x6f, 0x0a, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3a, + 0x07, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x52, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x70, 0x0a, 0x0d, + 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0a, 0x0a, + 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, + 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x53, 0x54, 0x45, 0x41, 0x4d, 0x49, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x42, 0x55, 0x46, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x49, 0x4e, + 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, + 0x50, 0x41, 0x52, 0x41, 0x4d, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x22, 0xb7, + 0x02, 0x0a, 0x1f, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x6a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xa7, + 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x56, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x22, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x6d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x7a, + 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x47, 0x0a, 0x28, 0x43, 0x4d, + 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, + 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x4a, 0x0a, 0x2b, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x73, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x95, 0x03, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x77, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x1a, 0x34, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, + 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, 0x20, 0x02, 0x28, + 0x0d, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x22, 0x6e, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, + 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4e, + 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x59, 0x5f, 0x41, 0x43, 0x48, 0x49, 0x45, 0x56, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, + 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x56, 0x41, 0x43, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0xc1, 0x04, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, + 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, + 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x6d, + 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x47, 0x43, 0x48, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6d, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x73, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x73, + 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x13, 0x63, 0x6d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x74, + 0x49, 0x64, 0x73, 0x1a, 0x36, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x24, + 0x43, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x66, 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, + 0x70, 0x70, 0x69, 0x64, 0x12, 0x94, 0x01, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, + 0x53, 0x75, 0x73, 0x70, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x15, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x53, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0xd2, 0x07, 0x0a, 0x16, 0x43, 0x4d, + 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, + 0x54, 0x78, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x63, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, + 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x75, 0x0a, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, + 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x8c, 0x04, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x74, 0x78, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x74, 0x78, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, + 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, + 0x65, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x74, 0x61, 0x78, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x61, 0x78, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, + 0x61, 0x78, 0x55, 0x73, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x75, + 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x78, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbe, + 0x03, 0x0a, 0x1e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x3a, 0x01, 0x32, 0x52, 0x07, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x80, + 0x01, 0x0a, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x54, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x44, 0x50, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x54, 0x78, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x0a, 0x6b, 0x5f, 0x4d, 0x73, 0x67, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x0a, 0x65, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0a, 0x45, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x41, 0x70, 0x70, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x6b, 0x5f, 0x4d, 0x73, 0x67, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x53, 0x51, 0x4c, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, + 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x70, 0x61, 0x6e, 0x63, + 0x79, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x41, 0x6c, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x1f, + 0x0a, 0x1b, 0x6b, 0x5f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0x09, 0x22, + 0x98, 0x01, 0x0a, 0x3b, 0x43, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x07, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x12, + 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x70, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x63, 0x0a, 0x3c, 0x43, 0x43, + 0x68, 0x69, 0x6e, 0x61, 0x41, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, 0x72, 0x65, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x47, 0x61, 0x6d, + 0x65, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, + 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x2a, + 0xb6, 0x01, 0x0a, 0x10, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, + 0x67, 0x53, 0x72, 0x63, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, + 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x46, 0x72, 0x6f, 0x6d, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x43, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x46, 0x72, 0x6f, 0x6d, + 0x53, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x43, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x46, 0x72, + 0x6f, 0x6d, 0x47, 0x43, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x43, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x42, 0x75, 0x66, 0x4d, 0x73, 0x67, 0x53, 0x72, 0x63, 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x10, 0x04, 0x3a, 0x43, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0xa2, 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x53, 0x0a, + 0x12, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0xa2, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x33, 0x32, + 0x52, 0x10, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x3a, 0x54, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x68, 0x61, + 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf1, 0xa2, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x3a, 0x03, 0x33, 0x38, 0x34, 0x52, 0x10, 0x6d, 0x73, 0x67, 0x70, 0x6f, 0x6f, 0x6c, 0x48, + 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, +} + +var ( + file_s2_steammessages_proto_rawDescOnce sync.Once + file_s2_steammessages_proto_rawDescData = file_s2_steammessages_proto_rawDesc +) + +func file_s2_steammessages_proto_rawDescGZIP() []byte { + file_s2_steammessages_proto_rawDescOnce.Do(func() { + file_s2_steammessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_steammessages_proto_rawDescData) + }) + return file_s2_steammessages_proto_rawDescData +} + +var file_s2_steammessages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_s2_steammessages_proto_msgTypes = make([]protoimpl.MessageInfo, 81) +var file_s2_steammessages_proto_goTypes = []interface{}{ + (GCProtoBufMsgSrc)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.GCProtoBufMsgSrc + (CMsgGCRoutingInfo_RoutingMethod)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo.RoutingMethod + (CMsgGCMsgSetOptions_Option)(0), // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.Option + (CMsgDPPartnerMicroTxnsResponse_EErrorCode)(0), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxnsResponse.EErrorCode + (*CMsgProtoBufHeader)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgProtoBufHeader + (*CMsgWebAPIKey)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgWebAPIKey + (*CMsgHttpRequest)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest + (*CMsgWebAPIRequest)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgWebAPIRequest + (*CMsgHttpResponse)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpResponse + (*CMsgAMFindAccounts)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMFindAccounts + (*CMsgAMFindAccountsResponse)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMFindAccountsResponse + (*CMsgNotifyWatchdog)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgNotifyWatchdog + (*CMsgAMGetLicenses)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetLicenses + (*CMsgPackageLicense)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgPackageLicense + (*CMsgAMGetLicensesResponse)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetLicensesResponse + (*CMsgAMGetUserGameStats)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStats + (*CMsgAMGetUserGameStatsResponse)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse + (*CMsgGCGetCommandList)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetCommandList + (*CMsgGCGetCommandListResponse)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetCommandListResponse + (*CGCMsgMemCachedGet)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedGet + (*CGCMsgMemCachedGetResponse)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedGetResponse + (*CGCMsgMemCachedSet)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedSet + (*CGCMsgMemCachedDelete)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedDelete + (*CGCMsgMemCachedStats)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedStats + (*CGCMsgMemCachedStatsResponse)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedStatsResponse + (*CGCMsgSQLStats)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgSQLStats + (*CGCMsgSQLStatsResponse)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgSQLStatsResponse + (*CMsgAMAddFreeLicense)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMAddFreeLicense + (*CMsgAMAddFreeLicenseResponse)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMAddFreeLicenseResponse + (*CGCMsgGetIPLocation)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgGetIPLocation + (*CIPLocationInfo)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CIPLocationInfo + (*CGCMsgGetIPLocationResponse)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgGetIPLocationResponse + (*CGCMsgSystemStatsSchema)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgSystemStatsSchema + (*CGCMsgGetSystemStats)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgGetSystemStats + (*CGCMsgGetSystemStatsResponse)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgGetSystemStatsResponse + (*CMsgAMSendEmail)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail + (*CMsgAMSendEmailResponse)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmailResponse + (*CMsgGCGetEmailTemplate)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetEmailTemplate + (*CMsgGCGetEmailTemplateResponse)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetEmailTemplateResponse + (*CMsgAMGrantGuestPasses2)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGrantGuestPasses2 + (*CMsgAMGrantGuestPasses2Response)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGrantGuestPasses2Response + (*CGCSystemMsg_GetAccountDetails)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CGCSystemMsg_GetAccountDetails + (*CGCSystemMsg_GetAccountDetails_Response)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CGCSystemMsg_GetAccountDetails_Response + (*CMsgGCGetPersonaNames)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPersonaNames + (*CMsgGCGetPersonaNames_Response)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPersonaNames_Response + (*CMsgGCCheckFriendship)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCheckFriendship + (*CMsgGCCheckFriendship_Response)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCCheckFriendship_Response + (*CMsgGCMsgMasterSetDirectory)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetDirectory + (*CMsgGCMsgMasterSetDirectory_Response)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetDirectory_Response + (*CMsgGCMsgWebAPIJobRequestForwardResponse)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgWebAPIJobRequestForwardResponse + (*CGCSystemMsg_GetPurchaseTrust_Request)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CGCSystemMsg_GetPurchaseTrust_Request + (*CGCSystemMsg_GetPurchaseTrust_Response)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CGCSystemMsg_GetPurchaseTrust_Response + (*CMsgGCHAccountVacStatusChange)(nil), // 52: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCHAccountVacStatusChange + (*CMsgGCGetPartnerAccountLink)(nil), // 53: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPartnerAccountLink + (*CMsgGCGetPartnerAccountLink_Response)(nil), // 54: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPartnerAccountLink_Response + (*CMsgGCRoutingInfo)(nil), // 55: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo + (*CMsgGCMsgMasterSetWebAPIRouting)(nil), // 56: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting + (*CMsgGCMsgMasterSetClientMsgRouting)(nil), // 57: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting + (*CMsgGCMsgMasterSetWebAPIRouting_Response)(nil), // 58: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting_Response + (*CMsgGCMsgMasterSetClientMsgRouting_Response)(nil), // 59: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting_Response + (*CMsgGCMsgSetOptions)(nil), // 60: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions + (*CMsgGCHUpdateSession)(nil), // 61: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCHUpdateSession + (*CMsgNotificationOfSuspiciousActivity)(nil), // 62: com.github.markus_wa.demoinfocs_golang.s2.CMsgNotificationOfSuspiciousActivity + (*CMsgDPPartnerMicroTxns)(nil), // 63: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns + (*CMsgDPPartnerMicroTxnsResponse)(nil), // 64: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxnsResponse + (*CChinaAgreementSessions_StartAgreementSessionInGame_Request)(nil), // 65: com.github.markus_wa.demoinfocs_golang.s2.CChinaAgreementSessions_StartAgreementSessionInGame_Request + (*CChinaAgreementSessions_StartAgreementSessionInGame_Response)(nil), // 66: com.github.markus_wa.demoinfocs_golang.s2.CChinaAgreementSessions_StartAgreementSessionInGame_Response + (*CMsgHttpRequest_RequestHeader)(nil), // 67: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.RequestHeader + (*CMsgHttpRequest_QueryParam)(nil), // 68: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.QueryParam + (*CMsgHttpResponse_ResponseHeader)(nil), // 69: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpResponse.ResponseHeader + (*CMsgAMGetUserGameStatsResponse_Stats)(nil), // 70: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.Stats + (*CMsgAMGetUserGameStatsResponse_Achievement_Blocks)(nil), // 71: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.Achievement_Blocks + (*CGCMsgMemCachedGetResponse_ValueTag)(nil), // 72: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedGetResponse.ValueTag + (*CGCMsgMemCachedSet_KeyPair)(nil), // 73: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedSet.KeyPair + (*CMsgAMSendEmail_ReplacementToken)(nil), // 74: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.ReplacementToken + (*CMsgAMSendEmail_PersonaNameReplacementToken)(nil), // 75: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.PersonaNameReplacementToken + (*CMsgGCGetPersonaNames_Response_PersonaName)(nil), // 76: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPersonaNames_Response.PersonaName + (*CMsgGCMsgMasterSetDirectory_SubGC)(nil), // 77: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetDirectory.SubGC + (*CMsgGCMsgMasterSetWebAPIRouting_Entry)(nil), // 78: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting.Entry + (*CMsgGCMsgMasterSetClientMsgRouting_Entry)(nil), // 79: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting.Entry + (*CMsgGCMsgSetOptions_MessageRange)(nil), // 80: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.MessageRange + (*CMsgGCHUpdateSession_ExtraField)(nil), // 81: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCHUpdateSession.ExtraField + (*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances)(nil), // 82: com.github.markus_wa.demoinfocs_golang.s2.CMsgNotificationOfSuspiciousActivity.MultipleGameInstances + (*CMsgDPPartnerMicroTxns_PartnerMicroTxn)(nil), // 83: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.PartnerMicroTxn + (*CMsgDPPartnerMicroTxns_PartnerInfo)(nil), // 84: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.PartnerInfo + (*descriptorpb.FieldOptions)(nil), // 85: google.protobuf.FieldOptions + (*descriptorpb.MessageOptions)(nil), // 86: google.protobuf.MessageOptions +} +var file_s2_steammessages_proto_depIdxs = []int32{ + 0, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgProtoBufHeader.gc_msg_src:type_name -> com.github.markus_wa.demoinfocs_golang.s2.GCProtoBufMsgSrc + 67, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.headers:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.RequestHeader + 68, // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.get_params:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.QueryParam + 68, // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.post_params:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest.QueryParam + 5, // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgWebAPIRequest.api_key:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgWebAPIKey + 6, // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgWebAPIRequest.request:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpRequest + 69, // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpResponse.headers:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgHttpResponse.ResponseHeader + 13, // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetLicensesResponse.license:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgPackageLicense + 70, // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.stats:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.Stats + 71, // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.achievement_blocks:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgAMGetUserGameStatsResponse.Achievement_Blocks + 72, // 10: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedGetResponse.values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedGetResponse.ValueTag + 73, // 11: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedSet.keys:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CGCMsgMemCachedSet.KeyPair + 30, // 12: com.github.markus_wa.demoinfocs_golang.s2.CGCMsgGetIPLocationResponse.infos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CIPLocationInfo + 75, // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.persona_name_tokens:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.PersonaNameReplacementToken + 74, // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.tokens:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgAMSendEmail.ReplacementToken + 76, // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPersonaNames_Response.succeeded_lookups:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCGetPersonaNames_Response.PersonaName + 77, // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetDirectory.dir:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetDirectory.SubGC + 1, // 17: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo.method:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo.RoutingMethod + 1, // 18: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo.fallback:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo.RoutingMethod + 78, // 19: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting.Entry + 79, // 20: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting.entries:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting.Entry + 2, // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.options:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.Option + 80, // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.client_msg_ranges:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgSetOptions.MessageRange + 81, // 23: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCHUpdateSession.extra_fields:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCHUpdateSession.ExtraField + 82, // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgNotificationOfSuspiciousActivity.multiple_instances:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgNotificationOfSuspiciousActivity.MultipleGameInstances + 84, // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.partner:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.PartnerInfo + 83, // 26: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.transactions:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxns.PartnerMicroTxn + 3, // 27: com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxnsResponse.eerrorcode:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgDPPartnerMicroTxnsResponse.EErrorCode + 55, // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetWebAPIRouting.Entry.routing:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo + 55, // 29: com.github.markus_wa.demoinfocs_golang.s2.CMsgGCMsgMasterSetClientMsgRouting.Entry.routing:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgGCRoutingInfo + 85, // 30: com.github.markus_wa.demoinfocs_golang.s2.key_field:extendee -> google.protobuf.FieldOptions + 86, // 31: com.github.markus_wa.demoinfocs_golang.s2.msgpool_soft_limit:extendee -> google.protobuf.MessageOptions + 86, // 32: com.github.markus_wa.demoinfocs_golang.s2.msgpool_hard_limit:extendee -> google.protobuf.MessageOptions + 33, // [33:33] is the sub-list for method output_type + 33, // [33:33] is the sub-list for method input_type + 33, // [33:33] is the sub-list for extension type_name + 30, // [30:33] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name +} + +func init() { file_s2_steammessages_proto_init() } +func file_s2_steammessages_proto_init() { + if File_s2_steammessages_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_s2_steammessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgProtoBufHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgWebAPIKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgHttpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgWebAPIRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgHttpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMFindAccounts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMFindAccountsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgNotifyWatchdog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetLicenses); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgPackageLicense); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetLicensesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetUserGameStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetUserGameStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetCommandList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetCommandListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedGet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedGetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedDelete); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgSQLStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgSQLStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMAddFreeLicense); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMAddFreeLicenseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgGetIPLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CIPLocationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgGetIPLocationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgSystemStatsSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgGetSystemStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgGetSystemStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMSendEmail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMSendEmailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetEmailTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetEmailTemplateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGrantGuestPasses2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGrantGuestPasses2Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCSystemMsg_GetAccountDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCSystemMsg_GetAccountDetails_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetPersonaNames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetPersonaNames_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCheckFriendship); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCCheckFriendship_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetDirectory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetDirectory_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgWebAPIJobRequestForwardResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCSystemMsg_GetPurchaseTrust_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCSystemMsg_GetPurchaseTrust_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCHAccountVacStatusChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetPartnerAccountLink); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetPartnerAccountLink_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCRoutingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgSetOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCHUpdateSession); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgNotificationOfSuspiciousActivity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDPPartnerMicroTxns); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDPPartnerMicroTxnsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CChinaAgreementSessions_StartAgreementSessionInGame_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CChinaAgreementSessions_StartAgreementSessionInGame_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgHttpRequest_RequestHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgHttpRequest_QueryParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgHttpResponse_ResponseHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetUserGameStatsResponse_Stats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMGetUserGameStatsResponse_Achievement_Blocks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedGetResponse_ValueTag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CGCMsgMemCachedSet_KeyPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMSendEmail_ReplacementToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgAMSendEmail_PersonaNameReplacementToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCGetPersonaNames_Response_PersonaName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetDirectory_SubGC); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetWebAPIRouting_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgMasterSetClientMsgRouting_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCMsgSetOptions_MessageRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgGCHUpdateSession_ExtraField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgNotificationOfSuspiciousActivity_MultipleGameInstances); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDPPartnerMicroTxns_PartnerMicroTxn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_steammessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgDPPartnerMicroTxns_PartnerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_steammessages_proto_rawDesc, + NumEnums: 4, + NumMessages: 81, + NumExtensions: 3, + NumServices: 0, + }, + GoTypes: file_s2_steammessages_proto_goTypes, + DependencyIndexes: file_s2_steammessages_proto_depIdxs, + EnumInfos: file_s2_steammessages_proto_enumTypes, + MessageInfos: file_s2_steammessages_proto_msgTypes, + ExtensionInfos: file_s2_steammessages_proto_extTypes, + }.Build() + File_s2_steammessages_proto = out.File + file_s2_steammessages_proto_rawDesc = nil + file_s2_steammessages_proto_goTypes = nil + file_s2_steammessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/te.pb.go b/pkg/demoinfocs/msgs2/te.pb.go new file mode 100644 index 00000000..bf94080b --- /dev/null +++ b/pkg/demoinfocs/msgs2/te.pb.go @@ -0,0 +1,3410 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/te.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ETEProtobufIds int32 + +const ( + ETEProtobufIds_TE_EffectDispatchId ETEProtobufIds = 400 + ETEProtobufIds_TE_ArmorRicochetId ETEProtobufIds = 401 + ETEProtobufIds_TE_BeamEntPointId ETEProtobufIds = 402 + ETEProtobufIds_TE_BeamEntsId ETEProtobufIds = 403 + ETEProtobufIds_TE_BeamPointsId ETEProtobufIds = 404 + ETEProtobufIds_TE_BeamRingId ETEProtobufIds = 405 + ETEProtobufIds_TE_BSPDecalId ETEProtobufIds = 407 + ETEProtobufIds_TE_BubblesId ETEProtobufIds = 408 + ETEProtobufIds_TE_BubbleTrailId ETEProtobufIds = 409 + ETEProtobufIds_TE_DecalId ETEProtobufIds = 410 + ETEProtobufIds_TE_WorldDecalId ETEProtobufIds = 411 + ETEProtobufIds_TE_EnergySplashId ETEProtobufIds = 412 + ETEProtobufIds_TE_FizzId ETEProtobufIds = 413 + ETEProtobufIds_TE_ShatterSurfaceId ETEProtobufIds = 414 + ETEProtobufIds_TE_GlowSpriteId ETEProtobufIds = 415 + ETEProtobufIds_TE_ImpactId ETEProtobufIds = 416 + ETEProtobufIds_TE_MuzzleFlashId ETEProtobufIds = 417 + ETEProtobufIds_TE_BloodStreamId ETEProtobufIds = 418 + ETEProtobufIds_TE_ExplosionId ETEProtobufIds = 419 + ETEProtobufIds_TE_DustId ETEProtobufIds = 420 + ETEProtobufIds_TE_LargeFunnelId ETEProtobufIds = 421 + ETEProtobufIds_TE_SparksId ETEProtobufIds = 422 + ETEProtobufIds_TE_PhysicsPropId ETEProtobufIds = 423 + ETEProtobufIds_TE_PlayerDecalId ETEProtobufIds = 424 + ETEProtobufIds_TE_ProjectedDecalId ETEProtobufIds = 425 + ETEProtobufIds_TE_SmokeId ETEProtobufIds = 426 +) + +// Enum value maps for ETEProtobufIds. +var ( + ETEProtobufIds_name = map[int32]string{ + 400: "TE_EffectDispatchId", + 401: "TE_ArmorRicochetId", + 402: "TE_BeamEntPointId", + 403: "TE_BeamEntsId", + 404: "TE_BeamPointsId", + 405: "TE_BeamRingId", + 407: "TE_BSPDecalId", + 408: "TE_BubblesId", + 409: "TE_BubbleTrailId", + 410: "TE_DecalId", + 411: "TE_WorldDecalId", + 412: "TE_EnergySplashId", + 413: "TE_FizzId", + 414: "TE_ShatterSurfaceId", + 415: "TE_GlowSpriteId", + 416: "TE_ImpactId", + 417: "TE_MuzzleFlashId", + 418: "TE_BloodStreamId", + 419: "TE_ExplosionId", + 420: "TE_DustId", + 421: "TE_LargeFunnelId", + 422: "TE_SparksId", + 423: "TE_PhysicsPropId", + 424: "TE_PlayerDecalId", + 425: "TE_ProjectedDecalId", + 426: "TE_SmokeId", + } + ETEProtobufIds_value = map[string]int32{ + "TE_EffectDispatchId": 400, + "TE_ArmorRicochetId": 401, + "TE_BeamEntPointId": 402, + "TE_BeamEntsId": 403, + "TE_BeamPointsId": 404, + "TE_BeamRingId": 405, + "TE_BSPDecalId": 407, + "TE_BubblesId": 408, + "TE_BubbleTrailId": 409, + "TE_DecalId": 410, + "TE_WorldDecalId": 411, + "TE_EnergySplashId": 412, + "TE_FizzId": 413, + "TE_ShatterSurfaceId": 414, + "TE_GlowSpriteId": 415, + "TE_ImpactId": 416, + "TE_MuzzleFlashId": 417, + "TE_BloodStreamId": 418, + "TE_ExplosionId": 419, + "TE_DustId": 420, + "TE_LargeFunnelId": 421, + "TE_SparksId": 422, + "TE_PhysicsPropId": 423, + "TE_PlayerDecalId": 424, + "TE_ProjectedDecalId": 425, + "TE_SmokeId": 426, + } +) + +func (x ETEProtobufIds) Enum() *ETEProtobufIds { + p := new(ETEProtobufIds) + *p = x + return p +} + +func (x ETEProtobufIds) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ETEProtobufIds) Descriptor() protoreflect.EnumDescriptor { + return file_s2_te_proto_enumTypes[0].Descriptor() +} + +func (ETEProtobufIds) Type() protoreflect.EnumType { + return &file_s2_te_proto_enumTypes[0] +} + +func (x ETEProtobufIds) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ETEProtobufIds) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ETEProtobufIds(num) + return nil +} + +// Deprecated: Use ETEProtobufIds.Descriptor instead. +func (ETEProtobufIds) EnumDescriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{0} +} + +type CMsgTEArmorRicochet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos *CMsgVector `protobuf:"bytes,1,opt,name=pos" json:"pos,omitempty"` + Dir *CMsgVector `protobuf:"bytes,2,opt,name=dir" json:"dir,omitempty"` +} + +func (x *CMsgTEArmorRicochet) Reset() { + *x = CMsgTEArmorRicochet{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEArmorRicochet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEArmorRicochet) ProtoMessage() {} + +func (x *CMsgTEArmorRicochet) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEArmorRicochet.ProtoReflect.Descriptor instead. +func (*CMsgTEArmorRicochet) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{0} +} + +func (x *CMsgTEArmorRicochet) GetPos() *CMsgVector { + if x != nil { + return x.Pos + } + return nil +} + +func (x *CMsgTEArmorRicochet) GetDir() *CMsgVector { + if x != nil { + return x.Dir + } + return nil +} + +type CMsgTEBaseBeam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Modelindex *uint64 `protobuf:"fixed64,1,opt,name=modelindex" json:"modelindex,omitempty"` + Haloindex *uint64 `protobuf:"fixed64,2,opt,name=haloindex" json:"haloindex,omitempty"` + Startframe *uint32 `protobuf:"varint,3,opt,name=startframe" json:"startframe,omitempty"` + Framerate *uint32 `protobuf:"varint,4,opt,name=framerate" json:"framerate,omitempty"` + Life *float32 `protobuf:"fixed32,5,opt,name=life" json:"life,omitempty"` + Width *float32 `protobuf:"fixed32,6,opt,name=width" json:"width,omitempty"` + Endwidth *float32 `protobuf:"fixed32,7,opt,name=endwidth" json:"endwidth,omitempty"` + Fadelength *uint32 `protobuf:"varint,8,opt,name=fadelength" json:"fadelength,omitempty"` + Amplitude *float32 `protobuf:"fixed32,9,opt,name=amplitude" json:"amplitude,omitempty"` + Color *uint32 `protobuf:"fixed32,10,opt,name=color" json:"color,omitempty"` + Speed *uint32 `protobuf:"varint,11,opt,name=speed" json:"speed,omitempty"` + Flags *uint32 `protobuf:"varint,12,opt,name=flags" json:"flags,omitempty"` +} + +func (x *CMsgTEBaseBeam) Reset() { + *x = CMsgTEBaseBeam{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBaseBeam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBaseBeam) ProtoMessage() {} + +func (x *CMsgTEBaseBeam) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBaseBeam.ProtoReflect.Descriptor instead. +func (*CMsgTEBaseBeam) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{1} +} + +func (x *CMsgTEBaseBeam) GetModelindex() uint64 { + if x != nil && x.Modelindex != nil { + return *x.Modelindex + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetHaloindex() uint64 { + if x != nil && x.Haloindex != nil { + return *x.Haloindex + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetStartframe() uint32 { + if x != nil && x.Startframe != nil { + return *x.Startframe + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetFramerate() uint32 { + if x != nil && x.Framerate != nil { + return *x.Framerate + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetLife() float32 { + if x != nil && x.Life != nil { + return *x.Life + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetWidth() float32 { + if x != nil && x.Width != nil { + return *x.Width + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetEndwidth() float32 { + if x != nil && x.Endwidth != nil { + return *x.Endwidth + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetFadelength() uint32 { + if x != nil && x.Fadelength != nil { + return *x.Fadelength + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetAmplitude() float32 { + if x != nil && x.Amplitude != nil { + return *x.Amplitude + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetSpeed() uint32 { + if x != nil && x.Speed != nil { + return *x.Speed + } + return 0 +} + +func (x *CMsgTEBaseBeam) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type CMsgTEBeamEntPoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *CMsgTEBaseBeam `protobuf:"bytes,1,opt,name=base" json:"base,omitempty"` + Startentity *uint32 `protobuf:"varint,2,opt,name=startentity" json:"startentity,omitempty"` + Endentity *uint32 `protobuf:"varint,3,opt,name=endentity" json:"endentity,omitempty"` + Start *CMsgVector `protobuf:"bytes,4,opt,name=start" json:"start,omitempty"` + End *CMsgVector `protobuf:"bytes,5,opt,name=end" json:"end,omitempty"` +} + +func (x *CMsgTEBeamEntPoint) Reset() { + *x = CMsgTEBeamEntPoint{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBeamEntPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBeamEntPoint) ProtoMessage() {} + +func (x *CMsgTEBeamEntPoint) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBeamEntPoint.ProtoReflect.Descriptor instead. +func (*CMsgTEBeamEntPoint) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{2} +} + +func (x *CMsgTEBeamEntPoint) GetBase() *CMsgTEBaseBeam { + if x != nil { + return x.Base + } + return nil +} + +func (x *CMsgTEBeamEntPoint) GetStartentity() uint32 { + if x != nil && x.Startentity != nil { + return *x.Startentity + } + return 0 +} + +func (x *CMsgTEBeamEntPoint) GetEndentity() uint32 { + if x != nil && x.Endentity != nil { + return *x.Endentity + } + return 0 +} + +func (x *CMsgTEBeamEntPoint) GetStart() *CMsgVector { + if x != nil { + return x.Start + } + return nil +} + +func (x *CMsgTEBeamEntPoint) GetEnd() *CMsgVector { + if x != nil { + return x.End + } + return nil +} + +type CMsgTEBeamEnts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *CMsgTEBaseBeam `protobuf:"bytes,1,opt,name=base" json:"base,omitempty"` + Startentity *uint32 `protobuf:"varint,2,opt,name=startentity" json:"startentity,omitempty"` + Endentity *uint32 `protobuf:"varint,3,opt,name=endentity" json:"endentity,omitempty"` +} + +func (x *CMsgTEBeamEnts) Reset() { + *x = CMsgTEBeamEnts{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBeamEnts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBeamEnts) ProtoMessage() {} + +func (x *CMsgTEBeamEnts) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBeamEnts.ProtoReflect.Descriptor instead. +func (*CMsgTEBeamEnts) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{3} +} + +func (x *CMsgTEBeamEnts) GetBase() *CMsgTEBaseBeam { + if x != nil { + return x.Base + } + return nil +} + +func (x *CMsgTEBeamEnts) GetStartentity() uint32 { + if x != nil && x.Startentity != nil { + return *x.Startentity + } + return 0 +} + +func (x *CMsgTEBeamEnts) GetEndentity() uint32 { + if x != nil && x.Endentity != nil { + return *x.Endentity + } + return 0 +} + +type CMsgTEBeamPoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *CMsgTEBaseBeam `protobuf:"bytes,1,opt,name=base" json:"base,omitempty"` + Start *CMsgVector `protobuf:"bytes,2,opt,name=start" json:"start,omitempty"` + End *CMsgVector `protobuf:"bytes,3,opt,name=end" json:"end,omitempty"` +} + +func (x *CMsgTEBeamPoints) Reset() { + *x = CMsgTEBeamPoints{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBeamPoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBeamPoints) ProtoMessage() {} + +func (x *CMsgTEBeamPoints) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBeamPoints.ProtoReflect.Descriptor instead. +func (*CMsgTEBeamPoints) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{4} +} + +func (x *CMsgTEBeamPoints) GetBase() *CMsgTEBaseBeam { + if x != nil { + return x.Base + } + return nil +} + +func (x *CMsgTEBeamPoints) GetStart() *CMsgVector { + if x != nil { + return x.Start + } + return nil +} + +func (x *CMsgTEBeamPoints) GetEnd() *CMsgVector { + if x != nil { + return x.End + } + return nil +} + +type CMsgTEBeamRing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *CMsgTEBaseBeam `protobuf:"bytes,1,opt,name=base" json:"base,omitempty"` + Startentity *uint32 `protobuf:"varint,2,opt,name=startentity" json:"startentity,omitempty"` + Endentity *uint32 `protobuf:"varint,3,opt,name=endentity" json:"endentity,omitempty"` +} + +func (x *CMsgTEBeamRing) Reset() { + *x = CMsgTEBeamRing{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBeamRing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBeamRing) ProtoMessage() {} + +func (x *CMsgTEBeamRing) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBeamRing.ProtoReflect.Descriptor instead. +func (*CMsgTEBeamRing) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{5} +} + +func (x *CMsgTEBeamRing) GetBase() *CMsgTEBaseBeam { + if x != nil { + return x.Base + } + return nil +} + +func (x *CMsgTEBeamRing) GetStartentity() uint32 { + if x != nil && x.Startentity != nil { + return *x.Startentity + } + return 0 +} + +func (x *CMsgTEBeamRing) GetEndentity() uint32 { + if x != nil && x.Endentity != nil { + return *x.Endentity + } + return 0 +} + +type CMsgTEBSPDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Normal *CMsgVector `protobuf:"bytes,2,opt,name=normal" json:"normal,omitempty"` + Saxis *CMsgVector `protobuf:"bytes,3,opt,name=saxis" json:"saxis,omitempty"` + Entity *int32 `protobuf:"varint,4,opt,name=entity,def=-1" json:"entity,omitempty"` + Index *uint32 `protobuf:"varint,5,opt,name=index" json:"index,omitempty"` +} + +// Default values for CMsgTEBSPDecal fields. +const ( + Default_CMsgTEBSPDecal_Entity = int32(-1) +) + +func (x *CMsgTEBSPDecal) Reset() { + *x = CMsgTEBSPDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBSPDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBSPDecal) ProtoMessage() {} + +func (x *CMsgTEBSPDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBSPDecal.ProtoReflect.Descriptor instead. +func (*CMsgTEBSPDecal) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{6} +} + +func (x *CMsgTEBSPDecal) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEBSPDecal) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgTEBSPDecal) GetSaxis() *CMsgVector { + if x != nil { + return x.Saxis + } + return nil +} + +func (x *CMsgTEBSPDecal) GetEntity() int32 { + if x != nil && x.Entity != nil { + return *x.Entity + } + return Default_CMsgTEBSPDecal_Entity +} + +func (x *CMsgTEBSPDecal) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +type CMsgTEBubbles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mins *CMsgVector `protobuf:"bytes,1,opt,name=mins" json:"mins,omitempty"` + Maxs *CMsgVector `protobuf:"bytes,2,opt,name=maxs" json:"maxs,omitempty"` + Height *float32 `protobuf:"fixed32,3,opt,name=height" json:"height,omitempty"` + Count *uint32 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` + Speed *float32 `protobuf:"fixed32,5,opt,name=speed" json:"speed,omitempty"` +} + +func (x *CMsgTEBubbles) Reset() { + *x = CMsgTEBubbles{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBubbles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBubbles) ProtoMessage() {} + +func (x *CMsgTEBubbles) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBubbles.ProtoReflect.Descriptor instead. +func (*CMsgTEBubbles) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{7} +} + +func (x *CMsgTEBubbles) GetMins() *CMsgVector { + if x != nil { + return x.Mins + } + return nil +} + +func (x *CMsgTEBubbles) GetMaxs() *CMsgVector { + if x != nil { + return x.Maxs + } + return nil +} + +func (x *CMsgTEBubbles) GetHeight() float32 { + if x != nil && x.Height != nil { + return *x.Height + } + return 0 +} + +func (x *CMsgTEBubbles) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +func (x *CMsgTEBubbles) GetSpeed() float32 { + if x != nil && x.Speed != nil { + return *x.Speed + } + return 0 +} + +type CMsgTEBubbleTrail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mins *CMsgVector `protobuf:"bytes,1,opt,name=mins" json:"mins,omitempty"` + Maxs *CMsgVector `protobuf:"bytes,2,opt,name=maxs" json:"maxs,omitempty"` + Waterz *float32 `protobuf:"fixed32,3,opt,name=waterz" json:"waterz,omitempty"` + Count *uint32 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` + Speed *float32 `protobuf:"fixed32,5,opt,name=speed" json:"speed,omitempty"` +} + +func (x *CMsgTEBubbleTrail) Reset() { + *x = CMsgTEBubbleTrail{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBubbleTrail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBubbleTrail) ProtoMessage() {} + +func (x *CMsgTEBubbleTrail) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBubbleTrail.ProtoReflect.Descriptor instead. +func (*CMsgTEBubbleTrail) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{8} +} + +func (x *CMsgTEBubbleTrail) GetMins() *CMsgVector { + if x != nil { + return x.Mins + } + return nil +} + +func (x *CMsgTEBubbleTrail) GetMaxs() *CMsgVector { + if x != nil { + return x.Maxs + } + return nil +} + +func (x *CMsgTEBubbleTrail) GetWaterz() float32 { + if x != nil && x.Waterz != nil { + return *x.Waterz + } + return 0 +} + +func (x *CMsgTEBubbleTrail) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +func (x *CMsgTEBubbleTrail) GetSpeed() float32 { + if x != nil && x.Speed != nil { + return *x.Speed + } + return 0 +} + +type CMsgTEDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Start *CMsgVector `protobuf:"bytes,2,opt,name=start" json:"start,omitempty"` + Entity *int32 `protobuf:"varint,3,opt,name=entity,def=-1" json:"entity,omitempty"` + Hitbox *uint32 `protobuf:"varint,4,opt,name=hitbox" json:"hitbox,omitempty"` + Index *uint32 `protobuf:"varint,5,opt,name=index" json:"index,omitempty"` +} + +// Default values for CMsgTEDecal fields. +const ( + Default_CMsgTEDecal_Entity = int32(-1) +) + +func (x *CMsgTEDecal) Reset() { + *x = CMsgTEDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEDecal) ProtoMessage() {} + +func (x *CMsgTEDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEDecal.ProtoReflect.Descriptor instead. +func (*CMsgTEDecal) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{9} +} + +func (x *CMsgTEDecal) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEDecal) GetStart() *CMsgVector { + if x != nil { + return x.Start + } + return nil +} + +func (x *CMsgTEDecal) GetEntity() int32 { + if x != nil && x.Entity != nil { + return *x.Entity + } + return Default_CMsgTEDecal_Entity +} + +func (x *CMsgTEDecal) GetHitbox() uint32 { + if x != nil && x.Hitbox != nil { + return *x.Hitbox + } + return 0 +} + +func (x *CMsgTEDecal) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +type CMsgEffectData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Start *CMsgVector `protobuf:"bytes,2,opt,name=start" json:"start,omitempty"` + Normal *CMsgVector `protobuf:"bytes,3,opt,name=normal" json:"normal,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,4,opt,name=angles" json:"angles,omitempty"` + Entity *uint32 `protobuf:"fixed32,5,opt,name=entity,def=16777215" json:"entity,omitempty"` + Otherentity *uint32 `protobuf:"fixed32,6,opt,name=otherentity,def=16777215" json:"otherentity,omitempty"` + Scale *float32 `protobuf:"fixed32,7,opt,name=scale" json:"scale,omitempty"` + Magnitude *float32 `protobuf:"fixed32,8,opt,name=magnitude" json:"magnitude,omitempty"` + Radius *float32 `protobuf:"fixed32,9,opt,name=radius" json:"radius,omitempty"` + Surfaceprop *uint32 `protobuf:"fixed32,10,opt,name=surfaceprop" json:"surfaceprop,omitempty"` + Effectindex *uint64 `protobuf:"fixed64,11,opt,name=effectindex" json:"effectindex,omitempty"` + Damagetype *uint32 `protobuf:"varint,12,opt,name=damagetype" json:"damagetype,omitempty"` + Material *uint32 `protobuf:"varint,13,opt,name=material" json:"material,omitempty"` + Hitbox *uint32 `protobuf:"varint,14,opt,name=hitbox" json:"hitbox,omitempty"` + Color *uint32 `protobuf:"varint,15,opt,name=color" json:"color,omitempty"` + Flags *uint32 `protobuf:"varint,16,opt,name=flags" json:"flags,omitempty"` + Attachmentindex *int32 `protobuf:"varint,17,opt,name=attachmentindex" json:"attachmentindex,omitempty"` + Effectname *uint32 `protobuf:"varint,18,opt,name=effectname" json:"effectname,omitempty"` + Attachmentname *uint32 `protobuf:"varint,19,opt,name=attachmentname" json:"attachmentname,omitempty"` +} + +// Default values for CMsgEffectData fields. +const ( + Default_CMsgEffectData_Entity = uint32(16777215) + Default_CMsgEffectData_Otherentity = uint32(16777215) +) + +func (x *CMsgEffectData) Reset() { + *x = CMsgEffectData{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgEffectData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgEffectData) ProtoMessage() {} + +func (x *CMsgEffectData) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgEffectData.ProtoReflect.Descriptor instead. +func (*CMsgEffectData) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{10} +} + +func (x *CMsgEffectData) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgEffectData) GetStart() *CMsgVector { + if x != nil { + return x.Start + } + return nil +} + +func (x *CMsgEffectData) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgEffectData) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgEffectData) GetEntity() uint32 { + if x != nil && x.Entity != nil { + return *x.Entity + } + return Default_CMsgEffectData_Entity +} + +func (x *CMsgEffectData) GetOtherentity() uint32 { + if x != nil && x.Otherentity != nil { + return *x.Otherentity + } + return Default_CMsgEffectData_Otherentity +} + +func (x *CMsgEffectData) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgEffectData) GetMagnitude() float32 { + if x != nil && x.Magnitude != nil { + return *x.Magnitude + } + return 0 +} + +func (x *CMsgEffectData) GetRadius() float32 { + if x != nil && x.Radius != nil { + return *x.Radius + } + return 0 +} + +func (x *CMsgEffectData) GetSurfaceprop() uint32 { + if x != nil && x.Surfaceprop != nil { + return *x.Surfaceprop + } + return 0 +} + +func (x *CMsgEffectData) GetEffectindex() uint64 { + if x != nil && x.Effectindex != nil { + return *x.Effectindex + } + return 0 +} + +func (x *CMsgEffectData) GetDamagetype() uint32 { + if x != nil && x.Damagetype != nil { + return *x.Damagetype + } + return 0 +} + +func (x *CMsgEffectData) GetMaterial() uint32 { + if x != nil && x.Material != nil { + return *x.Material + } + return 0 +} + +func (x *CMsgEffectData) GetHitbox() uint32 { + if x != nil && x.Hitbox != nil { + return *x.Hitbox + } + return 0 +} + +func (x *CMsgEffectData) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CMsgEffectData) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CMsgEffectData) GetAttachmentindex() int32 { + if x != nil && x.Attachmentindex != nil { + return *x.Attachmentindex + } + return 0 +} + +func (x *CMsgEffectData) GetEffectname() uint32 { + if x != nil && x.Effectname != nil { + return *x.Effectname + } + return 0 +} + +func (x *CMsgEffectData) GetAttachmentname() uint32 { + if x != nil && x.Attachmentname != nil { + return *x.Attachmentname + } + return 0 +} + +type CMsgTEEffectDispatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Effectdata *CMsgEffectData `protobuf:"bytes,1,opt,name=effectdata" json:"effectdata,omitempty"` +} + +func (x *CMsgTEEffectDispatch) Reset() { + *x = CMsgTEEffectDispatch{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEEffectDispatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEEffectDispatch) ProtoMessage() {} + +func (x *CMsgTEEffectDispatch) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEEffectDispatch.ProtoReflect.Descriptor instead. +func (*CMsgTEEffectDispatch) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{11} +} + +func (x *CMsgTEEffectDispatch) GetEffectdata() *CMsgEffectData { + if x != nil { + return x.Effectdata + } + return nil +} + +type CMsgTEEnergySplash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos *CMsgVector `protobuf:"bytes,1,opt,name=pos" json:"pos,omitempty"` + Dir *CMsgVector `protobuf:"bytes,2,opt,name=dir" json:"dir,omitempty"` + Explosive *bool `protobuf:"varint,3,opt,name=explosive" json:"explosive,omitempty"` +} + +func (x *CMsgTEEnergySplash) Reset() { + *x = CMsgTEEnergySplash{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEEnergySplash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEEnergySplash) ProtoMessage() {} + +func (x *CMsgTEEnergySplash) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEEnergySplash.ProtoReflect.Descriptor instead. +func (*CMsgTEEnergySplash) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{12} +} + +func (x *CMsgTEEnergySplash) GetPos() *CMsgVector { + if x != nil { + return x.Pos + } + return nil +} + +func (x *CMsgTEEnergySplash) GetDir() *CMsgVector { + if x != nil { + return x.Dir + } + return nil +} + +func (x *CMsgTEEnergySplash) GetExplosive() bool { + if x != nil && x.Explosive != nil { + return *x.Explosive + } + return false +} + +type CMsgTEFizz struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entity *int32 `protobuf:"varint,1,opt,name=entity,def=-1" json:"entity,omitempty"` + Density *uint32 `protobuf:"varint,2,opt,name=density" json:"density,omitempty"` + Current *int32 `protobuf:"varint,3,opt,name=current" json:"current,omitempty"` +} + +// Default values for CMsgTEFizz fields. +const ( + Default_CMsgTEFizz_Entity = int32(-1) +) + +func (x *CMsgTEFizz) Reset() { + *x = CMsgTEFizz{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEFizz) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEFizz) ProtoMessage() {} + +func (x *CMsgTEFizz) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEFizz.ProtoReflect.Descriptor instead. +func (*CMsgTEFizz) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{13} +} + +func (x *CMsgTEFizz) GetEntity() int32 { + if x != nil && x.Entity != nil { + return *x.Entity + } + return Default_CMsgTEFizz_Entity +} + +func (x *CMsgTEFizz) GetDensity() uint32 { + if x != nil && x.Density != nil { + return *x.Density + } + return 0 +} + +func (x *CMsgTEFizz) GetCurrent() int32 { + if x != nil && x.Current != nil { + return *x.Current + } + return 0 +} + +type CMsgTEShatterSurface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,2,opt,name=angles" json:"angles,omitempty"` + Force *CMsgVector `protobuf:"bytes,3,opt,name=force" json:"force,omitempty"` + Forcepos *CMsgVector `protobuf:"bytes,4,opt,name=forcepos" json:"forcepos,omitempty"` + Width *float32 `protobuf:"fixed32,5,opt,name=width" json:"width,omitempty"` + Height *float32 `protobuf:"fixed32,6,opt,name=height" json:"height,omitempty"` + Shardsize *float32 `protobuf:"fixed32,7,opt,name=shardsize" json:"shardsize,omitempty"` + Surfacetype *uint32 `protobuf:"varint,8,opt,name=surfacetype" json:"surfacetype,omitempty"` + Frontcolor *uint32 `protobuf:"fixed32,9,opt,name=frontcolor" json:"frontcolor,omitempty"` + Backcolor *uint32 `protobuf:"fixed32,10,opt,name=backcolor" json:"backcolor,omitempty"` +} + +func (x *CMsgTEShatterSurface) Reset() { + *x = CMsgTEShatterSurface{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEShatterSurface) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEShatterSurface) ProtoMessage() {} + +func (x *CMsgTEShatterSurface) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEShatterSurface.ProtoReflect.Descriptor instead. +func (*CMsgTEShatterSurface) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{14} +} + +func (x *CMsgTEShatterSurface) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEShatterSurface) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgTEShatterSurface) GetForce() *CMsgVector { + if x != nil { + return x.Force + } + return nil +} + +func (x *CMsgTEShatterSurface) GetForcepos() *CMsgVector { + if x != nil { + return x.Forcepos + } + return nil +} + +func (x *CMsgTEShatterSurface) GetWidth() float32 { + if x != nil && x.Width != nil { + return *x.Width + } + return 0 +} + +func (x *CMsgTEShatterSurface) GetHeight() float32 { + if x != nil && x.Height != nil { + return *x.Height + } + return 0 +} + +func (x *CMsgTEShatterSurface) GetShardsize() float32 { + if x != nil && x.Shardsize != nil { + return *x.Shardsize + } + return 0 +} + +func (x *CMsgTEShatterSurface) GetSurfacetype() uint32 { + if x != nil && x.Surfacetype != nil { + return *x.Surfacetype + } + return 0 +} + +func (x *CMsgTEShatterSurface) GetFrontcolor() uint32 { + if x != nil && x.Frontcolor != nil { + return *x.Frontcolor + } + return 0 +} + +func (x *CMsgTEShatterSurface) GetBackcolor() uint32 { + if x != nil && x.Backcolor != nil { + return *x.Backcolor + } + return 0 +} + +type CMsgTEGlowSprite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Scale *float32 `protobuf:"fixed32,2,opt,name=scale" json:"scale,omitempty"` + Life *float32 `protobuf:"fixed32,3,opt,name=life" json:"life,omitempty"` + Brightness *uint32 `protobuf:"varint,4,opt,name=brightness" json:"brightness,omitempty"` +} + +func (x *CMsgTEGlowSprite) Reset() { + *x = CMsgTEGlowSprite{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEGlowSprite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEGlowSprite) ProtoMessage() {} + +func (x *CMsgTEGlowSprite) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEGlowSprite.ProtoReflect.Descriptor instead. +func (*CMsgTEGlowSprite) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{15} +} + +func (x *CMsgTEGlowSprite) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEGlowSprite) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgTEGlowSprite) GetLife() float32 { + if x != nil && x.Life != nil { + return *x.Life + } + return 0 +} + +func (x *CMsgTEGlowSprite) GetBrightness() uint32 { + if x != nil && x.Brightness != nil { + return *x.Brightness + } + return 0 +} + +type CMsgTEImpact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Normal *CMsgVector `protobuf:"bytes,2,opt,name=normal" json:"normal,omitempty"` + Type *uint32 `protobuf:"varint,3,opt,name=type" json:"type,omitempty"` +} + +func (x *CMsgTEImpact) Reset() { + *x = CMsgTEImpact{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEImpact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEImpact) ProtoMessage() {} + +func (x *CMsgTEImpact) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEImpact.ProtoReflect.Descriptor instead. +func (*CMsgTEImpact) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{16} +} + +func (x *CMsgTEImpact) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEImpact) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgTEImpact) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +type CMsgTEMuzzleFlash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,2,opt,name=angles" json:"angles,omitempty"` + Scale *float32 `protobuf:"fixed32,3,opt,name=scale" json:"scale,omitempty"` + Type *uint32 `protobuf:"varint,4,opt,name=type" json:"type,omitempty"` +} + +func (x *CMsgTEMuzzleFlash) Reset() { + *x = CMsgTEMuzzleFlash{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEMuzzleFlash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEMuzzleFlash) ProtoMessage() {} + +func (x *CMsgTEMuzzleFlash) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEMuzzleFlash.ProtoReflect.Descriptor instead. +func (*CMsgTEMuzzleFlash) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{17} +} + +func (x *CMsgTEMuzzleFlash) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEMuzzleFlash) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgTEMuzzleFlash) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgTEMuzzleFlash) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +type CMsgTEBloodStream struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Direction *CMsgVector `protobuf:"bytes,2,opt,name=direction" json:"direction,omitempty"` + Color *uint32 `protobuf:"fixed32,3,opt,name=color" json:"color,omitempty"` + Amount *uint32 `protobuf:"varint,4,opt,name=amount" json:"amount,omitempty"` +} + +func (x *CMsgTEBloodStream) Reset() { + *x = CMsgTEBloodStream{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEBloodStream) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEBloodStream) ProtoMessage() {} + +func (x *CMsgTEBloodStream) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEBloodStream.ProtoReflect.Descriptor instead. +func (*CMsgTEBloodStream) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{18} +} + +func (x *CMsgTEBloodStream) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEBloodStream) GetDirection() *CMsgVector { + if x != nil { + return x.Direction + } + return nil +} + +func (x *CMsgTEBloodStream) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CMsgTEBloodStream) GetAmount() uint32 { + if x != nil && x.Amount != nil { + return *x.Amount + } + return 0 +} + +type CMsgTEExplosion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Framerate *uint32 `protobuf:"varint,2,opt,name=framerate" json:"framerate,omitempty"` + Flags *uint32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` + Normal *CMsgVector `protobuf:"bytes,4,opt,name=normal" json:"normal,omitempty"` + Materialtype *uint32 `protobuf:"varint,5,opt,name=materialtype" json:"materialtype,omitempty"` + Radius *uint32 `protobuf:"varint,6,opt,name=radius" json:"radius,omitempty"` + Magnitude *uint32 `protobuf:"varint,7,opt,name=magnitude" json:"magnitude,omitempty"` + Scale *float32 `protobuf:"fixed32,8,opt,name=scale" json:"scale,omitempty"` + AffectRagdolls *bool `protobuf:"varint,9,opt,name=affect_ragdolls,json=affectRagdolls" json:"affect_ragdolls,omitempty"` + EffectName *string `protobuf:"bytes,10,opt,name=effect_name,json=effectName" json:"effect_name,omitempty"` + ExplosionType *uint32 `protobuf:"varint,11,opt,name=explosion_type,json=explosionType" json:"explosion_type,omitempty"` +} + +func (x *CMsgTEExplosion) Reset() { + *x = CMsgTEExplosion{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEExplosion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEExplosion) ProtoMessage() {} + +func (x *CMsgTEExplosion) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEExplosion.ProtoReflect.Descriptor instead. +func (*CMsgTEExplosion) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{19} +} + +func (x *CMsgTEExplosion) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEExplosion) GetFramerate() uint32 { + if x != nil && x.Framerate != nil { + return *x.Framerate + } + return 0 +} + +func (x *CMsgTEExplosion) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CMsgTEExplosion) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgTEExplosion) GetMaterialtype() uint32 { + if x != nil && x.Materialtype != nil { + return *x.Materialtype + } + return 0 +} + +func (x *CMsgTEExplosion) GetRadius() uint32 { + if x != nil && x.Radius != nil { + return *x.Radius + } + return 0 +} + +func (x *CMsgTEExplosion) GetMagnitude() uint32 { + if x != nil && x.Magnitude != nil { + return *x.Magnitude + } + return 0 +} + +func (x *CMsgTEExplosion) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgTEExplosion) GetAffectRagdolls() bool { + if x != nil && x.AffectRagdolls != nil { + return *x.AffectRagdolls + } + return false +} + +func (x *CMsgTEExplosion) GetEffectName() string { + if x != nil && x.EffectName != nil { + return *x.EffectName + } + return "" +} + +func (x *CMsgTEExplosion) GetExplosionType() uint32 { + if x != nil && x.ExplosionType != nil { + return *x.ExplosionType + } + return 0 +} + +type CMsgTEDust struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Size *float32 `protobuf:"fixed32,2,opt,name=size" json:"size,omitempty"` + Speed *float32 `protobuf:"fixed32,3,opt,name=speed" json:"speed,omitempty"` + Direction *CMsgVector `protobuf:"bytes,4,opt,name=direction" json:"direction,omitempty"` +} + +func (x *CMsgTEDust) Reset() { + *x = CMsgTEDust{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEDust) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEDust) ProtoMessage() {} + +func (x *CMsgTEDust) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEDust.ProtoReflect.Descriptor instead. +func (*CMsgTEDust) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{20} +} + +func (x *CMsgTEDust) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEDust) GetSize() float32 { + if x != nil && x.Size != nil { + return *x.Size + } + return 0 +} + +func (x *CMsgTEDust) GetSpeed() float32 { + if x != nil && x.Speed != nil { + return *x.Speed + } + return 0 +} + +func (x *CMsgTEDust) GetDirection() *CMsgVector { + if x != nil { + return x.Direction + } + return nil +} + +type CMsgTELargeFunnel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Reversed *uint32 `protobuf:"varint,2,opt,name=reversed" json:"reversed,omitempty"` +} + +func (x *CMsgTELargeFunnel) Reset() { + *x = CMsgTELargeFunnel{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTELargeFunnel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTELargeFunnel) ProtoMessage() {} + +func (x *CMsgTELargeFunnel) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTELargeFunnel.ProtoReflect.Descriptor instead. +func (*CMsgTELargeFunnel) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{21} +} + +func (x *CMsgTELargeFunnel) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTELargeFunnel) GetReversed() uint32 { + if x != nil && x.Reversed != nil { + return *x.Reversed + } + return 0 +} + +type CMsgTESparks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Magnitude *uint32 `protobuf:"varint,2,opt,name=magnitude" json:"magnitude,omitempty"` + Length *uint32 `protobuf:"varint,3,opt,name=length" json:"length,omitempty"` + Direction *CMsgVector `protobuf:"bytes,4,opt,name=direction" json:"direction,omitempty"` +} + +func (x *CMsgTESparks) Reset() { + *x = CMsgTESparks{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTESparks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTESparks) ProtoMessage() {} + +func (x *CMsgTESparks) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTESparks.ProtoReflect.Descriptor instead. +func (*CMsgTESparks) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{22} +} + +func (x *CMsgTESparks) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTESparks) GetMagnitude() uint32 { + if x != nil && x.Magnitude != nil { + return *x.Magnitude + } + return 0 +} + +func (x *CMsgTESparks) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +func (x *CMsgTESparks) GetDirection() *CMsgVector { + if x != nil { + return x.Direction + } + return nil +} + +type CMsgTEPhysicsProp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Velocity *CMsgVector `protobuf:"bytes,2,opt,name=velocity" json:"velocity,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,3,opt,name=angles" json:"angles,omitempty"` + Skin *uint32 `protobuf:"fixed32,4,opt,name=skin" json:"skin,omitempty"` + Flags *uint32 `protobuf:"varint,5,opt,name=flags" json:"flags,omitempty"` + Effects *uint32 `protobuf:"varint,6,opt,name=effects" json:"effects,omitempty"` + Color *uint32 `protobuf:"fixed32,7,opt,name=color" json:"color,omitempty"` + Modelindex *uint64 `protobuf:"fixed64,8,opt,name=modelindex" json:"modelindex,omitempty"` + UnusedBreakmodelsnottomake *uint32 `protobuf:"varint,9,opt,name=unused_breakmodelsnottomake,json=unusedBreakmodelsnottomake" json:"unused_breakmodelsnottomake,omitempty"` + Scale *float32 `protobuf:"fixed32,10,opt,name=scale" json:"scale,omitempty"` + Dmgpos *CMsgVector `protobuf:"bytes,11,opt,name=dmgpos" json:"dmgpos,omitempty"` + Dmgdir *CMsgVector `protobuf:"bytes,12,opt,name=dmgdir" json:"dmgdir,omitempty"` + Dmgtype *int32 `protobuf:"varint,13,opt,name=dmgtype" json:"dmgtype,omitempty"` +} + +func (x *CMsgTEPhysicsProp) Reset() { + *x = CMsgTEPhysicsProp{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEPhysicsProp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEPhysicsProp) ProtoMessage() {} + +func (x *CMsgTEPhysicsProp) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEPhysicsProp.ProtoReflect.Descriptor instead. +func (*CMsgTEPhysicsProp) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{23} +} + +func (x *CMsgTEPhysicsProp) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEPhysicsProp) GetVelocity() *CMsgVector { + if x != nil { + return x.Velocity + } + return nil +} + +func (x *CMsgTEPhysicsProp) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgTEPhysicsProp) GetSkin() uint32 { + if x != nil && x.Skin != nil { + return *x.Skin + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetEffects() uint32 { + if x != nil && x.Effects != nil { + return *x.Effects + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetModelindex() uint64 { + if x != nil && x.Modelindex != nil { + return *x.Modelindex + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetUnusedBreakmodelsnottomake() uint32 { + if x != nil && x.UnusedBreakmodelsnottomake != nil { + return *x.UnusedBreakmodelsnottomake + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *CMsgTEPhysicsProp) GetDmgpos() *CMsgVector { + if x != nil { + return x.Dmgpos + } + return nil +} + +func (x *CMsgTEPhysicsProp) GetDmgdir() *CMsgVector { + if x != nil { + return x.Dmgdir + } + return nil +} + +func (x *CMsgTEPhysicsProp) GetDmgtype() int32 { + if x != nil && x.Dmgtype != nil { + return *x.Dmgtype + } + return 0 +} + +type CMsgTEPlayerDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Player *int32 `protobuf:"varint,2,opt,name=player,def=-1" json:"player,omitempty"` + Entity *int32 `protobuf:"varint,3,opt,name=entity,def=-1" json:"entity,omitempty"` +} + +// Default values for CMsgTEPlayerDecal fields. +const ( + Default_CMsgTEPlayerDecal_Player = int32(-1) + Default_CMsgTEPlayerDecal_Entity = int32(-1) +) + +func (x *CMsgTEPlayerDecal) Reset() { + *x = CMsgTEPlayerDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEPlayerDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEPlayerDecal) ProtoMessage() {} + +func (x *CMsgTEPlayerDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEPlayerDecal.ProtoReflect.Descriptor instead. +func (*CMsgTEPlayerDecal) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{24} +} + +func (x *CMsgTEPlayerDecal) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEPlayerDecal) GetPlayer() int32 { + if x != nil && x.Player != nil { + return *x.Player + } + return Default_CMsgTEPlayerDecal_Player +} + +func (x *CMsgTEPlayerDecal) GetEntity() int32 { + if x != nil && x.Entity != nil { + return *x.Entity + } + return Default_CMsgTEPlayerDecal_Entity +} + +type CMsgTEProjectedDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,2,opt,name=angles" json:"angles,omitempty"` + Index *uint32 `protobuf:"varint,3,opt,name=index" json:"index,omitempty"` + Distance *float32 `protobuf:"fixed32,4,opt,name=distance" json:"distance,omitempty"` +} + +func (x *CMsgTEProjectedDecal) Reset() { + *x = CMsgTEProjectedDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEProjectedDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEProjectedDecal) ProtoMessage() {} + +func (x *CMsgTEProjectedDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEProjectedDecal.ProtoReflect.Descriptor instead. +func (*CMsgTEProjectedDecal) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{25} +} + +func (x *CMsgTEProjectedDecal) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEProjectedDecal) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CMsgTEProjectedDecal) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CMsgTEProjectedDecal) GetDistance() float32 { + if x != nil && x.Distance != nil { + return *x.Distance + } + return 0 +} + +type CMsgTESmoke struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Scale *float32 `protobuf:"fixed32,2,opt,name=scale" json:"scale,omitempty"` +} + +func (x *CMsgTESmoke) Reset() { + *x = CMsgTESmoke{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTESmoke) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTESmoke) ProtoMessage() {} + +func (x *CMsgTESmoke) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTESmoke.ProtoReflect.Descriptor instead. +func (*CMsgTESmoke) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{26} +} + +func (x *CMsgTESmoke) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTESmoke) GetScale() float32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +type CMsgTEWorldDecal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Normal *CMsgVector `protobuf:"bytes,2,opt,name=normal" json:"normal,omitempty"` + Index *uint32 `protobuf:"varint,3,opt,name=index" json:"index,omitempty"` +} + +func (x *CMsgTEWorldDecal) Reset() { + *x = CMsgTEWorldDecal{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_te_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMsgTEWorldDecal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMsgTEWorldDecal) ProtoMessage() {} + +func (x *CMsgTEWorldDecal) ProtoReflect() protoreflect.Message { + mi := &file_s2_te_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMsgTEWorldDecal.ProtoReflect.Descriptor instead. +func (*CMsgTEWorldDecal) Descriptor() ([]byte, []int) { + return file_s2_te_proto_rawDescGZIP(), []int{27} +} + +func (x *CMsgTEWorldDecal) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CMsgTEWorldDecal) GetNormal() *CMsgVector { + if x != nil { + return x.Normal + } + return nil +} + +func (x *CMsgTEWorldDecal) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +var File_s2_te_proto protoreflect.FileDescriptor + +var file_s2_te_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x73, 0x32, 0x2f, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x1a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x41, 0x72, + 0x6d, 0x6f, 0x72, 0x52, 0x69, 0x63, 0x6f, 0x63, 0x68, 0x65, 0x74, 0x12, 0x47, 0x0a, 0x03, 0x70, + 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x03, 0x70, 0x6f, 0x73, 0x12, 0x47, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x64, 0x69, 0x72, 0x22, 0xd2, 0x02, + 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x61, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6c, 0x6f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x09, 0x68, 0x61, 0x6c, 0x6f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6c, 0x69, 0x66, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x66, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x64, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x61, 0x64, 0x65, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x07, 0x52, + 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x22, 0xb9, 0x02, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x65, 0x61, + 0x6d, 0x45, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, + 0x61, 0x6d, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x47, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x9f, + 0x01, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, + 0x73, 0x12, 0x4d, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x54, 0x45, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x65, 0x61, 0x6d, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x52, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x47, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x43, + 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x65, 0x61, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x61, + 0x73, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xad, 0x02, 0x0a, + 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, + 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, + 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x4b, 0x0a, + 0x05, 0x73, 0x61, 0x78, 0x69, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x05, 0x73, 0x61, 0x78, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xe9, 0x01, 0x0a, + 0x0d, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x49, + 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x04, 0x6d, 0x61, 0x78, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, + 0x6d, 0x61, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x22, 0xed, 0x01, 0x0a, 0x11, 0x43, 0x4d, 0x73, + 0x67, 0x54, 0x45, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x12, 0x49, + 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x04, 0x6d, 0x61, 0x78, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, + 0x6d, 0x61, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x74, 0x65, 0x72, 0x7a, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x61, 0x74, 0x65, 0x72, 0x7a, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x22, 0xf3, 0x01, 0x0a, 0x0b, 0x43, 0x4d, 0x73, + 0x67, 0x54, 0x45, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9a, + 0x06, 0x0a, 0x0e, 0x43, 0x4d, 0x73, 0x67, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4d, 0x0a, + 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x06, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x3a, 0x08, 0x31, 0x36, 0x37, + 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, + 0x0b, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x07, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0b, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x70, 0x72, 0x6f, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0b, 0x73, 0x75, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x70, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0b, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x14, 0x43, + 0x4d, 0x73, 0x67, 0x54, 0x45, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x59, 0x0a, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc4, + 0x01, 0x0a, 0x12, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x53, + 0x70, 0x6c, 0x61, 0x73, 0x68, 0x12, 0x47, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x47, + 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x73, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x73, 0x69, 0x76, 0x65, 0x22, 0x5c, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x46, + 0x69, 0x7a, 0x7a, 0x12, 0x1a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x22, 0x80, 0x04, 0x0a, 0x14, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x68, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x61, + 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, + 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x08, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x75, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6e, + 0x74, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0a, 0x66, 0x72, + 0x6f, 0x6e, 0x74, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x07, 0x52, 0x09, 0x62, 0x61, 0x63, + 0x6b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x54, + 0x45, 0x47, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x72, 0x69, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x66, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, + 0x6c, 0x69, 0x66, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0c, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x49, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, + 0x54, 0x45, 0x4d, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x12, 0x4d, 0x0a, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, 0x0a, 0x06, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, + 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x53, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc4, 0x03, + 0x0a, 0x0f, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, + 0x67, 0x64, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x52, 0x61, 0x67, 0x64, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x0a, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x44, + 0x75, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x7e, 0x0a, 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x4c, 0x61, 0x72, 0x67, 0x65, + 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x64, 0x22, 0xe8, 0x01, 0x0a, 0x0c, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x70, 0x61, 0x72, + 0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x53, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x05, 0x0a, + 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x50, 0x72, + 0x6f, 0x70, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x51, 0x0a, 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x76, 0x65, 0x6c, 0x6f, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, + 0x1b, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6b, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x1a, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x6e, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6b, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x64, 0x6d, 0x67, 0x70, 0x6f, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x64, 0x6d, 0x67, + 0x70, 0x6f, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x64, 0x6d, 0x67, 0x64, 0x69, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x64, 0x6d, 0x67, 0x64, + 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6d, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x6d, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x01, 0x0a, + 0x11, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, + 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, + 0x31, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x43, 0x4d, + 0x73, 0x67, 0x54, 0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, + 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0x72, 0x0a, 0x0b, 0x43, 0x4d, 0x73, 0x67, 0x54, 0x45, 0x53, 0x6d, 0x6f, 0x6b, + 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x10, 0x43, 0x4d, 0x73, 0x67, 0x54, + 0x45, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x12, 0x4d, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2a, + 0xbd, 0x04, 0x0a, 0x0e, 0x45, 0x54, 0x45, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x49, + 0x64, 0x73, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x10, 0x90, 0x03, 0x12, 0x17, 0x0a, 0x12, + 0x54, 0x45, 0x5f, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x52, 0x69, 0x63, 0x6f, 0x63, 0x68, 0x65, 0x74, + 0x49, 0x64, 0x10, 0x91, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, + 0x45, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x10, 0x92, 0x03, 0x12, 0x12, 0x0a, + 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x10, 0x93, + 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x42, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x49, 0x64, 0x10, 0x94, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x45, 0x5f, 0x42, 0x65, + 0x61, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x10, 0x95, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x54, + 0x45, 0x5f, 0x42, 0x53, 0x50, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x97, 0x03, 0x12, + 0x11, 0x0a, 0x0c, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x73, 0x49, 0x64, 0x10, + 0x98, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x10, 0x99, 0x03, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x45, 0x5f, + 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x9a, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, + 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0x9b, 0x03, + 0x12, 0x16, 0x0a, 0x11, 0x54, 0x45, 0x5f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x53, 0x70, 0x6c, + 0x61, 0x73, 0x68, 0x49, 0x64, 0x10, 0x9c, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x45, 0x5f, 0x46, + 0x69, 0x7a, 0x7a, 0x49, 0x64, 0x10, 0x9d, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x53, + 0x68, 0x61, 0x74, 0x74, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x10, + 0x9e, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x45, 0x5f, 0x47, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x72, + 0x69, 0x74, 0x65, 0x49, 0x64, 0x10, 0x9f, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x45, 0x5f, 0x49, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x49, 0x64, 0x10, 0xa0, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, + 0x5f, 0x4d, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x49, 0x64, 0x10, 0xa1, + 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x64, 0x10, 0xa2, 0x03, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x45, 0x5f, 0x45, + 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x10, 0xa3, 0x03, 0x12, 0x0e, 0x0a, + 0x09, 0x54, 0x45, 0x5f, 0x44, 0x75, 0x73, 0x74, 0x49, 0x64, 0x10, 0xa4, 0x03, 0x12, 0x15, 0x0a, + 0x10, 0x54, 0x45, 0x5f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x10, 0xa5, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x45, 0x5f, 0x53, 0x70, 0x61, 0x72, 0x6b, + 0x73, 0x49, 0x64, 0x10, 0xa6, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x45, 0x5f, 0x50, 0x68, 0x79, + 0x73, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x64, 0x10, 0xa7, 0x03, 0x12, 0x15, 0x0a, + 0x10, 0x54, 0x45, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, + 0x64, 0x10, 0xa8, 0x03, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x10, 0xa9, 0x03, 0x12, 0x0f, + 0x0a, 0x0a, 0x54, 0x45, 0x5f, 0x53, 0x6d, 0x6f, 0x6b, 0x65, 0x49, 0x64, 0x10, 0xaa, 0x03, +} + +var ( + file_s2_te_proto_rawDescOnce sync.Once + file_s2_te_proto_rawDescData = file_s2_te_proto_rawDesc +) + +func file_s2_te_proto_rawDescGZIP() []byte { + file_s2_te_proto_rawDescOnce.Do(func() { + file_s2_te_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_te_proto_rawDescData) + }) + return file_s2_te_proto_rawDescData +} + +var file_s2_te_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_s2_te_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_s2_te_proto_goTypes = []interface{}{ + (ETEProtobufIds)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.ETEProtobufIds + (*CMsgTEArmorRicochet)(nil), // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEArmorRicochet + (*CMsgTEBaseBeam)(nil), // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBaseBeam + (*CMsgTEBeamEntPoint)(nil), // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEntPoint + (*CMsgTEBeamEnts)(nil), // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEnts + (*CMsgTEBeamPoints)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamPoints + (*CMsgTEBeamRing)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamRing + (*CMsgTEBSPDecal)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBSPDecal + (*CMsgTEBubbles)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbles + (*CMsgTEBubbleTrail)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbleTrail + (*CMsgTEDecal)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDecal + (*CMsgEffectData)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData + (*CMsgTEEffectDispatch)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEEffectDispatch + (*CMsgTEEnergySplash)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEEnergySplash + (*CMsgTEFizz)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEFizz + (*CMsgTEShatterSurface)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEShatterSurface + (*CMsgTEGlowSprite)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEGlowSprite + (*CMsgTEImpact)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEImpact + (*CMsgTEMuzzleFlash)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEMuzzleFlash + (*CMsgTEBloodStream)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBloodStream + (*CMsgTEExplosion)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEExplosion + (*CMsgTEDust)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDust + (*CMsgTELargeFunnel)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgTELargeFunnel + (*CMsgTESparks)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CMsgTESparks + (*CMsgTEPhysicsProp)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp + (*CMsgTEPlayerDecal)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPlayerDecal + (*CMsgTEProjectedDecal)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEProjectedDecal + (*CMsgTESmoke)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CMsgTESmoke + (*CMsgTEWorldDecal)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEWorldDecal + (*CMsgVector)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + (*CMsgQAngle)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle +} +var file_s2_te_proto_depIdxs = []int32{ + 29, // 0: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEArmorRicochet.pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 1: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEArmorRicochet.dir:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 2, // 2: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEntPoint.base:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBaseBeam + 29, // 3: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEntPoint.start:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 4: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEntPoint.end:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 2, // 5: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamEnts.base:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBaseBeam + 2, // 6: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamPoints.base:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBaseBeam + 29, // 7: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamPoints.start:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 8: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamPoints.end:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 2, // 9: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBeamRing.base:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBaseBeam + 29, // 10: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBSPDecal.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 11: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBSPDecal.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 12: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBSPDecal.saxis:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 13: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbles.mins:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 14: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbles.maxs:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 15: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbleTrail.mins:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 16: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBubbleTrail.maxs:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 17: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDecal.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 18: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDecal.start:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 19: com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 20: com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData.start:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 21: com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 30, // 22: com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 11, // 23: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEEffectDispatch.effectdata:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgEffectData + 29, // 24: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEEnergySplash.pos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 25: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEEnergySplash.dir:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 26: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEShatterSurface.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 30, // 27: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEShatterSurface.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 29, // 28: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEShatterSurface.force:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 29: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEShatterSurface.forcepos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 30: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEGlowSprite.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 31: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEImpact.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 32: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEImpact.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 33: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEMuzzleFlash.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 30, // 34: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEMuzzleFlash.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 29, // 35: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBloodStream.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 36: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEBloodStream.direction:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 37: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEExplosion.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 38: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEExplosion.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 39: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDust.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 40: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEDust.direction:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 41: com.github.markus_wa.demoinfocs_golang.s2.CMsgTELargeFunnel.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 42: com.github.markus_wa.demoinfocs_golang.s2.CMsgTESparks.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 43: com.github.markus_wa.demoinfocs_golang.s2.CMsgTESparks.direction:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 44: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 45: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp.velocity:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 30, // 46: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 29, // 47: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp.dmgpos:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 48: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPhysicsProp.dmgdir:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 49: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEPlayerDecal.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 50: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEProjectedDecal.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 30, // 51: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEProjectedDecal.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 29, // 52: com.github.markus_wa.demoinfocs_golang.s2.CMsgTESmoke.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 53: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEWorldDecal.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 29, // 54: com.github.markus_wa.demoinfocs_golang.s2.CMsgTEWorldDecal.normal:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 55, // [55:55] is the sub-list for method output_type + 55, // [55:55] is the sub-list for method input_type + 55, // [55:55] is the sub-list for extension type_name + 55, // [55:55] is the sub-list for extension extendee + 0, // [0:55] is the sub-list for field type_name +} + +func init() { file_s2_te_proto_init() } +func file_s2_te_proto_init() { + if File_s2_te_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_te_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEArmorRicochet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBaseBeam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBeamEntPoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBeamEnts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBeamPoints); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBeamRing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBSPDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBubbles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBubbleTrail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgEffectData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEEffectDispatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEEnergySplash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEFizz); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEShatterSurface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEGlowSprite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEImpact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEMuzzleFlash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEBloodStream); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEExplosion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEDust); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTELargeFunnel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTESparks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEPhysicsProp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEPlayerDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEProjectedDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTESmoke); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_te_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CMsgTEWorldDecal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_te_proto_rawDesc, + NumEnums: 1, + NumMessages: 28, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_te_proto_goTypes, + DependencyIndexes: file_s2_te_proto_depIdxs, + EnumInfos: file_s2_te_proto_enumTypes, + MessageInfos: file_s2_te_proto_msgTypes, + }.Build() + File_s2_te_proto = out.File + file_s2_te_proto_rawDesc = nil + file_s2_te_proto_goTypes = nil + file_s2_te_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/msgs2/usermessages.pb.go b/pkg/demoinfocs/msgs2/usermessages.pb.go new file mode 100644 index 00000000..9281379e --- /dev/null +++ b/pkg/demoinfocs/msgs2/usermessages.pb.go @@ -0,0 +1,9423 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v4.23.3 +// source: s2/usermessages.proto + +package msgs2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EBaseUserMessages int32 + +const ( + EBaseUserMessages_UM_AchievementEvent EBaseUserMessages = 101 + EBaseUserMessages_UM_CloseCaption EBaseUserMessages = 102 + EBaseUserMessages_UM_CloseCaptionDirect EBaseUserMessages = 103 + EBaseUserMessages_UM_CurrentTimescale EBaseUserMessages = 104 + EBaseUserMessages_UM_DesiredTimescale EBaseUserMessages = 105 + EBaseUserMessages_UM_Fade EBaseUserMessages = 106 + EBaseUserMessages_UM_GameTitle EBaseUserMessages = 107 + EBaseUserMessages_UM_HudMsg EBaseUserMessages = 110 + EBaseUserMessages_UM_HudText EBaseUserMessages = 111 + EBaseUserMessages_UM_ColoredText EBaseUserMessages = 113 + EBaseUserMessages_UM_RequestState EBaseUserMessages = 114 + EBaseUserMessages_UM_ResetHUD EBaseUserMessages = 115 + EBaseUserMessages_UM_Rumble EBaseUserMessages = 116 + EBaseUserMessages_UM_SayText EBaseUserMessages = 117 + EBaseUserMessages_UM_SayText2 EBaseUserMessages = 118 + EBaseUserMessages_UM_SayTextChannel EBaseUserMessages = 119 + EBaseUserMessages_UM_Shake EBaseUserMessages = 120 + EBaseUserMessages_UM_ShakeDir EBaseUserMessages = 121 + EBaseUserMessages_UM_TextMsg EBaseUserMessages = 124 + EBaseUserMessages_UM_ScreenTilt EBaseUserMessages = 125 + EBaseUserMessages_UM_VoiceMask EBaseUserMessages = 128 + EBaseUserMessages_UM_SendAudio EBaseUserMessages = 130 + EBaseUserMessages_UM_ItemPickup EBaseUserMessages = 131 + EBaseUserMessages_UM_AmmoDenied EBaseUserMessages = 132 + EBaseUserMessages_UM_ShowMenu EBaseUserMessages = 134 + EBaseUserMessages_UM_CreditsMsg EBaseUserMessages = 135 + EBaseUserMessages_UM_CloseCaptionPlaceholder EBaseUserMessages = 142 + EBaseUserMessages_UM_CameraTransition EBaseUserMessages = 143 + EBaseUserMessages_UM_AudioParameter EBaseUserMessages = 144 + EBaseUserMessages_UM_ParticleManager EBaseUserMessages = 145 + EBaseUserMessages_UM_HudError EBaseUserMessages = 146 + EBaseUserMessages_UM_CustomGameEvent EBaseUserMessages = 148 + EBaseUserMessages_UM_AnimGraphUpdate EBaseUserMessages = 149 + EBaseUserMessages_UM_HapticsManagerPulse EBaseUserMessages = 150 + EBaseUserMessages_UM_HapticsManagerEffect EBaseUserMessages = 151 + EBaseUserMessages_UM_CommandQueueState EBaseUserMessages = 152 + EBaseUserMessages_UM_UpdateCssClasses EBaseUserMessages = 153 + EBaseUserMessages_UM_ServerFrameTime EBaseUserMessages = 154 + EBaseUserMessages_UM_LagCompensationError EBaseUserMessages = 155 + EBaseUserMessages_UM_RequestDllStatus EBaseUserMessages = 156 + EBaseUserMessages_UM_RequestUtilAction EBaseUserMessages = 157 + EBaseUserMessages_UM_UtilActionResponse EBaseUserMessages = 158 + EBaseUserMessages_UM_DllStatusResponse EBaseUserMessages = 159 + EBaseUserMessages_UM_RequestInventory EBaseUserMessages = 160 + EBaseUserMessages_UM_InventoryResponse EBaseUserMessages = 161 + EBaseUserMessages_UM_RequestDiagnostic EBaseUserMessages = 162 + EBaseUserMessages_UM_DiagnosticResponse EBaseUserMessages = 163 + EBaseUserMessages_UM_MAX_BASE EBaseUserMessages = 200 +) + +// Enum value maps for EBaseUserMessages. +var ( + EBaseUserMessages_name = map[int32]string{ + 101: "UM_AchievementEvent", + 102: "UM_CloseCaption", + 103: "UM_CloseCaptionDirect", + 104: "UM_CurrentTimescale", + 105: "UM_DesiredTimescale", + 106: "UM_Fade", + 107: "UM_GameTitle", + 110: "UM_HudMsg", + 111: "UM_HudText", + 113: "UM_ColoredText", + 114: "UM_RequestState", + 115: "UM_ResetHUD", + 116: "UM_Rumble", + 117: "UM_SayText", + 118: "UM_SayText2", + 119: "UM_SayTextChannel", + 120: "UM_Shake", + 121: "UM_ShakeDir", + 124: "UM_TextMsg", + 125: "UM_ScreenTilt", + 128: "UM_VoiceMask", + 130: "UM_SendAudio", + 131: "UM_ItemPickup", + 132: "UM_AmmoDenied", + 134: "UM_ShowMenu", + 135: "UM_CreditsMsg", + 142: "UM_CloseCaptionPlaceholder", + 143: "UM_CameraTransition", + 144: "UM_AudioParameter", + 145: "UM_ParticleManager", + 146: "UM_HudError", + 148: "UM_CustomGameEvent", + 149: "UM_AnimGraphUpdate", + 150: "UM_HapticsManagerPulse", + 151: "UM_HapticsManagerEffect", + 152: "UM_CommandQueueState", + 153: "UM_UpdateCssClasses", + 154: "UM_ServerFrameTime", + 155: "UM_LagCompensationError", + 156: "UM_RequestDllStatus", + 157: "UM_RequestUtilAction", + 158: "UM_UtilActionResponse", + 159: "UM_DllStatusResponse", + 160: "UM_RequestInventory", + 161: "UM_InventoryResponse", + 162: "UM_RequestDiagnostic", + 163: "UM_DiagnosticResponse", + 200: "UM_MAX_BASE", + } + EBaseUserMessages_value = map[string]int32{ + "UM_AchievementEvent": 101, + "UM_CloseCaption": 102, + "UM_CloseCaptionDirect": 103, + "UM_CurrentTimescale": 104, + "UM_DesiredTimescale": 105, + "UM_Fade": 106, + "UM_GameTitle": 107, + "UM_HudMsg": 110, + "UM_HudText": 111, + "UM_ColoredText": 113, + "UM_RequestState": 114, + "UM_ResetHUD": 115, + "UM_Rumble": 116, + "UM_SayText": 117, + "UM_SayText2": 118, + "UM_SayTextChannel": 119, + "UM_Shake": 120, + "UM_ShakeDir": 121, + "UM_TextMsg": 124, + "UM_ScreenTilt": 125, + "UM_VoiceMask": 128, + "UM_SendAudio": 130, + "UM_ItemPickup": 131, + "UM_AmmoDenied": 132, + "UM_ShowMenu": 134, + "UM_CreditsMsg": 135, + "UM_CloseCaptionPlaceholder": 142, + "UM_CameraTransition": 143, + "UM_AudioParameter": 144, + "UM_ParticleManager": 145, + "UM_HudError": 146, + "UM_CustomGameEvent": 148, + "UM_AnimGraphUpdate": 149, + "UM_HapticsManagerPulse": 150, + "UM_HapticsManagerEffect": 151, + "UM_CommandQueueState": 152, + "UM_UpdateCssClasses": 153, + "UM_ServerFrameTime": 154, + "UM_LagCompensationError": 155, + "UM_RequestDllStatus": 156, + "UM_RequestUtilAction": 157, + "UM_UtilActionResponse": 158, + "UM_DllStatusResponse": 159, + "UM_RequestInventory": 160, + "UM_InventoryResponse": 161, + "UM_RequestDiagnostic": 162, + "UM_DiagnosticResponse": 163, + "UM_MAX_BASE": 200, + } +) + +func (x EBaseUserMessages) Enum() *EBaseUserMessages { + p := new(EBaseUserMessages) + *p = x + return p +} + +func (x EBaseUserMessages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EBaseUserMessages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_usermessages_proto_enumTypes[0].Descriptor() +} + +func (EBaseUserMessages) Type() protoreflect.EnumType { + return &file_s2_usermessages_proto_enumTypes[0] +} + +func (x EBaseUserMessages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EBaseUserMessages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EBaseUserMessages(num) + return nil +} + +// Deprecated: Use EBaseUserMessages.Descriptor instead. +func (EBaseUserMessages) EnumDescriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{0} +} + +type EBaseEntityMessages int32 + +const ( + EBaseEntityMessages_EM_PlayJingle EBaseEntityMessages = 136 + EBaseEntityMessages_EM_ScreenOverlay EBaseEntityMessages = 137 + EBaseEntityMessages_EM_RemoveAllDecals EBaseEntityMessages = 138 + EBaseEntityMessages_EM_PropagateForce EBaseEntityMessages = 139 + EBaseEntityMessages_EM_DoSpark EBaseEntityMessages = 140 + EBaseEntityMessages_EM_FixAngle EBaseEntityMessages = 141 +) + +// Enum value maps for EBaseEntityMessages. +var ( + EBaseEntityMessages_name = map[int32]string{ + 136: "EM_PlayJingle", + 137: "EM_ScreenOverlay", + 138: "EM_RemoveAllDecals", + 139: "EM_PropagateForce", + 140: "EM_DoSpark", + 141: "EM_FixAngle", + } + EBaseEntityMessages_value = map[string]int32{ + "EM_PlayJingle": 136, + "EM_ScreenOverlay": 137, + "EM_RemoveAllDecals": 138, + "EM_PropagateForce": 139, + "EM_DoSpark": 140, + "EM_FixAngle": 141, + } +) + +func (x EBaseEntityMessages) Enum() *EBaseEntityMessages { + p := new(EBaseEntityMessages) + *p = x + return p +} + +func (x EBaseEntityMessages) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EBaseEntityMessages) Descriptor() protoreflect.EnumDescriptor { + return file_s2_usermessages_proto_enumTypes[1].Descriptor() +} + +func (EBaseEntityMessages) Type() protoreflect.EnumType { + return &file_s2_usermessages_proto_enumTypes[1] +} + +func (x EBaseEntityMessages) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EBaseEntityMessages) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EBaseEntityMessages(num) + return nil +} + +// Deprecated: Use EBaseEntityMessages.Descriptor instead. +func (EBaseEntityMessages) EnumDescriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{1} +} + +type ERollType int32 + +const ( + ERollType_ROLL_NONE ERollType = -1 + ERollType_ROLL_STATS ERollType = 0 + ERollType_ROLL_CREDITS ERollType = 1 + ERollType_ROLL_LATE_JOIN_LOGO ERollType = 2 + ERollType_ROLL_OUTTRO ERollType = 3 +) + +// Enum value maps for ERollType. +var ( + ERollType_name = map[int32]string{ + -1: "ROLL_NONE", + 0: "ROLL_STATS", + 1: "ROLL_CREDITS", + 2: "ROLL_LATE_JOIN_LOGO", + 3: "ROLL_OUTTRO", + } + ERollType_value = map[string]int32{ + "ROLL_NONE": -1, + "ROLL_STATS": 0, + "ROLL_CREDITS": 1, + "ROLL_LATE_JOIN_LOGO": 2, + "ROLL_OUTTRO": 3, + } +) + +func (x ERollType) Enum() *ERollType { + p := new(ERollType) + *p = x + return p +} + +func (x ERollType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ERollType) Descriptor() protoreflect.EnumDescriptor { + return file_s2_usermessages_proto_enumTypes[2].Descriptor() +} + +func (ERollType) Type() protoreflect.EnumType { + return &file_s2_usermessages_proto_enumTypes[2] +} + +func (x ERollType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ERollType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ERollType(num) + return nil +} + +// Deprecated: Use ERollType.Descriptor instead. +func (ERollType) EnumDescriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{2} +} + +type PARTICLE_MESSAGE int32 + +const ( + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CREATE PARTICLE_MESSAGE = 0 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE PARTICLE_MESSAGE = 1 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD PARTICLE_MESSAGE = 2 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION PARTICLE_MESSAGE = 3 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK PARTICLE_MESSAGE = 4 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT PARTICLE_MESSAGE = 5 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET PARTICLE_MESSAGE = 6 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_DESTROY PARTICLE_MESSAGE = 7 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING PARTICLE_MESSAGE = 8 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_RELEASE PARTICLE_MESSAGE = 9 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_LATENCY PARTICLE_MESSAGE = 10 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW PARTICLE_MESSAGE = 11 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_FROZEN PARTICLE_MESSAGE = 12 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT PARTICLE_MESSAGE = 13 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION PARTICLE_MESSAGE = 14 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES PARTICLE_MESSAGE = 15 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_TEXT PARTICLE_MESSAGE = 16 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW PARTICLE_MESSAGE = 17 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL PARTICLE_MESSAGE = 18 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT PARTICLE_MESSAGE = 19 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE PARTICLE_MESSAGE = 20 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG PARTICLE_MESSAGE = 21 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT PARTICLE_MESSAGE = 22 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED PARTICLE_MESSAGE = 23 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME PARTICLE_MESSAGE = 24 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE PARTICLE_MESSAGE = 25 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT PARTICLE_MESSAGE = 26 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM PARTICLE_MESSAGE = 27 + PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE PARTICLE_MESSAGE = 28 +) + +// Enum value maps for PARTICLE_MESSAGE. +var ( + PARTICLE_MESSAGE_name = map[int32]string{ + 0: "GAME_PARTICLE_MANAGER_EVENT_CREATE", + 1: "GAME_PARTICLE_MANAGER_EVENT_UPDATE", + 2: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD", + 3: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION", + 4: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK", + 5: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT", + 6: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET", + 7: "GAME_PARTICLE_MANAGER_EVENT_DESTROY", + 8: "GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING", + 9: "GAME_PARTICLE_MANAGER_EVENT_RELEASE", + 10: "GAME_PARTICLE_MANAGER_EVENT_LATENCY", + 11: "GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW", + 12: "GAME_PARTICLE_MANAGER_EVENT_FROZEN", + 13: "GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT", + 14: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION", + 15: "GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES", + 16: "GAME_PARTICLE_MANAGER_EVENT_SET_TEXT", + 17: "GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW", + 18: "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL", + 19: "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT", + 20: "GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE", + 21: "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG", + 22: "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT", + 23: "GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED", + 24: "GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME", + 25: "GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE", + 26: "GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT", + 27: "GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM", + 28: "GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE", + } + PARTICLE_MESSAGE_value = map[string]int32{ + "GAME_PARTICLE_MANAGER_EVENT_CREATE": 0, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE": 1, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD": 2, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION": 3, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK": 4, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT": 5, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET": 6, + "GAME_PARTICLE_MANAGER_EVENT_DESTROY": 7, + "GAME_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING": 8, + "GAME_PARTICLE_MANAGER_EVENT_RELEASE": 9, + "GAME_PARTICLE_MANAGER_EVENT_LATENCY": 10, + "GAME_PARTICLE_MANAGER_EVENT_SHOULD_DRAW": 11, + "GAME_PARTICLE_MANAGER_EVENT_FROZEN": 12, + "GAME_PARTICLE_MANAGER_EVENT_CHANGE_CONTROL_POINT_ATTACHMENT": 13, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENTITY_POSITION": 14, + "GAME_PARTICLE_MANAGER_EVENT_SET_FOW_PROPERTIES": 15, + "GAME_PARTICLE_MANAGER_EVENT_SET_TEXT": 16, + "GAME_PARTICLE_MANAGER_EVENT_SET_SHOULD_CHECK_FOW": 17, + "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_MODEL": 18, + "GAME_PARTICLE_MANAGER_EVENT_SET_CONTROL_POINT_SNAPSHOT": 19, + "GAME_PARTICLE_MANAGER_EVENT_SET_TEXTURE_ATTRIBUTE": 20, + "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_GENERIC_FLAG": 21, + "GAME_PARTICLE_MANAGER_EVENT_SET_SCENE_OBJECT_TINT_AND_DESAT": 22, + "GAME_PARTICLE_MANAGER_EVENT_DESTROY_NAMED": 23, + "GAME_PARTICLE_MANAGER_EVENT_SKIP_TO_TIME": 24, + "GAME_PARTICLE_MANAGER_EVENT_CAN_FREEZE": 25, + "GAME_PARTICLE_MANAGER_EVENT_SET_NAMED_VALUE_CONTEXT": 26, + "GAME_PARTICLE_MANAGER_EVENT_UPDATE_TRANSFORM": 27, + "GAME_PARTICLE_MANAGER_EVENT_FREEZE_TRANSITION_OVERRIDE": 28, + } +) + +func (x PARTICLE_MESSAGE) Enum() *PARTICLE_MESSAGE { + p := new(PARTICLE_MESSAGE) + *p = x + return p +} + +func (x PARTICLE_MESSAGE) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PARTICLE_MESSAGE) Descriptor() protoreflect.EnumDescriptor { + return file_s2_usermessages_proto_enumTypes[3].Descriptor() +} + +func (PARTICLE_MESSAGE) Type() protoreflect.EnumType { + return &file_s2_usermessages_proto_enumTypes[3] +} + +func (x PARTICLE_MESSAGE) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PARTICLE_MESSAGE) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PARTICLE_MESSAGE(num) + return nil +} + +// Deprecated: Use PARTICLE_MESSAGE.Descriptor instead. +func (PARTICLE_MESSAGE) EnumDescriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{3} +} + +type EHapticPulseType int32 + +const ( + EHapticPulseType_VR_HAND_HAPTIC_PULSE_LIGHT EHapticPulseType = 0 + EHapticPulseType_VR_HAND_HAPTIC_PULSE_MEDIUM EHapticPulseType = 1 + EHapticPulseType_VR_HAND_HAPTIC_PULSE_STRONG EHapticPulseType = 2 +) + +// Enum value maps for EHapticPulseType. +var ( + EHapticPulseType_name = map[int32]string{ + 0: "VR_HAND_HAPTIC_PULSE_LIGHT", + 1: "VR_HAND_HAPTIC_PULSE_MEDIUM", + 2: "VR_HAND_HAPTIC_PULSE_STRONG", + } + EHapticPulseType_value = map[string]int32{ + "VR_HAND_HAPTIC_PULSE_LIGHT": 0, + "VR_HAND_HAPTIC_PULSE_MEDIUM": 1, + "VR_HAND_HAPTIC_PULSE_STRONG": 2, + } +) + +func (x EHapticPulseType) Enum() *EHapticPulseType { + p := new(EHapticPulseType) + *p = x + return p +} + +func (x EHapticPulseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EHapticPulseType) Descriptor() protoreflect.EnumDescriptor { + return file_s2_usermessages_proto_enumTypes[4].Descriptor() +} + +func (EHapticPulseType) Type() protoreflect.EnumType { + return &file_s2_usermessages_proto_enumTypes[4] +} + +func (x EHapticPulseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *EHapticPulseType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = EHapticPulseType(num) + return nil +} + +// Deprecated: Use EHapticPulseType.Descriptor instead. +func (EHapticPulseType) EnumDescriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{4} +} + +type CUserMessageAchievementEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Achievement *uint32 `protobuf:"varint,1,opt,name=achievement" json:"achievement,omitempty"` +} + +func (x *CUserMessageAchievementEvent) Reset() { + *x = CUserMessageAchievementEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageAchievementEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageAchievementEvent) ProtoMessage() {} + +func (x *CUserMessageAchievementEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageAchievementEvent.ProtoReflect.Descriptor instead. +func (*CUserMessageAchievementEvent) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{0} +} + +func (x *CUserMessageAchievementEvent) GetAchievement() uint32 { + if x != nil && x.Achievement != nil { + return *x.Achievement + } + return 0 +} + +type CUserMessageCloseCaption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash *uint32 `protobuf:"fixed32,1,opt,name=hash" json:"hash,omitempty"` + Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"` + FromPlayer *bool `protobuf:"varint,3,opt,name=from_player,json=fromPlayer" json:"from_player,omitempty"` + EntIndex *int32 `protobuf:"varint,4,opt,name=ent_index,json=entIndex,def=-1" json:"ent_index,omitempty"` +} + +// Default values for CUserMessageCloseCaption fields. +const ( + Default_CUserMessageCloseCaption_EntIndex = int32(-1) +) + +func (x *CUserMessageCloseCaption) Reset() { + *x = CUserMessageCloseCaption{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCloseCaption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCloseCaption) ProtoMessage() {} + +func (x *CUserMessageCloseCaption) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCloseCaption.ProtoReflect.Descriptor instead. +func (*CUserMessageCloseCaption) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{1} +} + +func (x *CUserMessageCloseCaption) GetHash() uint32 { + if x != nil && x.Hash != nil { + return *x.Hash + } + return 0 +} + +func (x *CUserMessageCloseCaption) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageCloseCaption) GetFromPlayer() bool { + if x != nil && x.FromPlayer != nil { + return *x.FromPlayer + } + return false +} + +func (x *CUserMessageCloseCaption) GetEntIndex() int32 { + if x != nil && x.EntIndex != nil { + return *x.EntIndex + } + return Default_CUserMessageCloseCaption_EntIndex +} + +type CUserMessageCloseCaptionDirect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash *uint32 `protobuf:"fixed32,1,opt,name=hash" json:"hash,omitempty"` + Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"` + FromPlayer *bool `protobuf:"varint,3,opt,name=from_player,json=fromPlayer" json:"from_player,omitempty"` + EntIndex *int32 `protobuf:"varint,4,opt,name=ent_index,json=entIndex,def=-1" json:"ent_index,omitempty"` +} + +// Default values for CUserMessageCloseCaptionDirect fields. +const ( + Default_CUserMessageCloseCaptionDirect_EntIndex = int32(-1) +) + +func (x *CUserMessageCloseCaptionDirect) Reset() { + *x = CUserMessageCloseCaptionDirect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCloseCaptionDirect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCloseCaptionDirect) ProtoMessage() {} + +func (x *CUserMessageCloseCaptionDirect) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCloseCaptionDirect.ProtoReflect.Descriptor instead. +func (*CUserMessageCloseCaptionDirect) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{2} +} + +func (x *CUserMessageCloseCaptionDirect) GetHash() uint32 { + if x != nil && x.Hash != nil { + return *x.Hash + } + return 0 +} + +func (x *CUserMessageCloseCaptionDirect) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageCloseCaptionDirect) GetFromPlayer() bool { + if x != nil && x.FromPlayer != nil { + return *x.FromPlayer + } + return false +} + +func (x *CUserMessageCloseCaptionDirect) GetEntIndex() int32 { + if x != nil && x.EntIndex != nil { + return *x.EntIndex + } + return Default_CUserMessageCloseCaptionDirect_EntIndex +} + +type CUserMessageCloseCaptionPlaceholder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + String_ *string `protobuf:"bytes,1,opt,name=string" json:"string,omitempty"` + Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"` + FromPlayer *bool `protobuf:"varint,3,opt,name=from_player,json=fromPlayer" json:"from_player,omitempty"` + EntIndex *int32 `protobuf:"varint,4,opt,name=ent_index,json=entIndex,def=-1" json:"ent_index,omitempty"` +} + +// Default values for CUserMessageCloseCaptionPlaceholder fields. +const ( + Default_CUserMessageCloseCaptionPlaceholder_EntIndex = int32(-1) +) + +func (x *CUserMessageCloseCaptionPlaceholder) Reset() { + *x = CUserMessageCloseCaptionPlaceholder{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCloseCaptionPlaceholder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCloseCaptionPlaceholder) ProtoMessage() {} + +func (x *CUserMessageCloseCaptionPlaceholder) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCloseCaptionPlaceholder.ProtoReflect.Descriptor instead. +func (*CUserMessageCloseCaptionPlaceholder) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{3} +} + +func (x *CUserMessageCloseCaptionPlaceholder) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +func (x *CUserMessageCloseCaptionPlaceholder) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageCloseCaptionPlaceholder) GetFromPlayer() bool { + if x != nil && x.FromPlayer != nil { + return *x.FromPlayer + } + return false +} + +func (x *CUserMessageCloseCaptionPlaceholder) GetEntIndex() int32 { + if x != nil && x.EntIndex != nil { + return *x.EntIndex + } + return Default_CUserMessageCloseCaptionPlaceholder_EntIndex +} + +type CUserMessageCurrentTimescale struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Current *float32 `protobuf:"fixed32,1,opt,name=current" json:"current,omitempty"` +} + +func (x *CUserMessageCurrentTimescale) Reset() { + *x = CUserMessageCurrentTimescale{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCurrentTimescale) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCurrentTimescale) ProtoMessage() {} + +func (x *CUserMessageCurrentTimescale) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCurrentTimescale.ProtoReflect.Descriptor instead. +func (*CUserMessageCurrentTimescale) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{4} +} + +func (x *CUserMessageCurrentTimescale) GetCurrent() float32 { + if x != nil && x.Current != nil { + return *x.Current + } + return 0 +} + +type CUserMessageDesiredTimescale struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Desired *float32 `protobuf:"fixed32,1,opt,name=desired" json:"desired,omitempty"` + Acceleration *float32 `protobuf:"fixed32,2,opt,name=acceleration" json:"acceleration,omitempty"` + Minblendrate *float32 `protobuf:"fixed32,3,opt,name=minblendrate" json:"minblendrate,omitempty"` + Blenddeltamultiplier *float32 `protobuf:"fixed32,4,opt,name=blenddeltamultiplier" json:"blenddeltamultiplier,omitempty"` +} + +func (x *CUserMessageDesiredTimescale) Reset() { + *x = CUserMessageDesiredTimescale{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageDesiredTimescale) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageDesiredTimescale) ProtoMessage() {} + +func (x *CUserMessageDesiredTimescale) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageDesiredTimescale.ProtoReflect.Descriptor instead. +func (*CUserMessageDesiredTimescale) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{5} +} + +func (x *CUserMessageDesiredTimescale) GetDesired() float32 { + if x != nil && x.Desired != nil { + return *x.Desired + } + return 0 +} + +func (x *CUserMessageDesiredTimescale) GetAcceleration() float32 { + if x != nil && x.Acceleration != nil { + return *x.Acceleration + } + return 0 +} + +func (x *CUserMessageDesiredTimescale) GetMinblendrate() float32 { + if x != nil && x.Minblendrate != nil { + return *x.Minblendrate + } + return 0 +} + +func (x *CUserMessageDesiredTimescale) GetBlenddeltamultiplier() float32 { + if x != nil && x.Blenddeltamultiplier != nil { + return *x.Blenddeltamultiplier + } + return 0 +} + +type CUserMessageFade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Duration *uint32 `protobuf:"varint,1,opt,name=duration" json:"duration,omitempty"` + HoldTime *uint32 `protobuf:"varint,2,opt,name=hold_time,json=holdTime" json:"hold_time,omitempty"` + Flags *uint32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` + Color *uint32 `protobuf:"fixed32,4,opt,name=color" json:"color,omitempty"` +} + +func (x *CUserMessageFade) Reset() { + *x = CUserMessageFade{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageFade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageFade) ProtoMessage() {} + +func (x *CUserMessageFade) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageFade.ProtoReflect.Descriptor instead. +func (*CUserMessageFade) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{6} +} + +func (x *CUserMessageFade) GetDuration() uint32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageFade) GetHoldTime() uint32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime + } + return 0 +} + +func (x *CUserMessageFade) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +func (x *CUserMessageFade) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +type CUserMessageShake struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command *uint32 `protobuf:"varint,1,opt,name=command" json:"command,omitempty"` + Amplitude *float32 `protobuf:"fixed32,2,opt,name=amplitude" json:"amplitude,omitempty"` + Frequency *float32 `protobuf:"fixed32,3,opt,name=frequency" json:"frequency,omitempty"` + Duration *float32 `protobuf:"fixed32,4,opt,name=duration" json:"duration,omitempty"` +} + +func (x *CUserMessageShake) Reset() { + *x = CUserMessageShake{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageShake) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageShake) ProtoMessage() {} + +func (x *CUserMessageShake) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageShake.ProtoReflect.Descriptor instead. +func (*CUserMessageShake) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{7} +} + +func (x *CUserMessageShake) GetCommand() uint32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *CUserMessageShake) GetAmplitude() float32 { + if x != nil && x.Amplitude != nil { + return *x.Amplitude + } + return 0 +} + +func (x *CUserMessageShake) GetFrequency() float32 { + if x != nil && x.Frequency != nil { + return *x.Frequency + } + return 0 +} + +func (x *CUserMessageShake) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +type CUserMessageShakeDir struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Shake *CUserMessageShake `protobuf:"bytes,1,opt,name=shake" json:"shake,omitempty"` + Direction *CMsgVector `protobuf:"bytes,2,opt,name=direction" json:"direction,omitempty"` +} + +func (x *CUserMessageShakeDir) Reset() { + *x = CUserMessageShakeDir{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageShakeDir) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageShakeDir) ProtoMessage() {} + +func (x *CUserMessageShakeDir) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageShakeDir.ProtoReflect.Descriptor instead. +func (*CUserMessageShakeDir) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{8} +} + +func (x *CUserMessageShakeDir) GetShake() *CUserMessageShake { + if x != nil { + return x.Shake + } + return nil +} + +func (x *CUserMessageShakeDir) GetDirection() *CMsgVector { + if x != nil { + return x.Direction + } + return nil +} + +type CUserMessageScreenTilt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command *uint32 `protobuf:"varint,1,opt,name=command" json:"command,omitempty"` + EaseInOut *bool `protobuf:"varint,2,opt,name=ease_in_out,json=easeInOut" json:"ease_in_out,omitempty"` + Angle *CMsgVector `protobuf:"bytes,3,opt,name=angle" json:"angle,omitempty"` + Duration *float32 `protobuf:"fixed32,4,opt,name=duration" json:"duration,omitempty"` + Time *float32 `protobuf:"fixed32,5,opt,name=time" json:"time,omitempty"` +} + +func (x *CUserMessageScreenTilt) Reset() { + *x = CUserMessageScreenTilt{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageScreenTilt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageScreenTilt) ProtoMessage() {} + +func (x *CUserMessageScreenTilt) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageScreenTilt.ProtoReflect.Descriptor instead. +func (*CUserMessageScreenTilt) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{9} +} + +func (x *CUserMessageScreenTilt) GetCommand() uint32 { + if x != nil && x.Command != nil { + return *x.Command + } + return 0 +} + +func (x *CUserMessageScreenTilt) GetEaseInOut() bool { + if x != nil && x.EaseInOut != nil { + return *x.EaseInOut + } + return false +} + +func (x *CUserMessageScreenTilt) GetAngle() *CMsgVector { + if x != nil { + return x.Angle + } + return nil +} + +func (x *CUserMessageScreenTilt) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageScreenTilt) GetTime() float32 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +type CUserMessageSayText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Playerindex *int32 `protobuf:"varint,1,opt,name=playerindex,def=-1" json:"playerindex,omitempty"` + Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` + Chat *bool `protobuf:"varint,3,opt,name=chat" json:"chat,omitempty"` +} + +// Default values for CUserMessageSayText fields. +const ( + Default_CUserMessageSayText_Playerindex = int32(-1) +) + +func (x *CUserMessageSayText) Reset() { + *x = CUserMessageSayText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageSayText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageSayText) ProtoMessage() {} + +func (x *CUserMessageSayText) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageSayText.ProtoReflect.Descriptor instead. +func (*CUserMessageSayText) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{10} +} + +func (x *CUserMessageSayText) GetPlayerindex() int32 { + if x != nil && x.Playerindex != nil { + return *x.Playerindex + } + return Default_CUserMessageSayText_Playerindex +} + +func (x *CUserMessageSayText) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +func (x *CUserMessageSayText) GetChat() bool { + if x != nil && x.Chat != nil { + return *x.Chat + } + return false +} + +type CUserMessageSayText2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entityindex *int32 `protobuf:"varint,1,opt,name=entityindex,def=-1" json:"entityindex,omitempty"` + Chat *bool `protobuf:"varint,2,opt,name=chat" json:"chat,omitempty"` + Messagename *string `protobuf:"bytes,3,opt,name=messagename" json:"messagename,omitempty"` + Param1 *string `protobuf:"bytes,4,opt,name=param1" json:"param1,omitempty"` + Param2 *string `protobuf:"bytes,5,opt,name=param2" json:"param2,omitempty"` + Param3 *string `protobuf:"bytes,6,opt,name=param3" json:"param3,omitempty"` + Param4 *string `protobuf:"bytes,7,opt,name=param4" json:"param4,omitempty"` +} + +// Default values for CUserMessageSayText2 fields. +const ( + Default_CUserMessageSayText2_Entityindex = int32(-1) +) + +func (x *CUserMessageSayText2) Reset() { + *x = CUserMessageSayText2{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageSayText2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageSayText2) ProtoMessage() {} + +func (x *CUserMessageSayText2) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageSayText2.ProtoReflect.Descriptor instead. +func (*CUserMessageSayText2) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{11} +} + +func (x *CUserMessageSayText2) GetEntityindex() int32 { + if x != nil && x.Entityindex != nil { + return *x.Entityindex + } + return Default_CUserMessageSayText2_Entityindex +} + +func (x *CUserMessageSayText2) GetChat() bool { + if x != nil && x.Chat != nil { + return *x.Chat + } + return false +} + +func (x *CUserMessageSayText2) GetMessagename() string { + if x != nil && x.Messagename != nil { + return *x.Messagename + } + return "" +} + +func (x *CUserMessageSayText2) GetParam1() string { + if x != nil && x.Param1 != nil { + return *x.Param1 + } + return "" +} + +func (x *CUserMessageSayText2) GetParam2() string { + if x != nil && x.Param2 != nil { + return *x.Param2 + } + return "" +} + +func (x *CUserMessageSayText2) GetParam3() string { + if x != nil && x.Param3 != nil { + return *x.Param3 + } + return "" +} + +func (x *CUserMessageSayText2) GetParam4() string { + if x != nil && x.Param4 != nil { + return *x.Param4 + } + return "" +} + +type CUserMessageHudMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channel *uint32 `protobuf:"varint,1,opt,name=channel" json:"channel,omitempty"` + X *float32 `protobuf:"fixed32,2,opt,name=x" json:"x,omitempty"` + Y *float32 `protobuf:"fixed32,3,opt,name=y" json:"y,omitempty"` + Color1 *uint32 `protobuf:"fixed32,4,opt,name=color1" json:"color1,omitempty"` + Color2 *uint32 `protobuf:"fixed32,5,opt,name=color2" json:"color2,omitempty"` + Effect *uint32 `protobuf:"varint,6,opt,name=effect" json:"effect,omitempty"` + Message *string `protobuf:"bytes,11,opt,name=message" json:"message,omitempty"` +} + +func (x *CUserMessageHudMsg) Reset() { + *x = CUserMessageHudMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageHudMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageHudMsg) ProtoMessage() {} + +func (x *CUserMessageHudMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageHudMsg.ProtoReflect.Descriptor instead. +func (*CUserMessageHudMsg) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{12} +} + +func (x *CUserMessageHudMsg) GetChannel() uint32 { + if x != nil && x.Channel != nil { + return *x.Channel + } + return 0 +} + +func (x *CUserMessageHudMsg) GetX() float32 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *CUserMessageHudMsg) GetY() float32 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +func (x *CUserMessageHudMsg) GetColor1() uint32 { + if x != nil && x.Color1 != nil { + return *x.Color1 + } + return 0 +} + +func (x *CUserMessageHudMsg) GetColor2() uint32 { + if x != nil && x.Color2 != nil { + return *x.Color2 + } + return 0 +} + +func (x *CUserMessageHudMsg) GetEffect() uint32 { + if x != nil && x.Effect != nil { + return *x.Effect + } + return 0 +} + +func (x *CUserMessageHudMsg) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type CUserMessageHudText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` +} + +func (x *CUserMessageHudText) Reset() { + *x = CUserMessageHudText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageHudText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageHudText) ProtoMessage() {} + +func (x *CUserMessageHudText) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageHudText.ProtoReflect.Descriptor instead. +func (*CUserMessageHudText) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{13} +} + +func (x *CUserMessageHudText) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type CUserMessageTextMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dest *uint32 `protobuf:"varint,1,opt,name=dest" json:"dest,omitempty"` + Param []string `protobuf:"bytes,2,rep,name=param" json:"param,omitempty"` +} + +func (x *CUserMessageTextMsg) Reset() { + *x = CUserMessageTextMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageTextMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageTextMsg) ProtoMessage() {} + +func (x *CUserMessageTextMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageTextMsg.ProtoReflect.Descriptor instead. +func (*CUserMessageTextMsg) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{14} +} + +func (x *CUserMessageTextMsg) GetDest() uint32 { + if x != nil && x.Dest != nil { + return *x.Dest + } + return 0 +} + +func (x *CUserMessageTextMsg) GetParam() []string { + if x != nil { + return x.Param + } + return nil +} + +type CUserMessageGameTitle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CUserMessageGameTitle) Reset() { + *x = CUserMessageGameTitle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageGameTitle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageGameTitle) ProtoMessage() {} + +func (x *CUserMessageGameTitle) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageGameTitle.ProtoReflect.Descriptor instead. +func (*CUserMessageGameTitle) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{15} +} + +type CUserMessageResetHUD struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CUserMessageResetHUD) Reset() { + *x = CUserMessageResetHUD{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageResetHUD) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageResetHUD) ProtoMessage() {} + +func (x *CUserMessageResetHUD) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageResetHUD.ProtoReflect.Descriptor instead. +func (*CUserMessageResetHUD) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{16} +} + +type CUserMessageSendAudio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Soundname *string `protobuf:"bytes,1,opt,name=soundname" json:"soundname,omitempty"` + Stop *bool `protobuf:"varint,2,opt,name=stop" json:"stop,omitempty"` +} + +func (x *CUserMessageSendAudio) Reset() { + *x = CUserMessageSendAudio{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageSendAudio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageSendAudio) ProtoMessage() {} + +func (x *CUserMessageSendAudio) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageSendAudio.ProtoReflect.Descriptor instead. +func (*CUserMessageSendAudio) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{17} +} + +func (x *CUserMessageSendAudio) GetSoundname() string { + if x != nil && x.Soundname != nil { + return *x.Soundname + } + return "" +} + +func (x *CUserMessageSendAudio) GetStop() bool { + if x != nil && x.Stop != nil { + return *x.Stop + } + return false +} + +type CUserMessageAudioParameter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParameterType *uint32 `protobuf:"varint,1,opt,name=parameter_type,json=parameterType" json:"parameter_type,omitempty"` + NameHashCode *uint32 `protobuf:"varint,2,opt,name=name_hash_code,json=nameHashCode" json:"name_hash_code,omitempty"` + Value *float32 `protobuf:"fixed32,3,opt,name=value" json:"value,omitempty"` + IntValue *uint32 `protobuf:"varint,4,opt,name=int_value,json=intValue" json:"int_value,omitempty"` +} + +func (x *CUserMessageAudioParameter) Reset() { + *x = CUserMessageAudioParameter{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageAudioParameter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageAudioParameter) ProtoMessage() {} + +func (x *CUserMessageAudioParameter) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageAudioParameter.ProtoReflect.Descriptor instead. +func (*CUserMessageAudioParameter) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{18} +} + +func (x *CUserMessageAudioParameter) GetParameterType() uint32 { + if x != nil && x.ParameterType != nil { + return *x.ParameterType + } + return 0 +} + +func (x *CUserMessageAudioParameter) GetNameHashCode() uint32 { + if x != nil && x.NameHashCode != nil { + return *x.NameHashCode + } + return 0 +} + +func (x *CUserMessageAudioParameter) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *CUserMessageAudioParameter) GetIntValue() uint32 { + if x != nil && x.IntValue != nil { + return *x.IntValue + } + return 0 +} + +type CUserMessageVoiceMask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GamerulesMasks []uint32 `protobuf:"varint,1,rep,name=gamerules_masks,json=gamerulesMasks" json:"gamerules_masks,omitempty"` + BanMasks []uint32 `protobuf:"varint,2,rep,name=ban_masks,json=banMasks" json:"ban_masks,omitempty"` + ModEnable *bool `protobuf:"varint,3,opt,name=mod_enable,json=modEnable" json:"mod_enable,omitempty"` +} + +func (x *CUserMessageVoiceMask) Reset() { + *x = CUserMessageVoiceMask{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageVoiceMask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageVoiceMask) ProtoMessage() {} + +func (x *CUserMessageVoiceMask) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageVoiceMask.ProtoReflect.Descriptor instead. +func (*CUserMessageVoiceMask) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{19} +} + +func (x *CUserMessageVoiceMask) GetGamerulesMasks() []uint32 { + if x != nil { + return x.GamerulesMasks + } + return nil +} + +func (x *CUserMessageVoiceMask) GetBanMasks() []uint32 { + if x != nil { + return x.BanMasks + } + return nil +} + +func (x *CUserMessageVoiceMask) GetModEnable() bool { + if x != nil && x.ModEnable != nil { + return *x.ModEnable + } + return false +} + +type CUserMessageRequestState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CUserMessageRequestState) Reset() { + *x = CUserMessageRequestState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestState) ProtoMessage() {} + +func (x *CUserMessageRequestState) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestState.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestState) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{20} +} + +type CUserMessageRumble struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Data *int32 `protobuf:"varint,2,opt,name=data" json:"data,omitempty"` + Flags *int32 `protobuf:"varint,3,opt,name=flags" json:"flags,omitempty"` +} + +func (x *CUserMessageRumble) Reset() { + *x = CUserMessageRumble{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRumble) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRumble) ProtoMessage() {} + +func (x *CUserMessageRumble) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRumble.ProtoReflect.Descriptor instead. +func (*CUserMessageRumble) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{21} +} + +func (x *CUserMessageRumble) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMessageRumble) GetData() int32 { + if x != nil && x.Data != nil { + return *x.Data + } + return 0 +} + +func (x *CUserMessageRumble) GetFlags() int32 { + if x != nil && x.Flags != nil { + return *x.Flags + } + return 0 +} + +type CUserMessageSayTextChannel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *int32 `protobuf:"varint,1,opt,name=player" json:"player,omitempty"` + Channel *int32 `protobuf:"varint,2,opt,name=channel" json:"channel,omitempty"` + Text *string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"` +} + +func (x *CUserMessageSayTextChannel) Reset() { + *x = CUserMessageSayTextChannel{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageSayTextChannel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageSayTextChannel) ProtoMessage() {} + +func (x *CUserMessageSayTextChannel) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageSayTextChannel.ProtoReflect.Descriptor instead. +func (*CUserMessageSayTextChannel) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{22} +} + +func (x *CUserMessageSayTextChannel) GetPlayer() int32 { + if x != nil && x.Player != nil { + return *x.Player + } + return 0 +} + +func (x *CUserMessageSayTextChannel) GetChannel() int32 { + if x != nil && x.Channel != nil { + return *x.Channel + } + return 0 +} + +func (x *CUserMessageSayTextChannel) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CUserMessageColoredText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Color *uint32 `protobuf:"varint,1,opt,name=color" json:"color,omitempty"` + Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` + Reset_ *bool `protobuf:"varint,3,opt,name=reset" json:"reset,omitempty"` + ContextPlayerSlot *int32 `protobuf:"varint,4,opt,name=context_player_slot,json=contextPlayerSlot,def=-1" json:"context_player_slot,omitempty"` + ContextValue *int32 `protobuf:"varint,5,opt,name=context_value,json=contextValue" json:"context_value,omitempty"` + ContextTeamId *int32 `protobuf:"varint,6,opt,name=context_team_id,json=contextTeamId" json:"context_team_id,omitempty"` +} + +// Default values for CUserMessageColoredText fields. +const ( + Default_CUserMessageColoredText_ContextPlayerSlot = int32(-1) +) + +func (x *CUserMessageColoredText) Reset() { + *x = CUserMessageColoredText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageColoredText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageColoredText) ProtoMessage() {} + +func (x *CUserMessageColoredText) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageColoredText.ProtoReflect.Descriptor instead. +func (*CUserMessageColoredText) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{23} +} + +func (x *CUserMessageColoredText) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CUserMessageColoredText) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +func (x *CUserMessageColoredText) GetReset_() bool { + if x != nil && x.Reset_ != nil { + return *x.Reset_ + } + return false +} + +func (x *CUserMessageColoredText) GetContextPlayerSlot() int32 { + if x != nil && x.ContextPlayerSlot != nil { + return *x.ContextPlayerSlot + } + return Default_CUserMessageColoredText_ContextPlayerSlot +} + +func (x *CUserMessageColoredText) GetContextValue() int32 { + if x != nil && x.ContextValue != nil { + return *x.ContextValue + } + return 0 +} + +func (x *CUserMessageColoredText) GetContextTeamId() int32 { + if x != nil && x.ContextTeamId != nil { + return *x.ContextTeamId + } + return 0 +} + +type CUserMessageItemPickup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Itemname *string `protobuf:"bytes,1,opt,name=itemname" json:"itemname,omitempty"` +} + +func (x *CUserMessageItemPickup) Reset() { + *x = CUserMessageItemPickup{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageItemPickup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageItemPickup) ProtoMessage() {} + +func (x *CUserMessageItemPickup) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageItemPickup.ProtoReflect.Descriptor instead. +func (*CUserMessageItemPickup) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{24} +} + +func (x *CUserMessageItemPickup) GetItemname() string { + if x != nil && x.Itemname != nil { + return *x.Itemname + } + return "" +} + +type CUserMessageAmmoDenied struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AmmoId *uint32 `protobuf:"varint,1,opt,name=ammo_id,json=ammoId" json:"ammo_id,omitempty"` +} + +func (x *CUserMessageAmmoDenied) Reset() { + *x = CUserMessageAmmoDenied{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageAmmoDenied) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageAmmoDenied) ProtoMessage() {} + +func (x *CUserMessageAmmoDenied) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageAmmoDenied.ProtoReflect.Descriptor instead. +func (*CUserMessageAmmoDenied) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{25} +} + +func (x *CUserMessageAmmoDenied) GetAmmoId() uint32 { + if x != nil && x.AmmoId != nil { + return *x.AmmoId + } + return 0 +} + +type CUserMessageShowMenu struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Validslots *uint32 `protobuf:"varint,1,opt,name=validslots" json:"validslots,omitempty"` + Displaytime *uint32 `protobuf:"varint,2,opt,name=displaytime" json:"displaytime,omitempty"` + Needmore *bool `protobuf:"varint,3,opt,name=needmore" json:"needmore,omitempty"` + Menustring *string `protobuf:"bytes,4,opt,name=menustring" json:"menustring,omitempty"` +} + +func (x *CUserMessageShowMenu) Reset() { + *x = CUserMessageShowMenu{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageShowMenu) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageShowMenu) ProtoMessage() {} + +func (x *CUserMessageShowMenu) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageShowMenu.ProtoReflect.Descriptor instead. +func (*CUserMessageShowMenu) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{26} +} + +func (x *CUserMessageShowMenu) GetValidslots() uint32 { + if x != nil && x.Validslots != nil { + return *x.Validslots + } + return 0 +} + +func (x *CUserMessageShowMenu) GetDisplaytime() uint32 { + if x != nil && x.Displaytime != nil { + return *x.Displaytime + } + return 0 +} + +func (x *CUserMessageShowMenu) GetNeedmore() bool { + if x != nil && x.Needmore != nil { + return *x.Needmore + } + return false +} + +func (x *CUserMessageShowMenu) GetMenustring() string { + if x != nil && x.Menustring != nil { + return *x.Menustring + } + return "" +} + +type CUserMessageCreditsMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rolltype *ERollType `protobuf:"varint,1,opt,name=rolltype,enum=com.github.markus_wa.demoinfocs_golang.s2.ERollType,def=-1" json:"rolltype,omitempty"` + LogoLength *float32 `protobuf:"fixed32,2,opt,name=logo_length,json=logoLength" json:"logo_length,omitempty"` +} + +// Default values for CUserMessageCreditsMsg fields. +const ( + Default_CUserMessageCreditsMsg_Rolltype = ERollType_ROLL_NONE +) + +func (x *CUserMessageCreditsMsg) Reset() { + *x = CUserMessageCreditsMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCreditsMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCreditsMsg) ProtoMessage() {} + +func (x *CUserMessageCreditsMsg) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCreditsMsg.ProtoReflect.Descriptor instead. +func (*CUserMessageCreditsMsg) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{27} +} + +func (x *CUserMessageCreditsMsg) GetRolltype() ERollType { + if x != nil && x.Rolltype != nil { + return *x.Rolltype + } + return Default_CUserMessageCreditsMsg_Rolltype +} + +func (x *CUserMessageCreditsMsg) GetLogoLength() float32 { + if x != nil && x.LogoLength != nil { + return *x.LogoLength + } + return 0 +} + +type CEntityMessagePlayJingle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityMsg *CEntityMsg `protobuf:"bytes,1,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +func (x *CEntityMessagePlayJingle) Reset() { + *x = CEntityMessagePlayJingle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessagePlayJingle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessagePlayJingle) ProtoMessage() {} + +func (x *CEntityMessagePlayJingle) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessagePlayJingle.ProtoReflect.Descriptor instead. +func (*CEntityMessagePlayJingle) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{28} +} + +func (x *CEntityMessagePlayJingle) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CEntityMessageScreenOverlay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartEffect *bool `protobuf:"varint,1,opt,name=start_effect,json=startEffect" json:"start_effect,omitempty"` + EntityMsg *CEntityMsg `protobuf:"bytes,2,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +func (x *CEntityMessageScreenOverlay) Reset() { + *x = CEntityMessageScreenOverlay{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessageScreenOverlay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessageScreenOverlay) ProtoMessage() {} + +func (x *CEntityMessageScreenOverlay) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessageScreenOverlay.ProtoReflect.Descriptor instead. +func (*CEntityMessageScreenOverlay) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{29} +} + +func (x *CEntityMessageScreenOverlay) GetStartEffect() bool { + if x != nil && x.StartEffect != nil { + return *x.StartEffect + } + return false +} + +func (x *CEntityMessageScreenOverlay) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CEntityMessageRemoveAllDecals struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RemoveDecals *bool `protobuf:"varint,1,opt,name=remove_decals,json=removeDecals" json:"remove_decals,omitempty"` + EntityMsg *CEntityMsg `protobuf:"bytes,2,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +func (x *CEntityMessageRemoveAllDecals) Reset() { + *x = CEntityMessageRemoveAllDecals{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessageRemoveAllDecals) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessageRemoveAllDecals) ProtoMessage() {} + +func (x *CEntityMessageRemoveAllDecals) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessageRemoveAllDecals.ProtoReflect.Descriptor instead. +func (*CEntityMessageRemoveAllDecals) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{30} +} + +func (x *CEntityMessageRemoveAllDecals) GetRemoveDecals() bool { + if x != nil && x.RemoveDecals != nil { + return *x.RemoveDecals + } + return false +} + +func (x *CEntityMessageRemoveAllDecals) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CEntityMessagePropagateForce struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Impulse *CMsgVector `protobuf:"bytes,1,opt,name=impulse" json:"impulse,omitempty"` + EntityMsg *CEntityMsg `protobuf:"bytes,2,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +func (x *CEntityMessagePropagateForce) Reset() { + *x = CEntityMessagePropagateForce{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessagePropagateForce) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessagePropagateForce) ProtoMessage() {} + +func (x *CEntityMessagePropagateForce) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessagePropagateForce.ProtoReflect.Descriptor instead. +func (*CEntityMessagePropagateForce) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{31} +} + +func (x *CEntityMessagePropagateForce) GetImpulse() *CMsgVector { + if x != nil { + return x.Impulse + } + return nil +} + +func (x *CEntityMessagePropagateForce) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CEntityMessageDoSpark struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin *CMsgVector `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"` + Entityindex *int32 `protobuf:"varint,2,opt,name=entityindex,def=-1" json:"entityindex,omitempty"` + Radius *float32 `protobuf:"fixed32,3,opt,name=radius" json:"radius,omitempty"` + Color *uint32 `protobuf:"fixed32,4,opt,name=color" json:"color,omitempty"` + Beams *uint32 `protobuf:"varint,5,opt,name=beams" json:"beams,omitempty"` + Thick *float32 `protobuf:"fixed32,6,opt,name=thick" json:"thick,omitempty"` + Duration *float32 `protobuf:"fixed32,7,opt,name=duration" json:"duration,omitempty"` + EntityMsg *CEntityMsg `protobuf:"bytes,8,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +// Default values for CEntityMessageDoSpark fields. +const ( + Default_CEntityMessageDoSpark_Entityindex = int32(-1) +) + +func (x *CEntityMessageDoSpark) Reset() { + *x = CEntityMessageDoSpark{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessageDoSpark) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessageDoSpark) ProtoMessage() {} + +func (x *CEntityMessageDoSpark) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessageDoSpark.ProtoReflect.Descriptor instead. +func (*CEntityMessageDoSpark) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{32} +} + +func (x *CEntityMessageDoSpark) GetOrigin() *CMsgVector { + if x != nil { + return x.Origin + } + return nil +} + +func (x *CEntityMessageDoSpark) GetEntityindex() int32 { + if x != nil && x.Entityindex != nil { + return *x.Entityindex + } + return Default_CEntityMessageDoSpark_Entityindex +} + +func (x *CEntityMessageDoSpark) GetRadius() float32 { + if x != nil && x.Radius != nil { + return *x.Radius + } + return 0 +} + +func (x *CEntityMessageDoSpark) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *CEntityMessageDoSpark) GetBeams() uint32 { + if x != nil && x.Beams != nil { + return *x.Beams + } + return 0 +} + +func (x *CEntityMessageDoSpark) GetThick() float32 { + if x != nil && x.Thick != nil { + return *x.Thick + } + return 0 +} + +func (x *CEntityMessageDoSpark) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CEntityMessageDoSpark) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CEntityMessageFixAngle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Relative *bool `protobuf:"varint,1,opt,name=relative" json:"relative,omitempty"` + Angle *CMsgQAngle `protobuf:"bytes,2,opt,name=angle" json:"angle,omitempty"` + EntityMsg *CEntityMsg `protobuf:"bytes,3,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"` +} + +func (x *CEntityMessageFixAngle) Reset() { + *x = CEntityMessageFixAngle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CEntityMessageFixAngle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CEntityMessageFixAngle) ProtoMessage() {} + +func (x *CEntityMessageFixAngle) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CEntityMessageFixAngle.ProtoReflect.Descriptor instead. +func (*CEntityMessageFixAngle) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{33} +} + +func (x *CEntityMessageFixAngle) GetRelative() bool { + if x != nil && x.Relative != nil { + return *x.Relative + } + return false +} + +func (x *CEntityMessageFixAngle) GetAngle() *CMsgQAngle { + if x != nil { + return x.Angle + } + return nil +} + +func (x *CEntityMessageFixAngle) GetEntityMsg() *CEntityMsg { + if x != nil { + return x.EntityMsg + } + return nil +} + +type CUserMessageCameraTransition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CameraType *uint32 `protobuf:"varint,1,opt,name=camera_type,json=cameraType" json:"camera_type,omitempty"` + Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"` + ParamsDataDriven *CUserMessageCameraTransition_Transition_DataDriven `protobuf:"bytes,3,opt,name=params_data_driven,json=paramsDataDriven" json:"params_data_driven,omitempty"` +} + +func (x *CUserMessageCameraTransition) Reset() { + *x = CUserMessageCameraTransition{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCameraTransition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCameraTransition) ProtoMessage() {} + +func (x *CUserMessageCameraTransition) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCameraTransition.ProtoReflect.Descriptor instead. +func (*CUserMessageCameraTransition) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{34} +} + +func (x *CUserMessageCameraTransition) GetCameraType() uint32 { + if x != nil && x.CameraType != nil { + return *x.CameraType + } + return 0 +} + +func (x *CUserMessageCameraTransition) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +func (x *CUserMessageCameraTransition) GetParamsDataDriven() *CUserMessageCameraTransition_Transition_DataDriven { + if x != nil { + return x.ParamsDataDriven + } + return nil +} + +type CUserMsg_ParticleManager struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + Type *PARTICLE_MESSAGE `protobuf:"varint,1,req,name=type,enum=com.github.markus_wa.demoinfocs_golang.s2.PARTICLE_MESSAGE,def=0" json:"type,omitempty"` + Index *uint32 `protobuf:"varint,2,req,name=index" json:"index,omitempty"` + ReleaseParticleIndex *CUserMsg_ParticleManager_ReleaseParticleIndex `protobuf:"bytes,3,opt,name=release_particle_index,json=releaseParticleIndex" json:"release_particle_index,omitempty"` + CreateParticle *CUserMsg_ParticleManager_CreateParticle `protobuf:"bytes,4,opt,name=create_particle,json=createParticle" json:"create_particle,omitempty"` + DestroyParticle *CUserMsg_ParticleManager_DestroyParticle `protobuf:"bytes,5,opt,name=destroy_particle,json=destroyParticle" json:"destroy_particle,omitempty"` + DestroyParticleInvolving *CUserMsg_ParticleManager_DestroyParticleInvolving `protobuf:"bytes,6,opt,name=destroy_particle_involving,json=destroyParticleInvolving" json:"destroy_particle_involving,omitempty"` + UpdateParticle *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE `protobuf:"bytes,7,opt,name=update_particle,json=updateParticle" json:"update_particle,omitempty"` + UpdateParticleFwd *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE `protobuf:"bytes,8,opt,name=update_particle_fwd,json=updateParticleFwd" json:"update_particle_fwd,omitempty"` + UpdateParticleOrient *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE `protobuf:"bytes,9,opt,name=update_particle_orient,json=updateParticleOrient" json:"update_particle_orient,omitempty"` + UpdateParticleFallback *CUserMsg_ParticleManager_UpdateParticleFallback `protobuf:"bytes,10,opt,name=update_particle_fallback,json=updateParticleFallback" json:"update_particle_fallback,omitempty"` + UpdateParticleOffset *CUserMsg_ParticleManager_UpdateParticleOffset `protobuf:"bytes,11,opt,name=update_particle_offset,json=updateParticleOffset" json:"update_particle_offset,omitempty"` + UpdateParticleEnt *CUserMsg_ParticleManager_UpdateParticleEnt `protobuf:"bytes,12,opt,name=update_particle_ent,json=updateParticleEnt" json:"update_particle_ent,omitempty"` + UpdateParticleShouldDraw *CUserMsg_ParticleManager_UpdateParticleShouldDraw `protobuf:"bytes,14,opt,name=update_particle_should_draw,json=updateParticleShouldDraw" json:"update_particle_should_draw,omitempty"` + UpdateParticleSetFrozen *CUserMsg_ParticleManager_UpdateParticleSetFrozen `protobuf:"bytes,15,opt,name=update_particle_set_frozen,json=updateParticleSetFrozen" json:"update_particle_set_frozen,omitempty"` + ChangeControlPointAttachment *CUserMsg_ParticleManager_ChangeControlPointAttachment `protobuf:"bytes,16,opt,name=change_control_point_attachment,json=changeControlPointAttachment" json:"change_control_point_attachment,omitempty"` + UpdateEntityPosition *CUserMsg_ParticleManager_UpdateEntityPosition `protobuf:"bytes,17,opt,name=update_entity_position,json=updateEntityPosition" json:"update_entity_position,omitempty"` + SetParticleFowProperties *CUserMsg_ParticleManager_SetParticleFoWProperties `protobuf:"bytes,18,opt,name=set_particle_fow_properties,json=setParticleFowProperties" json:"set_particle_fow_properties,omitempty"` + SetParticleText *CUserMsg_ParticleManager_SetParticleText `protobuf:"bytes,19,opt,name=set_particle_text,json=setParticleText" json:"set_particle_text,omitempty"` + SetParticleShouldCheckFow *CUserMsg_ParticleManager_SetParticleShouldCheckFoW `protobuf:"bytes,20,opt,name=set_particle_should_check_fow,json=setParticleShouldCheckFow" json:"set_particle_should_check_fow,omitempty"` + SetControlPointModel *CUserMsg_ParticleManager_SetControlPointModel `protobuf:"bytes,21,opt,name=set_control_point_model,json=setControlPointModel" json:"set_control_point_model,omitempty"` + SetControlPointSnapshot *CUserMsg_ParticleManager_SetControlPointSnapshot `protobuf:"bytes,22,opt,name=set_control_point_snapshot,json=setControlPointSnapshot" json:"set_control_point_snapshot,omitempty"` + SetTextureAttribute *CUserMsg_ParticleManager_SetTextureAttribute `protobuf:"bytes,23,opt,name=set_texture_attribute,json=setTextureAttribute" json:"set_texture_attribute,omitempty"` + SetSceneObjectGenericFlag *CUserMsg_ParticleManager_SetSceneObjectGenericFlag `protobuf:"bytes,24,opt,name=set_scene_object_generic_flag,json=setSceneObjectGenericFlag" json:"set_scene_object_generic_flag,omitempty"` + SetSceneObjectTintAndDesat *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat `protobuf:"bytes,25,opt,name=set_scene_object_tint_and_desat,json=setSceneObjectTintAndDesat" json:"set_scene_object_tint_and_desat,omitempty"` + DestroyParticleNamed *CUserMsg_ParticleManager_DestroyParticleNamed `protobuf:"bytes,26,opt,name=destroy_particle_named,json=destroyParticleNamed" json:"destroy_particle_named,omitempty"` + ParticleSkipToTime *CUserMsg_ParticleManager_ParticleSkipToTime `protobuf:"bytes,27,opt,name=particle_skip_to_time,json=particleSkipToTime" json:"particle_skip_to_time,omitempty"` + ParticleCanFreeze *CUserMsg_ParticleManager_ParticleCanFreeze `protobuf:"bytes,28,opt,name=particle_can_freeze,json=particleCanFreeze" json:"particle_can_freeze,omitempty"` + SetNamedValueContext *CUserMsg_ParticleManager_SetParticleNamedValueContext `protobuf:"bytes,29,opt,name=set_named_value_context,json=setNamedValueContext" json:"set_named_value_context,omitempty"` + UpdateParticleTransform *CUserMsg_ParticleManager_UpdateParticleTransform `protobuf:"bytes,30,opt,name=update_particle_transform,json=updateParticleTransform" json:"update_particle_transform,omitempty"` + ParticleFreezeTransitionOverride *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride `protobuf:"bytes,31,opt,name=particle_freeze_transition_override,json=particleFreezeTransitionOverride" json:"particle_freeze_transition_override,omitempty"` +} + +// Default values for CUserMsg_ParticleManager fields. +const ( + Default_CUserMsg_ParticleManager_Type = PARTICLE_MESSAGE_GAME_PARTICLE_MANAGER_EVENT_CREATE +) + +func (x *CUserMsg_ParticleManager) Reset() { + *x = CUserMsg_ParticleManager{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35} +} + +func (x *CUserMsg_ParticleManager) GetType() PARTICLE_MESSAGE { + if x != nil && x.Type != nil { + return *x.Type + } + return Default_CUserMsg_ParticleManager_Type +} + +func (x *CUserMsg_ParticleManager) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMsg_ParticleManager) GetReleaseParticleIndex() *CUserMsg_ParticleManager_ReleaseParticleIndex { + if x != nil { + return x.ReleaseParticleIndex + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetCreateParticle() *CUserMsg_ParticleManager_CreateParticle { + if x != nil { + return x.CreateParticle + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetDestroyParticle() *CUserMsg_ParticleManager_DestroyParticle { + if x != nil { + return x.DestroyParticle + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetDestroyParticleInvolving() *CUserMsg_ParticleManager_DestroyParticleInvolving { + if x != nil { + return x.DestroyParticleInvolving + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticle() *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE { + if x != nil { + return x.UpdateParticle + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleFwd() *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE { + if x != nil { + return x.UpdateParticleFwd + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleOrient() *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE { + if x != nil { + return x.UpdateParticleOrient + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleFallback() *CUserMsg_ParticleManager_UpdateParticleFallback { + if x != nil { + return x.UpdateParticleFallback + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleOffset() *CUserMsg_ParticleManager_UpdateParticleOffset { + if x != nil { + return x.UpdateParticleOffset + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleEnt() *CUserMsg_ParticleManager_UpdateParticleEnt { + if x != nil { + return x.UpdateParticleEnt + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleShouldDraw() *CUserMsg_ParticleManager_UpdateParticleShouldDraw { + if x != nil { + return x.UpdateParticleShouldDraw + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleSetFrozen() *CUserMsg_ParticleManager_UpdateParticleSetFrozen { + if x != nil { + return x.UpdateParticleSetFrozen + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetChangeControlPointAttachment() *CUserMsg_ParticleManager_ChangeControlPointAttachment { + if x != nil { + return x.ChangeControlPointAttachment + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateEntityPosition() *CUserMsg_ParticleManager_UpdateEntityPosition { + if x != nil { + return x.UpdateEntityPosition + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetParticleFowProperties() *CUserMsg_ParticleManager_SetParticleFoWProperties { + if x != nil { + return x.SetParticleFowProperties + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetParticleText() *CUserMsg_ParticleManager_SetParticleText { + if x != nil { + return x.SetParticleText + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetParticleShouldCheckFow() *CUserMsg_ParticleManager_SetParticleShouldCheckFoW { + if x != nil { + return x.SetParticleShouldCheckFow + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetControlPointModel() *CUserMsg_ParticleManager_SetControlPointModel { + if x != nil { + return x.SetControlPointModel + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetControlPointSnapshot() *CUserMsg_ParticleManager_SetControlPointSnapshot { + if x != nil { + return x.SetControlPointSnapshot + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetTextureAttribute() *CUserMsg_ParticleManager_SetTextureAttribute { + if x != nil { + return x.SetTextureAttribute + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetSceneObjectGenericFlag() *CUserMsg_ParticleManager_SetSceneObjectGenericFlag { + if x != nil { + return x.SetSceneObjectGenericFlag + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetSceneObjectTintAndDesat() *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat { + if x != nil { + return x.SetSceneObjectTintAndDesat + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetDestroyParticleNamed() *CUserMsg_ParticleManager_DestroyParticleNamed { + if x != nil { + return x.DestroyParticleNamed + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetParticleSkipToTime() *CUserMsg_ParticleManager_ParticleSkipToTime { + if x != nil { + return x.ParticleSkipToTime + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetParticleCanFreeze() *CUserMsg_ParticleManager_ParticleCanFreeze { + if x != nil { + return x.ParticleCanFreeze + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetSetNamedValueContext() *CUserMsg_ParticleManager_SetParticleNamedValueContext { + if x != nil { + return x.SetNamedValueContext + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetUpdateParticleTransform() *CUserMsg_ParticleManager_UpdateParticleTransform { + if x != nil { + return x.UpdateParticleTransform + } + return nil +} + +func (x *CUserMsg_ParticleManager) GetParticleFreezeTransitionOverride() *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride { + if x != nil { + return x.ParticleFreezeTransitionOverride + } + return nil +} + +type CUserMsg_HudError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId *int32 `protobuf:"varint,1,opt,name=order_id,json=orderId" json:"order_id,omitempty"` +} + +func (x *CUserMsg_HudError) Reset() { + *x = CUserMsg_HudError{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_HudError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_HudError) ProtoMessage() {} + +func (x *CUserMsg_HudError) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_HudError.ProtoReflect.Descriptor instead. +func (*CUserMsg_HudError) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{36} +} + +func (x *CUserMsg_HudError) GetOrderId() int32 { + if x != nil && x.OrderId != nil { + return *x.OrderId + } + return 0 +} + +type CUserMsg_CustomGameEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventName *string `protobuf:"bytes,1,opt,name=event_name,json=eventName" json:"event_name,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CUserMsg_CustomGameEvent) Reset() { + *x = CUserMsg_CustomGameEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_CustomGameEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_CustomGameEvent) ProtoMessage() {} + +func (x *CUserMsg_CustomGameEvent) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_CustomGameEvent.ProtoReflect.Descriptor instead. +func (*CUserMsg_CustomGameEvent) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{37} +} + +func (x *CUserMsg_CustomGameEvent) GetEventName() string { + if x != nil && x.EventName != nil { + return *x.EventName + } + return "" +} + +func (x *CUserMsg_CustomGameEvent) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CUserMessageHapticsManagerPulse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HandId *int32 `protobuf:"varint,1,opt,name=hand_id,json=handId" json:"hand_id,omitempty"` + EffectAmplitude *float32 `protobuf:"fixed32,2,opt,name=effect_amplitude,json=effectAmplitude" json:"effect_amplitude,omitempty"` + EffectFrequency *float32 `protobuf:"fixed32,3,opt,name=effect_frequency,json=effectFrequency" json:"effect_frequency,omitempty"` + EffectDuration *float32 `protobuf:"fixed32,4,opt,name=effect_duration,json=effectDuration" json:"effect_duration,omitempty"` +} + +func (x *CUserMessageHapticsManagerPulse) Reset() { + *x = CUserMessageHapticsManagerPulse{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageHapticsManagerPulse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageHapticsManagerPulse) ProtoMessage() {} + +func (x *CUserMessageHapticsManagerPulse) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageHapticsManagerPulse.ProtoReflect.Descriptor instead. +func (*CUserMessageHapticsManagerPulse) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{38} +} + +func (x *CUserMessageHapticsManagerPulse) GetHandId() int32 { + if x != nil && x.HandId != nil { + return *x.HandId + } + return 0 +} + +func (x *CUserMessageHapticsManagerPulse) GetEffectAmplitude() float32 { + if x != nil && x.EffectAmplitude != nil { + return *x.EffectAmplitude + } + return 0 +} + +func (x *CUserMessageHapticsManagerPulse) GetEffectFrequency() float32 { + if x != nil && x.EffectFrequency != nil { + return *x.EffectFrequency + } + return 0 +} + +func (x *CUserMessageHapticsManagerPulse) GetEffectDuration() float32 { + if x != nil && x.EffectDuration != nil { + return *x.EffectDuration + } + return 0 +} + +type CUserMessageHapticsManagerEffect struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HandId *int32 `protobuf:"varint,1,opt,name=hand_id,json=handId" json:"hand_id,omitempty"` + EffectNameHashCode *uint32 `protobuf:"varint,2,opt,name=effect_name_hash_code,json=effectNameHashCode" json:"effect_name_hash_code,omitempty"` + EffectScale *float32 `protobuf:"fixed32,3,opt,name=effect_scale,json=effectScale" json:"effect_scale,omitempty"` +} + +func (x *CUserMessageHapticsManagerEffect) Reset() { + *x = CUserMessageHapticsManagerEffect{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageHapticsManagerEffect) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageHapticsManagerEffect) ProtoMessage() {} + +func (x *CUserMessageHapticsManagerEffect) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageHapticsManagerEffect.ProtoReflect.Descriptor instead. +func (*CUserMessageHapticsManagerEffect) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{39} +} + +func (x *CUserMessageHapticsManagerEffect) GetHandId() int32 { + if x != nil && x.HandId != nil { + return *x.HandId + } + return 0 +} + +func (x *CUserMessageHapticsManagerEffect) GetEffectNameHashCode() uint32 { + if x != nil && x.EffectNameHashCode != nil { + return *x.EffectNameHashCode + } + return 0 +} + +func (x *CUserMessageHapticsManagerEffect) GetEffectScale() float32 { + if x != nil && x.EffectScale != nil { + return *x.EffectScale + } + return 0 +} + +type CUserMessageAnimStateGraphState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityIndex *int32 `protobuf:"varint,1,opt,name=entity_index,json=entityIndex" json:"entity_index,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *CUserMessageAnimStateGraphState) Reset() { + *x = CUserMessageAnimStateGraphState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageAnimStateGraphState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageAnimStateGraphState) ProtoMessage() {} + +func (x *CUserMessageAnimStateGraphState) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageAnimStateGraphState.ProtoReflect.Descriptor instead. +func (*CUserMessageAnimStateGraphState) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{40} +} + +func (x *CUserMessageAnimStateGraphState) GetEntityIndex() int32 { + if x != nil && x.EntityIndex != nil { + return *x.EntityIndex + } + return 0 +} + +func (x *CUserMessageAnimStateGraphState) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type CUserMessageCommandQueueState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerSlot *int32 `protobuf:"varint,1,opt,name=player_slot,json=playerSlot,def=-1" json:"player_slot,omitempty"` + CommandQueueInfo *CUserMessageCommandQueueStateCommandQueueInfoT `protobuf:"bytes,2,opt,name=command_queue_info,json=commandQueueInfo" json:"command_queue_info,omitempty"` +} + +// Default values for CUserMessageCommandQueueState fields. +const ( + Default_CUserMessageCommandQueueState_PlayerSlot = int32(-1) +) + +func (x *CUserMessageCommandQueueState) Reset() { + *x = CUserMessageCommandQueueState{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCommandQueueState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCommandQueueState) ProtoMessage() {} + +func (x *CUserMessageCommandQueueState) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCommandQueueState.ProtoReflect.Descriptor instead. +func (*CUserMessageCommandQueueState) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{41} +} + +func (x *CUserMessageCommandQueueState) GetPlayerSlot() int32 { + if x != nil && x.PlayerSlot != nil { + return *x.PlayerSlot + } + return Default_CUserMessageCommandQueueState_PlayerSlot +} + +func (x *CUserMessageCommandQueueState) GetCommandQueueInfo() *CUserMessageCommandQueueStateCommandQueueInfoT { + if x != nil { + return x.CommandQueueInfo + } + return nil +} + +type CUserMessageUpdateCssClasses struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TargetWorldPanel *int32 `protobuf:"varint,1,opt,name=target_world_panel,json=targetWorldPanel" json:"target_world_panel,omitempty"` + CssClasses *string `protobuf:"bytes,2,opt,name=css_classes,json=cssClasses" json:"css_classes,omitempty"` + IsAdd *bool `protobuf:"varint,3,opt,name=is_add,json=isAdd" json:"is_add,omitempty"` +} + +func (x *CUserMessageUpdateCssClasses) Reset() { + *x = CUserMessageUpdateCssClasses{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageUpdateCssClasses) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageUpdateCssClasses) ProtoMessage() {} + +func (x *CUserMessageUpdateCssClasses) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageUpdateCssClasses.ProtoReflect.Descriptor instead. +func (*CUserMessageUpdateCssClasses) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{42} +} + +func (x *CUserMessageUpdateCssClasses) GetTargetWorldPanel() int32 { + if x != nil && x.TargetWorldPanel != nil { + return *x.TargetWorldPanel + } + return 0 +} + +func (x *CUserMessageUpdateCssClasses) GetCssClasses() string { + if x != nil && x.CssClasses != nil { + return *x.CssClasses + } + return "" +} + +func (x *CUserMessageUpdateCssClasses) GetIsAdd() bool { + if x != nil && x.IsAdd != nil { + return *x.IsAdd + } + return false +} + +type CUserMessageServerFrameTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrameTime *float32 `protobuf:"fixed32,1,opt,name=frame_time,json=frameTime" json:"frame_time,omitempty"` +} + +func (x *CUserMessageServerFrameTime) Reset() { + *x = CUserMessageServerFrameTime{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageServerFrameTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageServerFrameTime) ProtoMessage() {} + +func (x *CUserMessageServerFrameTime) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageServerFrameTime.ProtoReflect.Descriptor instead. +func (*CUserMessageServerFrameTime) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{43} +} + +func (x *CUserMessageServerFrameTime) GetFrameTime() float32 { + if x != nil && x.FrameTime != nil { + return *x.FrameTime + } + return 0 +} + +type CUserMessageLagCompensationError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Distance *float32 `protobuf:"fixed32,1,opt,name=distance" json:"distance,omitempty"` +} + +func (x *CUserMessageLagCompensationError) Reset() { + *x = CUserMessageLagCompensationError{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageLagCompensationError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageLagCompensationError) ProtoMessage() {} + +func (x *CUserMessageLagCompensationError) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageLagCompensationError.ProtoReflect.Descriptor instead. +func (*CUserMessageLagCompensationError) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{44} +} + +func (x *CUserMessageLagCompensationError) GetDistance() float32 { + if x != nil && x.Distance != nil { + return *x.Distance + } + return 0 +} + +type CUserMessageRequestDllStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DllAction *string `protobuf:"bytes,1,opt,name=dll_action,json=dllAction" json:"dll_action,omitempty"` + FullReport *bool `protobuf:"varint,2,opt,name=full_report,json=fullReport" json:"full_report,omitempty"` +} + +func (x *CUserMessageRequestDllStatus) Reset() { + *x = CUserMessageRequestDllStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestDllStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestDllStatus) ProtoMessage() {} + +func (x *CUserMessageRequestDllStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestDllStatus.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestDllStatus) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{45} +} + +func (x *CUserMessageRequestDllStatus) GetDllAction() string { + if x != nil && x.DllAction != nil { + return *x.DllAction + } + return "" +} + +func (x *CUserMessageRequestDllStatus) GetFullReport() bool { + if x != nil && x.FullReport != nil { + return *x.FullReport + } + return false +} + +type CUserMessageRequestUtilAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Util1 *int32 `protobuf:"varint,2,opt,name=util1" json:"util1,omitempty"` + Util2 *int32 `protobuf:"varint,3,opt,name=util2" json:"util2,omitempty"` + Util3 *int32 `protobuf:"varint,4,opt,name=util3" json:"util3,omitempty"` + Util4 *int32 `protobuf:"varint,5,opt,name=util4" json:"util4,omitempty"` + Util5 *int32 `protobuf:"varint,6,opt,name=util5" json:"util5,omitempty"` +} + +func (x *CUserMessageRequestUtilAction) Reset() { + *x = CUserMessageRequestUtilAction{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestUtilAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestUtilAction) ProtoMessage() {} + +func (x *CUserMessageRequestUtilAction) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestUtilAction.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestUtilAction) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{46} +} + +func (x *CUserMessageRequestUtilAction) GetUtil1() int32 { + if x != nil && x.Util1 != nil { + return *x.Util1 + } + return 0 +} + +func (x *CUserMessageRequestUtilAction) GetUtil2() int32 { + if x != nil && x.Util2 != nil { + return *x.Util2 + } + return 0 +} + +func (x *CUserMessageRequestUtilAction) GetUtil3() int32 { + if x != nil && x.Util3 != nil { + return *x.Util3 + } + return 0 +} + +func (x *CUserMessageRequestUtilAction) GetUtil4() int32 { + if x != nil && x.Util4 != nil { + return *x.Util4 + } + return 0 +} + +func (x *CUserMessageRequestUtilAction) GetUtil5() int32 { + if x != nil && x.Util5 != nil { + return *x.Util5 + } + return 0 +} + +type CUserMessage_UtilMsg_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Crc *uint32 `protobuf:"fixed32,1,opt,name=crc" json:"crc,omitempty"` + ItemCount *int32 `protobuf:"varint,2,opt,name=item_count,json=itemCount" json:"item_count,omitempty"` + Crc2 *uint32 `protobuf:"fixed32,3,opt,name=crc2" json:"crc2,omitempty"` + ItemCount2 *int32 `protobuf:"varint,4,opt,name=item_count2,json=itemCount2" json:"item_count2,omitempty"` + CrcPart []int32 `protobuf:"varint,5,rep,name=crc_part,json=crcPart" json:"crc_part,omitempty"` + CrcPart2 []int32 `protobuf:"varint,6,rep,name=crc_part2,json=crcPart2" json:"crc_part2,omitempty"` + ClientTimestamp *int32 `protobuf:"varint,7,opt,name=client_timestamp,json=clientTimestamp" json:"client_timestamp,omitempty"` + Platform *int32 `protobuf:"varint,8,opt,name=platform" json:"platform,omitempty"` + Itemdetails []*CUserMessage_UtilMsg_Response_ItemDetail `protobuf:"bytes,9,rep,name=itemdetails" json:"itemdetails,omitempty"` + Itemgroup *int32 `protobuf:"varint,10,opt,name=itemgroup" json:"itemgroup,omitempty"` + TotalCount *int32 `protobuf:"varint,11,opt,name=total_count,json=totalCount" json:"total_count,omitempty"` + TotalCount2 *int32 `protobuf:"varint,12,opt,name=total_count2,json=totalCount2" json:"total_count2,omitempty"` +} + +func (x *CUserMessage_UtilMsg_Response) Reset() { + *x = CUserMessage_UtilMsg_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_UtilMsg_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_UtilMsg_Response) ProtoMessage() {} + +func (x *CUserMessage_UtilMsg_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_UtilMsg_Response.ProtoReflect.Descriptor instead. +func (*CUserMessage_UtilMsg_Response) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{47} +} + +func (x *CUserMessage_UtilMsg_Response) GetCrc() uint32 { + if x != nil && x.Crc != nil { + return *x.Crc + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetItemCount() int32 { + if x != nil && x.ItemCount != nil { + return *x.ItemCount + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetCrc2() uint32 { + if x != nil && x.Crc2 != nil { + return *x.Crc2 + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetItemCount2() int32 { + if x != nil && x.ItemCount2 != nil { + return *x.ItemCount2 + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetCrcPart() []int32 { + if x != nil { + return x.CrcPart + } + return nil +} + +func (x *CUserMessage_UtilMsg_Response) GetCrcPart2() []int32 { + if x != nil { + return x.CrcPart2 + } + return nil +} + +func (x *CUserMessage_UtilMsg_Response) GetClientTimestamp() int32 { + if x != nil && x.ClientTimestamp != nil { + return *x.ClientTimestamp + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetPlatform() int32 { + if x != nil && x.Platform != nil { + return *x.Platform + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetItemdetails() []*CUserMessage_UtilMsg_Response_ItemDetail { + if x != nil { + return x.Itemdetails + } + return nil +} + +func (x *CUserMessage_UtilMsg_Response) GetItemgroup() int32 { + if x != nil && x.Itemgroup != nil { + return *x.Itemgroup + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetTotalCount() int32 { + if x != nil && x.TotalCount != nil { + return *x.TotalCount + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response) GetTotalCount2() int32 { + if x != nil && x.TotalCount2 != nil { + return *x.TotalCount2 + } + return 0 +} + +type CUserMessage_DllStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileReport *string `protobuf:"bytes,1,opt,name=file_report,json=fileReport" json:"file_report,omitempty"` + CommandLine *string `protobuf:"bytes,2,opt,name=command_line,json=commandLine" json:"command_line,omitempty"` + TotalFiles *uint32 `protobuf:"varint,3,opt,name=total_files,json=totalFiles" json:"total_files,omitempty"` + ProcessId *uint32 `protobuf:"varint,4,opt,name=process_id,json=processId" json:"process_id,omitempty"` + Osversion *int32 `protobuf:"varint,5,opt,name=osversion" json:"osversion,omitempty"` + ClientTime *uint64 `protobuf:"varint,6,opt,name=client_time,json=clientTime" json:"client_time,omitempty"` + Diagnostics []*CUserMessage_DllStatus_CVDiagnostic `protobuf:"bytes,7,rep,name=diagnostics" json:"diagnostics,omitempty"` +} + +func (x *CUserMessage_DllStatus) Reset() { + *x = CUserMessage_DllStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_DllStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_DllStatus) ProtoMessage() {} + +func (x *CUserMessage_DllStatus) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_DllStatus.ProtoReflect.Descriptor instead. +func (*CUserMessage_DllStatus) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{48} +} + +func (x *CUserMessage_DllStatus) GetFileReport() string { + if x != nil && x.FileReport != nil { + return *x.FileReport + } + return "" +} + +func (x *CUserMessage_DllStatus) GetCommandLine() string { + if x != nil && x.CommandLine != nil { + return *x.CommandLine + } + return "" +} + +func (x *CUserMessage_DllStatus) GetTotalFiles() uint32 { + if x != nil && x.TotalFiles != nil { + return *x.TotalFiles + } + return 0 +} + +func (x *CUserMessage_DllStatus) GetProcessId() uint32 { + if x != nil && x.ProcessId != nil { + return *x.ProcessId + } + return 0 +} + +func (x *CUserMessage_DllStatus) GetOsversion() int32 { + if x != nil && x.Osversion != nil { + return *x.Osversion + } + return 0 +} + +func (x *CUserMessage_DllStatus) GetClientTime() uint64 { + if x != nil && x.ClientTime != nil { + return *x.ClientTime + } + return 0 +} + +func (x *CUserMessage_DllStatus) GetDiagnostics() []*CUserMessage_DllStatus_CVDiagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type CUserMessageRequestInventory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inventory *int32 `protobuf:"varint,1,opt,name=inventory" json:"inventory,omitempty"` + Offset *int32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + Options *int32 `protobuf:"varint,3,opt,name=options" json:"options,omitempty"` +} + +func (x *CUserMessageRequestInventory) Reset() { + *x = CUserMessageRequestInventory{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestInventory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestInventory) ProtoMessage() {} + +func (x *CUserMessageRequestInventory) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestInventory.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestInventory) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{49} +} + +func (x *CUserMessageRequestInventory) GetInventory() int32 { + if x != nil && x.Inventory != nil { + return *x.Inventory + } + return 0 +} + +func (x *CUserMessageRequestInventory) GetOffset() int32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *CUserMessageRequestInventory) GetOptions() int32 { + if x != nil && x.Options != nil { + return *x.Options + } + return 0 +} + +type CUserMessage_Inventory_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Crc *uint32 `protobuf:"fixed32,1,opt,name=crc" json:"crc,omitempty"` + ItemCount *int32 `protobuf:"varint,2,opt,name=item_count,json=itemCount" json:"item_count,omitempty"` + Osversion *int32 `protobuf:"varint,5,opt,name=osversion" json:"osversion,omitempty"` + PerfTime *int32 `protobuf:"varint,6,opt,name=perf_time,json=perfTime" json:"perf_time,omitempty"` + ClientTimestamp *int32 `protobuf:"varint,7,opt,name=client_timestamp,json=clientTimestamp" json:"client_timestamp,omitempty"` + Platform *int32 `protobuf:"varint,8,opt,name=platform" json:"platform,omitempty"` + Inventories []*CUserMessage_Inventory_Response_InventoryDetail `protobuf:"bytes,9,rep,name=inventories" json:"inventories,omitempty"` + Inventories2 []*CUserMessage_Inventory_Response_InventoryDetail `protobuf:"bytes,10,rep,name=inventories2" json:"inventories2,omitempty"` + Inventories3 []*CUserMessage_Inventory_Response_InventoryDetail `protobuf:"bytes,14,rep,name=inventories3" json:"inventories3,omitempty"` + InvType *int32 `protobuf:"varint,11,opt,name=inv_type,json=invType" json:"inv_type,omitempty"` + BuildVersion *int32 `protobuf:"varint,12,opt,name=build_version,json=buildVersion" json:"build_version,omitempty"` + Instance *int32 `protobuf:"varint,13,opt,name=instance" json:"instance,omitempty"` +} + +func (x *CUserMessage_Inventory_Response) Reset() { + *x = CUserMessage_Inventory_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_Inventory_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_Inventory_Response) ProtoMessage() {} + +func (x *CUserMessage_Inventory_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_Inventory_Response.ProtoReflect.Descriptor instead. +func (*CUserMessage_Inventory_Response) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{50} +} + +func (x *CUserMessage_Inventory_Response) GetCrc() uint32 { + if x != nil && x.Crc != nil { + return *x.Crc + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetItemCount() int32 { + if x != nil && x.ItemCount != nil { + return *x.ItemCount + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetOsversion() int32 { + if x != nil && x.Osversion != nil { + return *x.Osversion + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetPerfTime() int32 { + if x != nil && x.PerfTime != nil { + return *x.PerfTime + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetClientTimestamp() int32 { + if x != nil && x.ClientTimestamp != nil { + return *x.ClientTimestamp + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetPlatform() int32 { + if x != nil && x.Platform != nil { + return *x.Platform + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetInventories() []*CUserMessage_Inventory_Response_InventoryDetail { + if x != nil { + return x.Inventories + } + return nil +} + +func (x *CUserMessage_Inventory_Response) GetInventories2() []*CUserMessage_Inventory_Response_InventoryDetail { + if x != nil { + return x.Inventories2 + } + return nil +} + +func (x *CUserMessage_Inventory_Response) GetInventories3() []*CUserMessage_Inventory_Response_InventoryDetail { + if x != nil { + return x.Inventories3 + } + return nil +} + +func (x *CUserMessage_Inventory_Response) GetInvType() int32 { + if x != nil && x.InvType != nil { + return *x.InvType + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetBuildVersion() int32 { + if x != nil && x.BuildVersion != nil { + return *x.BuildVersion + } + return 0 +} + +func (x *CUserMessage_Inventory_Response) GetInstance() int32 { + if x != nil && x.Instance != nil { + return *x.Instance + } + return 0 +} + +type CUserMessageRequestDiagnostic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Diagnostics []*CUserMessageRequestDiagnostic_Diagnostic `protobuf:"bytes,1,rep,name=diagnostics" json:"diagnostics,omitempty"` +} + +func (x *CUserMessageRequestDiagnostic) Reset() { + *x = CUserMessageRequestDiagnostic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestDiagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestDiagnostic) ProtoMessage() {} + +func (x *CUserMessageRequestDiagnostic) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestDiagnostic.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestDiagnostic) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{51} +} + +func (x *CUserMessageRequestDiagnostic) GetDiagnostics() []*CUserMessageRequestDiagnostic_Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type CUserMessage_Diagnostic_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Diagnostics []*CUserMessage_Diagnostic_Response_Diagnostic `protobuf:"bytes,1,rep,name=diagnostics" json:"diagnostics,omitempty"` + BuildVersion *int32 `protobuf:"varint,2,opt,name=build_version,json=buildVersion" json:"build_version,omitempty"` + Instance *int32 `protobuf:"varint,3,opt,name=instance" json:"instance,omitempty"` +} + +func (x *CUserMessage_Diagnostic_Response) Reset() { + *x = CUserMessage_Diagnostic_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_Diagnostic_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_Diagnostic_Response) ProtoMessage() {} + +func (x *CUserMessage_Diagnostic_Response) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_Diagnostic_Response.ProtoReflect.Descriptor instead. +func (*CUserMessage_Diagnostic_Response) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{52} +} + +func (x *CUserMessage_Diagnostic_Response) GetDiagnostics() []*CUserMessage_Diagnostic_Response_Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +func (x *CUserMessage_Diagnostic_Response) GetBuildVersion() int32 { + if x != nil && x.BuildVersion != nil { + return *x.BuildVersion + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response) GetInstance() int32 { + if x != nil && x.Instance != nil { + return *x.Instance + } + return 0 +} + +type CUserMessageCameraTransition_Transition_DataDriven struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filename *string `protobuf:"bytes,1,opt,name=filename" json:"filename,omitempty"` + AttachEntIndex *int32 `protobuf:"varint,2,opt,name=attach_ent_index,json=attachEntIndex,def=-1" json:"attach_ent_index,omitempty"` + Duration *float32 `protobuf:"fixed32,3,opt,name=duration" json:"duration,omitempty"` +} + +// Default values for CUserMessageCameraTransition_Transition_DataDriven fields. +const ( + Default_CUserMessageCameraTransition_Transition_DataDriven_AttachEntIndex = int32(-1) +) + +func (x *CUserMessageCameraTransition_Transition_DataDriven) Reset() { + *x = CUserMessageCameraTransition_Transition_DataDriven{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCameraTransition_Transition_DataDriven) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCameraTransition_Transition_DataDriven) ProtoMessage() {} + +func (x *CUserMessageCameraTransition_Transition_DataDriven) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCameraTransition_Transition_DataDriven.ProtoReflect.Descriptor instead. +func (*CUserMessageCameraTransition_Transition_DataDriven) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{34, 0} +} + +func (x *CUserMessageCameraTransition_Transition_DataDriven) GetFilename() string { + if x != nil && x.Filename != nil { + return *x.Filename + } + return "" +} + +func (x *CUserMessageCameraTransition_Transition_DataDriven) GetAttachEntIndex() int32 { + if x != nil && x.AttachEntIndex != nil { + return *x.AttachEntIndex + } + return Default_CUserMessageCameraTransition_Transition_DataDriven_AttachEntIndex +} + +func (x *CUserMessageCameraTransition_Transition_DataDriven) GetDuration() float32 { + if x != nil && x.Duration != nil { + return *x.Duration + } + return 0 +} + +type CUserMsg_ParticleManager_ReleaseParticleIndex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CUserMsg_ParticleManager_ReleaseParticleIndex) Reset() { + *x = CUserMsg_ParticleManager_ReleaseParticleIndex{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_ReleaseParticleIndex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_ReleaseParticleIndex) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_ReleaseParticleIndex) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_ReleaseParticleIndex.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_ReleaseParticleIndex) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 0} +} + +type CUserMsg_ParticleManager_CreateParticle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParticleNameIndex *uint64 `protobuf:"fixed64,1,opt,name=particle_name_index,json=particleNameIndex" json:"particle_name_index,omitempty"` + AttachType *int32 `protobuf:"varint,2,opt,name=attach_type,json=attachType" json:"attach_type,omitempty"` + EntityHandle *uint32 `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` + EntityHandleForModifiers *uint32 `protobuf:"varint,4,opt,name=entity_handle_for_modifiers,json=entityHandleForModifiers,def=16777215" json:"entity_handle_for_modifiers,omitempty"` + ApplyVoiceBanRules *bool `protobuf:"varint,5,opt,name=apply_voice_ban_rules,json=applyVoiceBanRules" json:"apply_voice_ban_rules,omitempty"` + TeamBehavior *int32 `protobuf:"varint,6,opt,name=team_behavior,json=teamBehavior" json:"team_behavior,omitempty"` + ControlPointConfiguration *string `protobuf:"bytes,7,opt,name=control_point_configuration,json=controlPointConfiguration" json:"control_point_configuration,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_CreateParticle fields. +const ( + Default_CUserMsg_ParticleManager_CreateParticle_EntityHandle = uint32(16777215) + Default_CUserMsg_ParticleManager_CreateParticle_EntityHandleForModifiers = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_CreateParticle) Reset() { + *x = CUserMsg_ParticleManager_CreateParticle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_CreateParticle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_CreateParticle) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_CreateParticle) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_CreateParticle.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_CreateParticle) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 1} +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetParticleNameIndex() uint64 { + if x != nil && x.ParticleNameIndex != nil { + return *x.ParticleNameIndex + } + return 0 +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetAttachType() int32 { + if x != nil && x.AttachType != nil { + return *x.AttachType + } + return 0 +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_CreateParticle_EntityHandle +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetEntityHandleForModifiers() uint32 { + if x != nil && x.EntityHandleForModifiers != nil { + return *x.EntityHandleForModifiers + } + return Default_CUserMsg_ParticleManager_CreateParticle_EntityHandleForModifiers +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetApplyVoiceBanRules() bool { + if x != nil && x.ApplyVoiceBanRules != nil { + return *x.ApplyVoiceBanRules + } + return false +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetTeamBehavior() int32 { + if x != nil && x.TeamBehavior != nil { + return *x.TeamBehavior + } + return 0 +} + +func (x *CUserMsg_ParticleManager_CreateParticle) GetControlPointConfiguration() string { + if x != nil && x.ControlPointConfiguration != nil { + return *x.ControlPointConfiguration + } + return "" +} + +type CUserMsg_ParticleManager_DestroyParticle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DestroyImmediately *bool `protobuf:"varint,1,opt,name=destroy_immediately,json=destroyImmediately" json:"destroy_immediately,omitempty"` +} + +func (x *CUserMsg_ParticleManager_DestroyParticle) Reset() { + *x = CUserMsg_ParticleManager_DestroyParticle{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_DestroyParticle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_DestroyParticle) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_DestroyParticle) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_DestroyParticle.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_DestroyParticle) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 2} +} + +func (x *CUserMsg_ParticleManager_DestroyParticle) GetDestroyImmediately() bool { + if x != nil && x.DestroyImmediately != nil { + return *x.DestroyImmediately + } + return false +} + +type CUserMsg_ParticleManager_DestroyParticleInvolving struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DestroyImmediately *bool `protobuf:"varint,1,opt,name=destroy_immediately,json=destroyImmediately" json:"destroy_immediately,omitempty"` + EntityHandle *uint32 `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_DestroyParticleInvolving fields. +const ( + Default_CUserMsg_ParticleManager_DestroyParticleInvolving_EntityHandle = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_DestroyParticleInvolving) Reset() { + *x = CUserMsg_ParticleManager_DestroyParticleInvolving{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_DestroyParticleInvolving) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_DestroyParticleInvolving) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_DestroyParticleInvolving) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_DestroyParticleInvolving.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_DestroyParticleInvolving) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 3} +} + +func (x *CUserMsg_ParticleManager_DestroyParticleInvolving) GetDestroyImmediately() bool { + if x != nil && x.DestroyImmediately != nil { + return *x.DestroyImmediately + } + return false +} + +func (x *CUserMsg_ParticleManager_DestroyParticleInvolving) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_DestroyParticleInvolving_EntityHandle +} + +type CUserMsg_ParticleManager_DestroyParticleNamed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParticleNameIndex *uint64 `protobuf:"fixed64,1,opt,name=particle_name_index,json=particleNameIndex" json:"particle_name_index,omitempty"` + EntityHandle *uint32 `protobuf:"varint,2,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` + DestroyImmediately *bool `protobuf:"varint,3,opt,name=destroy_immediately,json=destroyImmediately" json:"destroy_immediately,omitempty"` + PlayEndcap *bool `protobuf:"varint,4,opt,name=play_endcap,json=playEndcap" json:"play_endcap,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_DestroyParticleNamed fields. +const ( + Default_CUserMsg_ParticleManager_DestroyParticleNamed_EntityHandle = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) Reset() { + *x = CUserMsg_ParticleManager_DestroyParticleNamed{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_DestroyParticleNamed) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_DestroyParticleNamed.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_DestroyParticleNamed) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 4} +} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) GetParticleNameIndex() uint64 { + if x != nil && x.ParticleNameIndex != nil { + return *x.ParticleNameIndex + } + return 0 +} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_DestroyParticleNamed_EntityHandle +} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) GetDestroyImmediately() bool { + if x != nil && x.DestroyImmediately != nil { + return *x.DestroyImmediately + } + return false +} + +func (x *CUserMsg_ParticleManager_DestroyParticleNamed) GetPlayEndcap() bool { + if x != nil && x.PlayEndcap != nil { + return *x.PlayEndcap + } + return false +} + +type CUserMsg_ParticleManager_UpdateParticle_OBSOLETE struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + Position *CMsgVector `protobuf:"bytes,2,opt,name=position" json:"position,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticle_OBSOLETE{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticle_OBSOLETE.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 5} +} + +func (x *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticle_OBSOLETE) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + Forward *CMsgVector `protobuf:"bytes,2,opt,name=forward" json:"forward,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 6} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE) GetForward() *CMsgVector { + if x != nil { + return x.Forward + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + Forward *CMsgVector `protobuf:"bytes,2,opt,name=forward" json:"forward,omitempty"` + DeprecatedRight *CMsgVector `protobuf:"bytes,3,opt,name=deprecated_right,json=deprecatedRight" json:"deprecated_right,omitempty"` + Up *CMsgVector `protobuf:"bytes,4,opt,name=up" json:"up,omitempty"` + Left *CMsgVector `protobuf:"bytes,5,opt,name=left" json:"left,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 7} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) GetForward() *CMsgVector { + if x != nil { + return x.Forward + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) GetDeprecatedRight() *CMsgVector { + if x != nil { + return x.DeprecatedRight + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) GetUp() *CMsgVector { + if x != nil { + return x.Up + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE) GetLeft() *CMsgVector { + if x != nil { + return x.Left + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + Position *CMsgVector `protobuf:"bytes,2,opt,name=position" json:"position,omitempty"` + Orientation *CMsgQuaternion `protobuf:"bytes,3,opt,name=orientation" json:"orientation,omitempty"` + InterpolationInterval *float32 `protobuf:"fixed32,4,opt,name=interpolation_interval,json=interpolationInterval" json:"interpolation_interval,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleTransform) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleTransform.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleTransform) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 8} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) GetOrientation() *CMsgQuaternion { + if x != nil { + return x.Orientation + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleTransform) GetInterpolationInterval() float32 { + if x != nil && x.InterpolationInterval != nil { + return *x.InterpolationInterval + } + return 0 +} + +type CUserMsg_ParticleManager_UpdateParticleFallback struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + Position *CMsgVector `protobuf:"bytes,2,opt,name=position" json:"position,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFallback) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleFallback{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFallback) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleFallback) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleFallback) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleFallback.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleFallback) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 9} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFallback) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleFallback) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleOffset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + OriginOffset *CMsgVector `protobuf:"bytes,2,opt,name=origin_offset,json=originOffset" json:"origin_offset,omitempty"` + AngleOffset *CMsgQAngle `protobuf:"bytes,3,opt,name=angle_offset,json=angleOffset" json:"angle_offset,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleOffset{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleOffset) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleOffset.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleOffset) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 10} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) GetOriginOffset() *CMsgVector { + if x != nil { + return x.OriginOffset + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleOffset) GetAngleOffset() *CMsgQAngle { + if x != nil { + return x.AngleOffset + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleEnt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + EntityHandle *uint32 `protobuf:"varint,2,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` + AttachType *int32 `protobuf:"varint,3,opt,name=attach_type,json=attachType" json:"attach_type,omitempty"` + Attachment *int32 `protobuf:"varint,4,opt,name=attachment" json:"attachment,omitempty"` + FallbackPosition *CMsgVector `protobuf:"bytes,5,opt,name=fallback_position,json=fallbackPosition" json:"fallback_position,omitempty"` + IncludeWearables *bool `protobuf:"varint,6,opt,name=include_wearables,json=includeWearables" json:"include_wearables,omitempty"` + OffsetPosition *CMsgVector `protobuf:"bytes,7,opt,name=offset_position,json=offsetPosition" json:"offset_position,omitempty"` + OffsetAngles *CMsgQAngle `protobuf:"bytes,8,opt,name=offset_angles,json=offsetAngles" json:"offset_angles,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_UpdateParticleEnt fields. +const ( + Default_CUserMsg_ParticleManager_UpdateParticleEnt_EntityHandle = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleEnt{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleEnt) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleEnt.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleEnt) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 11} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_UpdateParticleEnt_EntityHandle +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetAttachType() int32 { + if x != nil && x.AttachType != nil { + return *x.AttachType + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetAttachment() int32 { + if x != nil && x.Attachment != nil { + return *x.Attachment + } + return 0 +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetFallbackPosition() *CMsgVector { + if x != nil { + return x.FallbackPosition + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetIncludeWearables() bool { + if x != nil && x.IncludeWearables != nil { + return *x.IncludeWearables + } + return false +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetOffsetPosition() *CMsgVector { + if x != nil { + return x.OffsetPosition + } + return nil +} + +func (x *CUserMsg_ParticleManager_UpdateParticleEnt) GetOffsetAngles() *CMsgQAngle { + if x != nil { + return x.OffsetAngles + } + return nil +} + +type CUserMsg_ParticleManager_UpdateParticleSetFrozen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SetFrozen *bool `protobuf:"varint,1,opt,name=set_frozen,json=setFrozen" json:"set_frozen,omitempty"` + TransitionDuration *float32 `protobuf:"fixed32,2,opt,name=transition_duration,json=transitionDuration" json:"transition_duration,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleSetFrozen) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleSetFrozen{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleSetFrozen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleSetFrozen) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleSetFrozen) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleSetFrozen.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleSetFrozen) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 12} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleSetFrozen) GetSetFrozen() bool { + if x != nil && x.SetFrozen != nil { + return *x.SetFrozen + } + return false +} + +func (x *CUserMsg_ParticleManager_UpdateParticleSetFrozen) GetTransitionDuration() float32 { + if x != nil && x.TransitionDuration != nil { + return *x.TransitionDuration + } + return 0 +} + +type CUserMsg_ParticleManager_UpdateParticleShouldDraw struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShouldDraw *bool `protobuf:"varint,1,opt,name=should_draw,json=shouldDraw" json:"should_draw,omitempty"` +} + +func (x *CUserMsg_ParticleManager_UpdateParticleShouldDraw) Reset() { + *x = CUserMsg_ParticleManager_UpdateParticleShouldDraw{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateParticleShouldDraw) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateParticleShouldDraw) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateParticleShouldDraw) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateParticleShouldDraw.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateParticleShouldDraw) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 13} +} + +func (x *CUserMsg_ParticleManager_UpdateParticleShouldDraw) GetShouldDraw() bool { + if x != nil && x.ShouldDraw != nil { + return *x.ShouldDraw + } + return false +} + +type CUserMsg_ParticleManager_ChangeControlPointAttachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AttachmentOld *int32 `protobuf:"varint,1,opt,name=attachment_old,json=attachmentOld" json:"attachment_old,omitempty"` + AttachmentNew *int32 `protobuf:"varint,2,opt,name=attachment_new,json=attachmentNew" json:"attachment_new,omitempty"` + EntityHandle *uint32 `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_ChangeControlPointAttachment fields. +const ( + Default_CUserMsg_ParticleManager_ChangeControlPointAttachment_EntityHandle = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) Reset() { + *x = CUserMsg_ParticleManager_ChangeControlPointAttachment{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_ChangeControlPointAttachment) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_ChangeControlPointAttachment.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_ChangeControlPointAttachment) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 14} +} + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) GetAttachmentOld() int32 { + if x != nil && x.AttachmentOld != nil { + return *x.AttachmentOld + } + return 0 +} + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) GetAttachmentNew() int32 { + if x != nil && x.AttachmentNew != nil { + return *x.AttachmentNew + } + return 0 +} + +func (x *CUserMsg_ParticleManager_ChangeControlPointAttachment) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_ChangeControlPointAttachment_EntityHandle +} + +type CUserMsg_ParticleManager_UpdateEntityPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EntityHandle *uint32 `protobuf:"varint,1,opt,name=entity_handle,json=entityHandle,def=16777215" json:"entity_handle,omitempty"` + Position *CMsgVector `protobuf:"bytes,2,opt,name=position" json:"position,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_UpdateEntityPosition fields. +const ( + Default_CUserMsg_ParticleManager_UpdateEntityPosition_EntityHandle = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_UpdateEntityPosition) Reset() { + *x = CUserMsg_ParticleManager_UpdateEntityPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_UpdateEntityPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_UpdateEntityPosition) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_UpdateEntityPosition) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_UpdateEntityPosition.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_UpdateEntityPosition) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 15} +} + +func (x *CUserMsg_ParticleManager_UpdateEntityPosition) GetEntityHandle() uint32 { + if x != nil && x.EntityHandle != nil { + return *x.EntityHandle + } + return Default_CUserMsg_ParticleManager_UpdateEntityPosition_EntityHandle +} + +func (x *CUserMsg_ParticleManager_UpdateEntityPosition) GetPosition() *CMsgVector { + if x != nil { + return x.Position + } + return nil +} + +type CUserMsg_ParticleManager_SetParticleFoWProperties struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FowControlPoint *int32 `protobuf:"varint,1,opt,name=fow_control_point,json=fowControlPoint" json:"fow_control_point,omitempty"` + FowControlPoint2 *int32 `protobuf:"varint,2,opt,name=fow_control_point2,json=fowControlPoint2" json:"fow_control_point2,omitempty"` + FowRadius *float32 `protobuf:"fixed32,3,opt,name=fow_radius,json=fowRadius" json:"fow_radius,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) Reset() { + *x = CUserMsg_ParticleManager_SetParticleFoWProperties{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleFoWProperties) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleFoWProperties.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleFoWProperties) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 16} +} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) GetFowControlPoint() int32 { + if x != nil && x.FowControlPoint != nil { + return *x.FowControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) GetFowControlPoint2() int32 { + if x != nil && x.FowControlPoint2 != nil { + return *x.FowControlPoint2 + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleFoWProperties) GetFowRadius() float32 { + if x != nil && x.FowRadius != nil { + return *x.FowRadius + } + return 0 +} + +type CUserMsg_ParticleManager_SetParticleShouldCheckFoW struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CheckFow *bool `protobuf:"varint,1,opt,name=check_fow,json=checkFow" json:"check_fow,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleShouldCheckFoW) Reset() { + *x = CUserMsg_ParticleManager_SetParticleShouldCheckFoW{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleShouldCheckFoW) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleShouldCheckFoW) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleShouldCheckFoW) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleShouldCheckFoW.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleShouldCheckFoW) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 17} +} + +func (x *CUserMsg_ParticleManager_SetParticleShouldCheckFoW) GetCheckFow() bool { + if x != nil && x.CheckFow != nil { + return *x.CheckFow + } + return false +} + +type CUserMsg_ParticleManager_SetControlPointModel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + ModelName *string `protobuf:"bytes,2,opt,name=model_name,json=modelName" json:"model_name,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetControlPointModel) Reset() { + *x = CUserMsg_ParticleManager_SetControlPointModel{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetControlPointModel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetControlPointModel) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetControlPointModel) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetControlPointModel.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetControlPointModel) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 18} +} + +func (x *CUserMsg_ParticleManager_SetControlPointModel) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetControlPointModel) GetModelName() string { + if x != nil && x.ModelName != nil { + return *x.ModelName + } + return "" +} + +type CUserMsg_ParticleManager_SetControlPointSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ControlPoint *int32 `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"` + SnapshotName *string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName" json:"snapshot_name,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetControlPointSnapshot) Reset() { + *x = CUserMsg_ParticleManager_SetControlPointSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetControlPointSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetControlPointSnapshot) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetControlPointSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetControlPointSnapshot.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetControlPointSnapshot) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 19} +} + +func (x *CUserMsg_ParticleManager_SetControlPointSnapshot) GetControlPoint() int32 { + if x != nil && x.ControlPoint != nil { + return *x.ControlPoint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetControlPointSnapshot) GetSnapshotName() string { + if x != nil && x.SnapshotName != nil { + return *x.SnapshotName + } + return "" +} + +type CUserMsg_ParticleManager_SetParticleText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleText) Reset() { + *x = CUserMsg_ParticleManager_SetParticleText{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleText) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleText) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleText.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleText) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 20} +} + +func (x *CUserMsg_ParticleManager_SetParticleText) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +type CUserMsg_ParticleManager_SetTextureAttribute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AttributeName *string `protobuf:"bytes,1,opt,name=attribute_name,json=attributeName" json:"attribute_name,omitempty"` + TextureName *string `protobuf:"bytes,2,opt,name=texture_name,json=textureName" json:"texture_name,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetTextureAttribute) Reset() { + *x = CUserMsg_ParticleManager_SetTextureAttribute{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetTextureAttribute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetTextureAttribute) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetTextureAttribute) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetTextureAttribute.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetTextureAttribute) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 21} +} + +func (x *CUserMsg_ParticleManager_SetTextureAttribute) GetAttributeName() string { + if x != nil && x.AttributeName != nil { + return *x.AttributeName + } + return "" +} + +func (x *CUserMsg_ParticleManager_SetTextureAttribute) GetTextureName() string { + if x != nil && x.TextureName != nil { + return *x.TextureName + } + return "" +} + +type CUserMsg_ParticleManager_SetSceneObjectGenericFlag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FlagValue *bool `protobuf:"varint,1,opt,name=flag_value,json=flagValue" json:"flag_value,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectGenericFlag) Reset() { + *x = CUserMsg_ParticleManager_SetSceneObjectGenericFlag{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectGenericFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetSceneObjectGenericFlag) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetSceneObjectGenericFlag) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetSceneObjectGenericFlag.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetSceneObjectGenericFlag) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 22} +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectGenericFlag) GetFlagValue() bool { + if x != nil && x.FlagValue != nil { + return *x.FlagValue + } + return false +} + +type CUserMsg_ParticleManager_SetSceneObjectTintAndDesat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tint *uint32 `protobuf:"fixed32,1,opt,name=tint" json:"tint,omitempty"` + Desat *float32 `protobuf:"fixed32,2,opt,name=desat" json:"desat,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) Reset() { + *x = CUserMsg_ParticleManager_SetSceneObjectTintAndDesat{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetSceneObjectTintAndDesat.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 23} +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) GetTint() uint32 { + if x != nil && x.Tint != nil { + return *x.Tint + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetSceneObjectTintAndDesat) GetDesat() float32 { + if x != nil && x.Desat != nil { + return *x.Desat + } + return 0 +} + +type CUserMsg_ParticleManager_ParticleSkipToTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SkipToTime *float32 `protobuf:"fixed32,1,opt,name=skip_to_time,json=skipToTime" json:"skip_to_time,omitempty"` +} + +func (x *CUserMsg_ParticleManager_ParticleSkipToTime) Reset() { + *x = CUserMsg_ParticleManager_ParticleSkipToTime{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_ParticleSkipToTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_ParticleSkipToTime) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_ParticleSkipToTime) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_ParticleSkipToTime.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_ParticleSkipToTime) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 24} +} + +func (x *CUserMsg_ParticleManager_ParticleSkipToTime) GetSkipToTime() float32 { + if x != nil && x.SkipToTime != nil { + return *x.SkipToTime + } + return 0 +} + +type CUserMsg_ParticleManager_ParticleCanFreeze struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CanFreeze *bool `protobuf:"varint,1,opt,name=can_freeze,json=canFreeze" json:"can_freeze,omitempty"` +} + +func (x *CUserMsg_ParticleManager_ParticleCanFreeze) Reset() { + *x = CUserMsg_ParticleManager_ParticleCanFreeze{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_ParticleCanFreeze) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_ParticleCanFreeze) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_ParticleCanFreeze) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_ParticleCanFreeze.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_ParticleCanFreeze) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 25} +} + +func (x *CUserMsg_ParticleManager_ParticleCanFreeze) GetCanFreeze() bool { + if x != nil && x.CanFreeze != nil { + return *x.CanFreeze + } + return false +} + +type CUserMsg_ParticleManager_ParticleFreezeTransitionOverride struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FreezeTransitionOverride *float32 `protobuf:"fixed32,1,opt,name=freeze_transition_override,json=freezeTransitionOverride" json:"freeze_transition_override,omitempty"` +} + +func (x *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) Reset() { + *x = CUserMsg_ParticleManager_ParticleFreezeTransitionOverride{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_ParticleFreezeTransitionOverride.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 26} +} + +func (x *CUserMsg_ParticleManager_ParticleFreezeTransitionOverride) GetFreezeTransitionOverride() float32 { + if x != nil && x.FreezeTransitionOverride != nil { + return *x.FreezeTransitionOverride + } + return 0 +} + +type CUserMsg_ParticleManager_SetParticleNamedValueContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FloatValues []*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue `protobuf:"bytes,1,rep,name=float_values,json=floatValues" json:"float_values,omitempty"` + VectorValues []*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue `protobuf:"bytes,2,rep,name=vector_values,json=vectorValues" json:"vector_values,omitempty"` + TransformValues []*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue `protobuf:"bytes,3,rep,name=transform_values,json=transformValues" json:"transform_values,omitempty"` + EhandleValues []*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext `protobuf:"bytes,4,rep,name=ehandle_values,json=ehandleValues" json:"ehandle_values,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) Reset() { + *x = CUserMsg_ParticleManager_SetParticleNamedValueContext{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleNamedValueContext.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 27} +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) GetFloatValues() []*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue { + if x != nil { + return x.FloatValues + } + return nil +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) GetVectorValues() []*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue { + if x != nil { + return x.VectorValues + } + return nil +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) GetTransformValues() []*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue { + if x != nil { + return x.TransformValues + } + return nil +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext) GetEhandleValues() []*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext { + if x != nil { + return x.EhandleValues + } + return nil +} + +type CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueNameHash *uint32 `protobuf:"varint,1,opt,name=value_name_hash,json=valueNameHash" json:"value_name_hash,omitempty"` + Value *float32 `protobuf:"fixed32,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) Reset() { + *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 27, 0} +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) GetValueNameHash() uint32 { + if x != nil && x.ValueNameHash != nil { + return *x.ValueNameHash + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +type CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueNameHash *uint32 `protobuf:"varint,1,opt,name=value_name_hash,json=valueNameHash" json:"value_name_hash,omitempty"` + Value *CMsgVector `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) Reset() { + *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 27, 1} +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) GetValueNameHash() uint32 { + if x != nil && x.ValueNameHash != nil { + return *x.ValueNameHash + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue) GetValue() *CMsgVector { + if x != nil { + return x.Value + } + return nil +} + +type CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueNameHash *uint32 `protobuf:"varint,1,opt,name=value_name_hash,json=valueNameHash" json:"value_name_hash,omitempty"` + Angles *CMsgQAngle `protobuf:"bytes,2,opt,name=angles" json:"angles,omitempty"` + Translation *CMsgVector `protobuf:"bytes,3,opt,name=translation" json:"translation,omitempty"` +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) Reset() { + *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 27, 2} +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) GetValueNameHash() uint32 { + if x != nil && x.ValueNameHash != nil { + return *x.ValueNameHash + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) GetAngles() *CMsgQAngle { + if x != nil { + return x.Angles + } + return nil +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue) GetTranslation() *CMsgVector { + if x != nil { + return x.Translation + } + return nil +} + +type CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValueNameHash *uint32 `protobuf:"varint,1,opt,name=value_name_hash,json=valueNameHash" json:"value_name_hash,omitempty"` + EntIndex *uint32 `protobuf:"varint,2,opt,name=ent_index,json=entIndex,def=16777215" json:"ent_index,omitempty"` +} + +// Default values for CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext fields. +const ( + Default_CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext_EntIndex = uint32(16777215) +) + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) Reset() { + *x = CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) ProtoMessage() {} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext.ProtoReflect.Descriptor instead. +func (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{35, 27, 3} +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) GetValueNameHash() uint32 { + if x != nil && x.ValueNameHash != nil { + return *x.ValueNameHash + } + return 0 +} + +func (x *CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext) GetEntIndex() uint32 { + if x != nil && x.EntIndex != nil { + return *x.EntIndex + } + return Default_CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext_EntIndex +} + +type CUserMessageCommandQueueStateCommandQueueInfoT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommandsQueued *uint32 `protobuf:"varint,1,opt,name=commands_queued,json=commandsQueued" json:"commands_queued,omitempty"` + CommandQueueDesiredSize *uint32 `protobuf:"varint,2,opt,name=command_queue_desired_size,json=commandQueueDesiredSize" json:"command_queue_desired_size,omitempty"` + StarvedCommandTicks *uint32 `protobuf:"varint,3,opt,name=starved_command_ticks,json=starvedCommandTicks" json:"starved_command_ticks,omitempty"` + TimeDilationPercent *int32 `protobuf:"varint,4,opt,name=time_dilation_percent,json=timeDilationPercent" json:"time_dilation_percent,omitempty"` +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) Reset() { + *x = CUserMessageCommandQueueStateCommandQueueInfoT{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageCommandQueueStateCommandQueueInfoT) ProtoMessage() {} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageCommandQueueStateCommandQueueInfoT.ProtoReflect.Descriptor instead. +func (*CUserMessageCommandQueueStateCommandQueueInfoT) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{41, 0} +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) GetCommandsQueued() uint32 { + if x != nil && x.CommandsQueued != nil { + return *x.CommandsQueued + } + return 0 +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) GetCommandQueueDesiredSize() uint32 { + if x != nil && x.CommandQueueDesiredSize != nil { + return *x.CommandQueueDesiredSize + } + return 0 +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) GetStarvedCommandTicks() uint32 { + if x != nil && x.StarvedCommandTicks != nil { + return *x.StarvedCommandTicks + } + return 0 +} + +func (x *CUserMessageCommandQueueStateCommandQueueInfoT) GetTimeDilationPercent() int32 { + if x != nil && x.TimeDilationPercent != nil { + return *x.TimeDilationPercent + } + return 0 +} + +type CUserMessage_UtilMsg_Response_ItemDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Hash *int32 `protobuf:"varint,2,opt,name=hash" json:"hash,omitempty"` + Crc *int32 `protobuf:"varint,3,opt,name=crc" json:"crc,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) Reset() { + *x = CUserMessage_UtilMsg_Response_ItemDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_UtilMsg_Response_ItemDetail) ProtoMessage() {} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_UtilMsg_Response_ItemDetail.ProtoReflect.Descriptor instead. +func (*CUserMessage_UtilMsg_Response_ItemDetail) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{47, 0} +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) GetHash() int32 { + if x != nil && x.Hash != nil { + return *x.Hash + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) GetCrc() int32 { + if x != nil && x.Crc != nil { + return *x.Crc + } + return 0 +} + +func (x *CUserMessage_UtilMsg_Response_ItemDetail) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type CUserMessage_DllStatus_CVDiagnostic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Extended *uint32 `protobuf:"varint,2,opt,name=extended" json:"extended,omitempty"` + Value *uint64 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"` + StringValue *string `protobuf:"bytes,4,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) Reset() { + *x = CUserMessage_DllStatus_CVDiagnostic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_DllStatus_CVDiagnostic) ProtoMessage() {} + +func (x *CUserMessage_DllStatus_CVDiagnostic) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_DllStatus_CVDiagnostic.ProtoReflect.Descriptor instead. +func (*CUserMessage_DllStatus_CVDiagnostic) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{48, 0} +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) GetExtended() uint32 { + if x != nil && x.Extended != nil { + return *x.Extended + } + return 0 +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) GetValue() uint64 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *CUserMessage_DllStatus_CVDiagnostic) GetStringValue() string { + if x != nil && x.StringValue != nil { + return *x.StringValue + } + return "" +} + +type CUserMessage_Inventory_Response_InventoryDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Primary *int64 `protobuf:"varint,2,opt,name=primary" json:"primary,omitempty"` + Offset *int64 `protobuf:"varint,3,opt,name=offset" json:"offset,omitempty"` + First *int64 `protobuf:"varint,4,opt,name=first" json:"first,omitempty"` + Base *int64 `protobuf:"varint,5,opt,name=base" json:"base,omitempty"` + Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` + BaseName *string `protobuf:"bytes,7,opt,name=base_name,json=baseName" json:"base_name,omitempty"` + BaseDetail *int32 `protobuf:"varint,8,opt,name=base_detail,json=baseDetail" json:"base_detail,omitempty"` + BaseTime *int32 `protobuf:"varint,9,opt,name=base_time,json=baseTime" json:"base_time,omitempty"` + BaseHash *int32 `protobuf:"varint,10,opt,name=base_hash,json=baseHash" json:"base_hash,omitempty"` +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) Reset() { + *x = CUserMessage_Inventory_Response_InventoryDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_Inventory_Response_InventoryDetail) ProtoMessage() {} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_Inventory_Response_InventoryDetail.ProtoReflect.Descriptor instead. +func (*CUserMessage_Inventory_Response_InventoryDetail) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{50, 0} +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetPrimary() int64 { + if x != nil && x.Primary != nil { + return *x.Primary + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetOffset() int64 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetFirst() int64 { + if x != nil && x.First != nil { + return *x.First + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetBase() int64 { + if x != nil && x.Base != nil { + return *x.Base + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetBaseName() string { + if x != nil && x.BaseName != nil { + return *x.BaseName + } + return "" +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetBaseDetail() int32 { + if x != nil && x.BaseDetail != nil { + return *x.BaseDetail + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetBaseTime() int32 { + if x != nil && x.BaseTime != nil { + return *x.BaseTime + } + return 0 +} + +func (x *CUserMessage_Inventory_Response_InventoryDetail) GetBaseHash() int32 { + if x != nil && x.BaseHash != nil { + return *x.BaseHash + } + return 0 +} + +type CUserMessageRequestDiagnostic_Diagnostic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Offset *int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + Param *int32 `protobuf:"varint,3,opt,name=param" json:"param,omitempty"` + Length *int32 `protobuf:"varint,4,opt,name=length" json:"length,omitempty"` + Type *int32 `protobuf:"varint,5,opt,name=type" json:"type,omitempty"` +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) Reset() { + *x = CUserMessageRequestDiagnostic_Diagnostic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessageRequestDiagnostic_Diagnostic) ProtoMessage() {} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessageRequestDiagnostic_Diagnostic.ProtoReflect.Descriptor instead. +func (*CUserMessageRequestDiagnostic_Diagnostic) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{51, 0} +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) GetOffset() int64 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) GetParam() int32 { + if x != nil && x.Param != nil { + return *x.Param + } + return 0 +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) GetLength() int32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +func (x *CUserMessageRequestDiagnostic_Diagnostic) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +type CUserMessage_Diagnostic_Response_Diagnostic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` + Offset *int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + Param *int32 `protobuf:"varint,3,opt,name=param" json:"param,omitempty"` + Length *int32 `protobuf:"varint,4,opt,name=length" json:"length,omitempty"` + Detail [][]byte `protobuf:"bytes,5,rep,name=detail" json:"detail,omitempty"` + Base *int64 `protobuf:"varint,6,opt,name=base" json:"base,omitempty"` + Range *int64 `protobuf:"varint,7,opt,name=range" json:"range,omitempty"` + Type *int32 `protobuf:"varint,8,opt,name=type" json:"type,omitempty"` +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) Reset() { + *x = CUserMessage_Diagnostic_Response_Diagnostic{} + if protoimpl.UnsafeEnabled { + mi := &file_s2_usermessages_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CUserMessage_Diagnostic_Response_Diagnostic) ProtoMessage() {} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) ProtoReflect() protoreflect.Message { + mi := &file_s2_usermessages_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CUserMessage_Diagnostic_Response_Diagnostic.ProtoReflect.Descriptor instead. +func (*CUserMessage_Diagnostic_Response_Diagnostic) Descriptor() ([]byte, []int) { + return file_s2_usermessages_proto_rawDescGZIP(), []int{52, 0} +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetIndex() int32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetOffset() int64 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetParam() int32 { + if x != nil && x.Param != nil { + return *x.Param + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetLength() int32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetDetail() [][]byte { + if x != nil { + return x.Detail + } + return nil +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetBase() int64 { + if x != nil && x.Base != nil { + return *x.Base + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetRange() int64 { + if x != nil && x.Range != nil { + return *x.Range + } + return 0 +} + +func (x *CUserMessage_Diagnostic_Response_Diagnostic) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +var File_s2_usermessages_proto protoreflect.FileDescriptor + +var file_s2_usermessages_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x73, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x1a, 0x19, 0x73, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x61, + 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x40, 0x0a, + 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x63, 0x68, + 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x18, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x0a, + 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x92, + 0x01, 0x0a, 0x1e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, + 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x9b, 0x01, 0x0a, 0x23, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x1f, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x38, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x1c, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x63, + 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, + 0x6e, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, + 0x0a, 0x14, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x62, 0x6c, + 0x65, 0x6e, 0x64, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, + 0x65, 0x72, 0x22, 0x77, 0x0a, 0x10, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x46, 0x61, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x85, 0x01, 0x0a, 0x11, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x68, 0x61, 0x6b, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x14, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x72, 0x12, 0x52, 0x0a, 0x05, + 0x73, 0x68, 0x61, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x05, 0x73, 0x68, 0x61, 0x6b, 0x65, + 0x12, 0x53, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcf, 0x01, 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x54, 0x69, 0x6c, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x61, + 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x4f, 0x75, 0x74, 0x12, 0x4b, 0x0a, 0x05, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x13, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x24, + 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x68, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x22, 0xd2, 0x01, 0x0a, + 0x14, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x61, 0x79, + 0x54, 0x65, 0x78, 0x74, 0x32, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x68, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x34, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x75, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, + 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x32, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x32, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x2f, 0x0a, 0x13, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x48, 0x55, 0x44, 0x22, 0x49, 0x0a, 0x15, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x22, 0x9c, + 0x01, 0x0a, 0x1a, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x61, + 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7c, 0x0a, + 0x15, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x56, 0x6f, 0x69, + 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x61, 0x6d, 0x65, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0e, 0x67, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x12, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x62, 0x0a, + 0x1a, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x61, 0x79, + 0x54, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, + 0x74, 0x22, 0xda, 0x01, 0x0a, 0x17, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x32, 0x0a, + 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6c, 0x6f, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x34, + 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x61, 0x6d, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x61, 0x6d, 0x6d, 0x6f, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x65, 0x6e, 0x75, + 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x6d, 0x6f, 0x72, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x96, + 0x01, 0x0a, 0x16, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x5b, 0x0a, 0x08, 0x72, 0x6f, 0x6c, + 0x6c, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x3a, 0x09, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x08, 0x72, 0x6f, + 0x6c, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x6c, 0x6f, 0x67, + 0x6f, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x70, 0x0a, 0x18, 0x43, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x4a, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x43, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x54, 0x0a, 0x0a, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, + 0x73, 0x67, 0x22, 0x9a, 0x01, 0x0a, 0x1d, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x65, + 0x63, 0x61, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x63, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x0a, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, + 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x22, + 0xc5, 0x01, 0x0a, 0x1c, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x12, 0x4f, 0x0a, 0x07, 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x69, 0x6d, 0x70, 0x75, 0x6c, 0x73, + 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x22, 0xd8, 0x02, 0x0a, 0x15, 0x43, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x53, 0x70, 0x61, 0x72, + 0x6b, 0x12, 0x4d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, + 0x69, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x74, 0x68, 0x69, 0x63, 0x6b, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0a, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, + 0x73, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x16, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x69, 0x78, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x4b, 0x0a, 0x05, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, + 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, + 0x67, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x22, 0xe8, 0x02, 0x0a, + 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x61, 0x74, 0x61, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x6e, 0x52, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x44, 0x72, 0x69, 0x76, 0x65, 0x6e, 0x1a, 0x7d, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x44, 0x61, 0x74, 0x61, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, + 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf9, 0x4a, 0x0a, 0x18, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x12, 0x73, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, + 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x3a, + 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x45, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x8e, 0x01, 0x0a, 0x16, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x7b, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x7e, 0x0a, + 0x10, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x0f, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x9a, 0x01, + 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, + 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, + 0x45, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x66, 0x77, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x46, 0x77, 0x64, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x52, + 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, + 0x77, 0x64, 0x12, 0x97, 0x01, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x4f, 0x42, + 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x52, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x94, 0x01, 0x0a, + 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x16, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x14, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x12, 0x9b, 0x01, 0x0a, + 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x64, 0x72, 0x61, 0x77, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, + 0x52, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, 0x12, 0x98, 0x01, 0x0a, 0x1a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x17, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x46, + 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0xa7, 0x01, 0x0a, 0x1f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x60, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x1c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x8e, 0x01, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x9b, 0x01, 0x0a, 0x1b, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x5f, 0x66, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, + 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, + 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x6f, 0x57, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x18, 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x46, 0x6f, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x7f, + 0x0a, 0x11, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0f, + 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x9f, 0x01, 0x0a, 0x1d, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x66, 0x6f, + 0x77, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x57, 0x52, 0x19, 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6f, + 0x77, 0x12, 0x8f, 0x01, 0x0a, 0x17, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x14, 0x73, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x12, 0x98, 0x01, 0x0a, 0x1a, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x17, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x8b, + 0x01, 0x0a, 0x15, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x13, 0x73, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, + 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, + 0x1d, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x19, 0x73, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0xa3, + 0x01, 0x0a, 0x1f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x73, + 0x61, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, 0x74, + 0x41, 0x6e, 0x64, 0x44, 0x65, 0x73, 0x61, 0x74, 0x52, 0x1a, 0x73, 0x65, 0x74, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, 0x74, 0x41, 0x6e, 0x64, 0x44, + 0x65, 0x73, 0x61, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x18, + 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, + 0x14, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, + 0x61, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x55, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, + 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, + 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x61, 0x6e, + 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x43, 0x61, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x17, 0x73, 0x65, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x14, 0x73, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x97, 0x01, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0xb3, 0x01, + 0x0a, 0x23, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x7a, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x64, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x52, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x1a, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xf1, 0x02, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x2e, + 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, + 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, + 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x47, + 0x0a, 0x1b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, + 0x66, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x18, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x56, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x61, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, + 0x61, 0x6d, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, + 0x3e, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x42, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x6c, 0x79, 0x1a, 0x7a, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x12, + 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, + 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, + 0x35, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, + 0xc7, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x3a, + 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x49, 0x6d, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x65, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x63, 0x61, 0x70, 0x1a, 0x91, 0x01, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x4f, 0x42, 0x53, + 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x92, 0x01, + 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x46, 0x77, 0x64, 0x5f, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x1a, 0x89, 0x03, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x4f, 0x42, 0x53, 0x4f, + 0x4c, 0x45, 0x54, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x60, 0x0a, 0x10, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x64, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x02, + 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x02, 0x75, 0x70, 0x12, 0x49, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x1a, 0xa5, + 0x02, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, + 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, + 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x90, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, + 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xf1, 0x01, 0x0a, 0x14, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x0c, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x52, 0x0b, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xf5, 0x03, + 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x3a, + 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x11, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x57, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x0d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, + 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x74, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, + 0x2f, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x3b, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, 0x12, 0x1f, 0x0a, 0x0b, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x64, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x72, 0x61, 0x77, 0x1a, 0x9b, 0x01, + 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6c, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x4f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x77, 0x12, 0x2d, 0x0a, 0x0d, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0c, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x98, 0x01, 0x0a, 0x14, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, + 0x37, 0x37, 0x32, 0x31, 0x35, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, + 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, + 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x93, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x6f, 0x57, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x66, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x2c, 0x0a, 0x12, 0x66, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x66, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x32, 0x12, 0x1d, 0x0a, + 0x0a, 0x66, 0x6f, 0x77, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x66, 0x6f, 0x77, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x1a, 0x38, 0x0a, 0x19, + 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x57, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x5f, 0x66, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x77, 0x1a, 0x5a, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x1a, 0x63, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x25, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x5f, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, + 0x3a, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x66, 0x6c, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x46, 0x0a, 0x1a, 0x53, + 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, + 0x74, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x73, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, 0x74, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x65, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, + 0x73, 0x61, 0x74, 0x1a, 0x36, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, + 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x32, 0x0a, 0x11, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x1a, + 0x60, 0x0a, 0x20, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x46, 0x72, 0x65, 0x65, 0x7a, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x1a, 0xb8, 0x09, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x0d, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x76, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x96, 0x01, 0x0a, 0x0e, 0x65, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, + 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x89, 0x01, 0x0a, 0x12, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x4b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, + 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, + 0x43, 0x4d, 0x73, 0x67, 0x51, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x06, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, + 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5f, 0x0a, 0x0e, 0x45, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, + 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, + 0x31, 0x35, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2a, 0x05, 0x08, 0x64, + 0x10, 0xca, 0x01, 0x22, 0x2e, 0x0a, 0x11, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x18, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, + 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x41, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x46, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, + 0x01, 0x0a, 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x41, 0x6e, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x03, 0x0a, + 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, + 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x6c, 0x6f, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x5d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, + 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x52, + 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x1a, 0xe4, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x13, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x69, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x43, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x57, 0x6f, 0x72, + 0x6c, 0x64, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x73, 0x73, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x73, + 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x61, + 0x64, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x41, 0x64, 0x64, 0x22, + 0x3c, 0x0a, 0x1b, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3e, 0x0a, + 0x20, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x67, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, + 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x64, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x8d, 0x01, + 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x75, 0x74, 0x69, 0x6c, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x32, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x75, + 0x74, 0x69, 0x6c, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, + 0x33, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x74, 0x69, 0x6c, 0x35, 0x22, 0xbb, 0x04, + 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x55, + 0x74, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x63, 0x72, + 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x63, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x04, + 0x63, 0x72, 0x63, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x32, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x08, 0x63, 0x72, 0x63, 0x50, 0x61, 0x72, 0x74, 0x32, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x75, 0x0a, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, + 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, + 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, + 0x69, 0x74, 0x65, 0x6d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x69, 0x74, 0x65, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x1a, 0x5c, 0x0a, + 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc2, 0x03, 0x0a, 0x16, + 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, + 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x70, 0x0a, 0x0b, 0x64, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, + 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2e, 0x43, 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0x73, 0x0a, 0x0c, 0x43, + 0x56, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x6e, 0x0a, 0x1c, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0xc0, 0x07, 0x0a, 0x1f, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x03, 0x63, 0x72, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x73, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x65, 0x72, 0x66, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x7c, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, + 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x32, 0x12, 0x7e, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x33, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, + 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x1a, 0x8f, 0x02, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, + 0x61, 0x73, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, + 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x48, + 0x61, 0x73, 0x68, 0x22, 0x94, 0x02, 0x0a, 0x1d, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x75, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, + 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0x7c, 0x0a, 0x0a, + 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x20, 0x43, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x78, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x73, 0x5f, 0x77, 0x61, 0x2e, 0x64, 0x65, 0x6d, 0x6f, + 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x73, 0x5f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x73, 0x32, + 0x2e, 0x43, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0xbe, 0x01, 0x0a, 0x0a, 0x44, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0xc4, 0x08, 0x0a, 0x11, + 0x45, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x41, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4d, + 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x66, 0x12, + 0x19, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x10, 0x67, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, + 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x10, 0x68, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x10, 0x69, 0x12, 0x0b, 0x0a, 0x07, + 0x55, 0x4d, 0x5f, 0x46, 0x61, 0x64, 0x65, 0x10, 0x6a, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x10, 0x6b, 0x12, 0x0d, 0x0a, 0x09, 0x55, + 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x4d, 0x73, 0x67, 0x10, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4d, + 0x5f, 0x48, 0x75, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x6f, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4d, + 0x5f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x10, 0x71, 0x12, 0x13, + 0x0a, 0x0f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x10, 0x72, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, + 0x55, 0x44, 0x10, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4d, 0x5f, 0x52, 0x75, 0x6d, 0x62, 0x6c, + 0x65, 0x10, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x10, 0x75, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x32, 0x10, 0x76, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x77, 0x12, 0x0c, 0x0a, 0x08, 0x55, + 0x4d, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x78, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, + 0x53, 0x68, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x72, 0x10, 0x79, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4d, + 0x5f, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x10, 0x7c, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4d, + 0x5f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x54, 0x69, 0x6c, 0x74, 0x10, 0x7d, 0x12, 0x11, 0x0a, + 0x0c, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x10, 0x80, 0x01, + 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x10, 0x82, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x69, + 0x63, 0x6b, 0x75, 0x70, 0x10, 0x83, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x4d, 0x5f, 0x41, 0x6d, + 0x6d, 0x6f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x10, 0x84, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x55, + 0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x65, 0x6e, 0x75, 0x10, 0x86, 0x01, 0x12, 0x12, 0x0a, + 0x0d, 0x55, 0x4d, 0x5f, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x4d, 0x73, 0x67, 0x10, 0x87, + 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x10, + 0x8e, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x8f, 0x01, 0x12, 0x16, 0x0a, 0x11, + 0x55, 0x4d, 0x5f, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x10, 0x90, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x10, 0x91, 0x01, 0x12, 0x10, 0x0a, + 0x0b, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x92, 0x01, 0x12, + 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x94, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x41, + 0x6e, 0x69, 0x6d, 0x47, 0x72, 0x61, 0x70, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x95, + 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x10, 0x96, 0x01, 0x12, 0x1c, + 0x0a, 0x17, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x10, 0x97, 0x01, 0x12, 0x19, 0x0a, 0x14, + 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x98, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x73, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x10, 0x99, + 0x01, 0x12, 0x17, 0x0a, 0x12, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x9a, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4d, + 0x5f, 0x4c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x9b, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, + 0x9c, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x9d, 0x01, 0x12, 0x1a, 0x0a, + 0x15, 0x55, 0x4d, 0x5f, 0x55, 0x74, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x9e, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, + 0x44, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x10, 0x9f, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa0, 0x01, 0x12, 0x19, + 0x0a, 0x14, 0x55, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa1, 0x01, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x4d, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x10, 0xa2, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0xa3, 0x01, + 0x12, 0x10, 0x0a, 0x0b, 0x55, 0x4d, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, + 0xc8, 0x01, 0x2a, 0x94, 0x01, 0x0a, 0x13, 0x45, 0x42, 0x61, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x0d, 0x45, 0x4d, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x4a, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x10, 0x88, 0x01, 0x12, 0x15, + 0x0a, 0x10, 0x45, 0x4d, 0x5f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x79, 0x10, 0x89, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x4d, 0x5f, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x63, 0x61, 0x6c, 0x73, 0x10, 0x8a, 0x01, 0x12, 0x16, + 0x0a, 0x11, 0x45, 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6f, + 0x72, 0x63, 0x65, 0x10, 0x8b, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x45, 0x4d, 0x5f, 0x44, 0x6f, 0x53, + 0x70, 0x61, 0x72, 0x6b, 0x10, 0x8c, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x45, 0x4d, 0x5f, 0x46, 0x69, + 0x78, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x10, 0x8d, 0x01, 0x2a, 0x6f, 0x0a, 0x09, 0x65, 0x52, 0x6f, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x09, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x0e, + 0x0a, 0x0a, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x4a, 0x4f, + 0x49, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4f, 0x55, 0x54, 0x54, 0x52, 0x4f, 0x10, 0x03, 0x2a, 0xbe, 0x0b, 0x0a, 0x10, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, + 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, 0x4d, 0x45, 0x5f, + 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, + 0x2e, 0x0a, 0x2a, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, + 0x32, 0x0a, 0x2e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, + 0x43, 0x4b, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x10, 0x05, + 0x12, 0x2d, 0x0a, 0x29, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, + 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x06, 0x12, + 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, + 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x10, 0x07, 0x12, 0x31, 0x0a, 0x2d, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, + 0x49, 0x4e, 0x56, 0x4f, 0x4c, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x47, + 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, + 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4c, 0x45, 0x41, + 0x53, 0x45, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x0a, 0x12, 0x2b, 0x0a, + 0x27, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x4f, + 0x55, 0x4c, 0x44, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x41, + 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, + 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x4f, 0x5a, 0x45, 0x4e, + 0x10, 0x0c, 0x12, 0x3f, 0x0a, 0x3b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, + 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, + 0x54, 0x10, 0x0d, 0x12, 0x36, 0x0a, 0x32, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, + 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x32, 0x0a, 0x2e, 0x47, + 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, + 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x46, + 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x0f, 0x12, + 0x28, 0x0a, 0x24, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x10, 0x12, 0x34, 0x0a, 0x30, 0x47, 0x41, 0x4d, + 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, + 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, + 0x55, 0x4c, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x46, 0x4f, 0x57, 0x10, 0x11, 0x12, + 0x37, 0x0a, 0x33, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, + 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x12, 0x12, 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, + 0x4f, 0x54, 0x10, 0x13, 0x12, 0x35, 0x0a, 0x31, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x55, 0x52, 0x45, 0x5f, + 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x10, 0x14, 0x12, 0x3d, 0x0a, 0x39, 0x47, + 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, + 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x45, 0x4e, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, + 0x52, 0x49, 0x43, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x15, 0x12, 0x3f, 0x0a, 0x3b, 0x47, 0x41, + 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, + 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x45, 0x4e, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4e, 0x54, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x53, 0x41, 0x54, 0x10, 0x16, 0x12, 0x2d, 0x0a, 0x29, 0x47, + 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, + 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, + 0x4f, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x10, 0x17, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x41, + 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, + 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x54, + 0x4f, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x18, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x41, 0x4d, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, + 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x45, + 0x5a, 0x45, 0x10, 0x19, 0x12, 0x37, 0x0a, 0x33, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x56, 0x41, + 0x4c, 0x55, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x58, 0x54, 0x10, 0x1a, 0x12, 0x30, 0x0a, + 0x2c, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x1b, 0x12, + 0x3a, 0x0a, 0x36, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x46, + 0x52, 0x45, 0x45, 0x5a, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x1c, 0x2a, 0x74, 0x0a, 0x10, 0x45, + 0x48, 0x61, 0x70, 0x74, 0x69, 0x63, 0x50, 0x75, 0x6c, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x1a, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, + 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x00, 0x12, + 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, 0x49, + 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x01, + 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x48, 0x41, 0x50, 0x54, + 0x49, 0x43, 0x5f, 0x50, 0x55, 0x4c, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x4f, 0x4e, 0x47, 0x10, + 0x02, +} + +var ( + file_s2_usermessages_proto_rawDescOnce sync.Once + file_s2_usermessages_proto_rawDescData = file_s2_usermessages_proto_rawDesc +) + +func file_s2_usermessages_proto_rawDescGZIP() []byte { + file_s2_usermessages_proto_rawDescOnce.Do(func() { + file_s2_usermessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_s2_usermessages_proto_rawDescData) + }) + return file_s2_usermessages_proto_rawDescData +} + +var file_s2_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_s2_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 92) +var file_s2_usermessages_proto_goTypes = []interface{}{ + (EBaseUserMessages)(0), // 0: com.github.markus_wa.demoinfocs_golang.s2.EBaseUserMessages + (EBaseEntityMessages)(0), // 1: com.github.markus_wa.demoinfocs_golang.s2.EBaseEntityMessages + (ERollType)(0), // 2: com.github.markus_wa.demoinfocs_golang.s2.eRollType + (PARTICLE_MESSAGE)(0), // 3: com.github.markus_wa.demoinfocs_golang.s2.PARTICLE_MESSAGE + (EHapticPulseType)(0), // 4: com.github.markus_wa.demoinfocs_golang.s2.EHapticPulseType + (*CUserMessageAchievementEvent)(nil), // 5: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageAchievementEvent + (*CUserMessageCloseCaption)(nil), // 6: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCloseCaption + (*CUserMessageCloseCaptionDirect)(nil), // 7: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCloseCaptionDirect + (*CUserMessageCloseCaptionPlaceholder)(nil), // 8: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCloseCaptionPlaceholder + (*CUserMessageCurrentTimescale)(nil), // 9: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCurrentTimescale + (*CUserMessageDesiredTimescale)(nil), // 10: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageDesiredTimescale + (*CUserMessageFade)(nil), // 11: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageFade + (*CUserMessageShake)(nil), // 12: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShake + (*CUserMessageShakeDir)(nil), // 13: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShakeDir + (*CUserMessageScreenTilt)(nil), // 14: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageScreenTilt + (*CUserMessageSayText)(nil), // 15: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageSayText + (*CUserMessageSayText2)(nil), // 16: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageSayText2 + (*CUserMessageHudMsg)(nil), // 17: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageHudMsg + (*CUserMessageHudText)(nil), // 18: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageHudText + (*CUserMessageTextMsg)(nil), // 19: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageTextMsg + (*CUserMessageGameTitle)(nil), // 20: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageGameTitle + (*CUserMessageResetHUD)(nil), // 21: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageResetHUD + (*CUserMessageSendAudio)(nil), // 22: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageSendAudio + (*CUserMessageAudioParameter)(nil), // 23: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageAudioParameter + (*CUserMessageVoiceMask)(nil), // 24: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageVoiceMask + (*CUserMessageRequestState)(nil), // 25: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestState + (*CUserMessageRumble)(nil), // 26: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRumble + (*CUserMessageSayTextChannel)(nil), // 27: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageSayTextChannel + (*CUserMessageColoredText)(nil), // 28: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageColoredText + (*CUserMessageItemPickup)(nil), // 29: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageItemPickup + (*CUserMessageAmmoDenied)(nil), // 30: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageAmmoDenied + (*CUserMessageShowMenu)(nil), // 31: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShowMenu + (*CUserMessageCreditsMsg)(nil), // 32: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCreditsMsg + (*CEntityMessagePlayJingle)(nil), // 33: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessagePlayJingle + (*CEntityMessageScreenOverlay)(nil), // 34: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageScreenOverlay + (*CEntityMessageRemoveAllDecals)(nil), // 35: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageRemoveAllDecals + (*CEntityMessagePropagateForce)(nil), // 36: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessagePropagateForce + (*CEntityMessageDoSpark)(nil), // 37: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageDoSpark + (*CEntityMessageFixAngle)(nil), // 38: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageFixAngle + (*CUserMessageCameraTransition)(nil), // 39: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCameraTransition + (*CUserMsg_ParticleManager)(nil), // 40: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager + (*CUserMsg_HudError)(nil), // 41: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_HudError + (*CUserMsg_CustomGameEvent)(nil), // 42: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_CustomGameEvent + (*CUserMessageHapticsManagerPulse)(nil), // 43: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageHapticsManagerPulse + (*CUserMessageHapticsManagerEffect)(nil), // 44: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageHapticsManagerEffect + (*CUserMessageAnimStateGraphState)(nil), // 45: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageAnimStateGraphState + (*CUserMessageCommandQueueState)(nil), // 46: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCommandQueueState + (*CUserMessageUpdateCssClasses)(nil), // 47: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageUpdateCssClasses + (*CUserMessageServerFrameTime)(nil), // 48: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageServerFrameTime + (*CUserMessageLagCompensationError)(nil), // 49: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageLagCompensationError + (*CUserMessageRequestDllStatus)(nil), // 50: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestDllStatus + (*CUserMessageRequestUtilAction)(nil), // 51: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestUtilAction + (*CUserMessage_UtilMsg_Response)(nil), // 52: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_UtilMsg_Response + (*CUserMessage_DllStatus)(nil), // 53: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_DllStatus + (*CUserMessageRequestInventory)(nil), // 54: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestInventory + (*CUserMessage_Inventory_Response)(nil), // 55: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response + (*CUserMessageRequestDiagnostic)(nil), // 56: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestDiagnostic + (*CUserMessage_Diagnostic_Response)(nil), // 57: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Diagnostic_Response + (*CUserMessageCameraTransition_Transition_DataDriven)(nil), // 58: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCameraTransition.Transition_DataDriven + (*CUserMsg_ParticleManager_ReleaseParticleIndex)(nil), // 59: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ReleaseParticleIndex + (*CUserMsg_ParticleManager_CreateParticle)(nil), // 60: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.CreateParticle + (*CUserMsg_ParticleManager_DestroyParticle)(nil), // 61: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticle + (*CUserMsg_ParticleManager_DestroyParticleInvolving)(nil), // 62: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticleInvolving + (*CUserMsg_ParticleManager_DestroyParticleNamed)(nil), // 63: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticleNamed + (*CUserMsg_ParticleManager_UpdateParticle_OBSOLETE)(nil), // 64: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticle_OBSOLETE + (*CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE)(nil), // 65: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE + (*CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE)(nil), // 66: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE + (*CUserMsg_ParticleManager_UpdateParticleTransform)(nil), // 67: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleTransform + (*CUserMsg_ParticleManager_UpdateParticleFallback)(nil), // 68: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFallback + (*CUserMsg_ParticleManager_UpdateParticleOffset)(nil), // 69: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOffset + (*CUserMsg_ParticleManager_UpdateParticleEnt)(nil), // 70: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleEnt + (*CUserMsg_ParticleManager_UpdateParticleSetFrozen)(nil), // 71: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleSetFrozen + (*CUserMsg_ParticleManager_UpdateParticleShouldDraw)(nil), // 72: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleShouldDraw + (*CUserMsg_ParticleManager_ChangeControlPointAttachment)(nil), // 73: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ChangeControlPointAttachment + (*CUserMsg_ParticleManager_UpdateEntityPosition)(nil), // 74: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateEntityPosition + (*CUserMsg_ParticleManager_SetParticleFoWProperties)(nil), // 75: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleFoWProperties + (*CUserMsg_ParticleManager_SetParticleShouldCheckFoW)(nil), // 76: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleShouldCheckFoW + (*CUserMsg_ParticleManager_SetControlPointModel)(nil), // 77: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetControlPointModel + (*CUserMsg_ParticleManager_SetControlPointSnapshot)(nil), // 78: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetControlPointSnapshot + (*CUserMsg_ParticleManager_SetParticleText)(nil), // 79: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleText + (*CUserMsg_ParticleManager_SetTextureAttribute)(nil), // 80: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetTextureAttribute + (*CUserMsg_ParticleManager_SetSceneObjectGenericFlag)(nil), // 81: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetSceneObjectGenericFlag + (*CUserMsg_ParticleManager_SetSceneObjectTintAndDesat)(nil), // 82: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetSceneObjectTintAndDesat + (*CUserMsg_ParticleManager_ParticleSkipToTime)(nil), // 83: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleSkipToTime + (*CUserMsg_ParticleManager_ParticleCanFreeze)(nil), // 84: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleCanFreeze + (*CUserMsg_ParticleManager_ParticleFreezeTransitionOverride)(nil), // 85: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleFreezeTransitionOverride + (*CUserMsg_ParticleManager_SetParticleNamedValueContext)(nil), // 86: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue)(nil), // 87: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue)(nil), // 88: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue)(nil), // 89: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue + (*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext)(nil), // 90: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext + (*CUserMessageCommandQueueStateCommandQueueInfoT)(nil), // 91: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCommandQueueState.command_queue_info_t + (*CUserMessage_UtilMsg_Response_ItemDetail)(nil), // 92: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_UtilMsg_Response.ItemDetail + (*CUserMessage_DllStatus_CVDiagnostic)(nil), // 93: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_DllStatus.CVDiagnostic + (*CUserMessage_Inventory_Response_InventoryDetail)(nil), // 94: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.InventoryDetail + (*CUserMessageRequestDiagnostic_Diagnostic)(nil), // 95: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestDiagnostic.Diagnostic + (*CUserMessage_Diagnostic_Response_Diagnostic)(nil), // 96: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Diagnostic_Response.Diagnostic + (*CMsgVector)(nil), // 97: com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + (*CEntityMsg)(nil), // 98: com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + (*CMsgQAngle)(nil), // 99: com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + (*CMsgQuaternion)(nil), // 100: com.github.markus_wa.demoinfocs_golang.s2.CMsgQuaternion +} +var file_s2_usermessages_proto_depIdxs = []int32{ + 12, // 0: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShakeDir.shake:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShake + 97, // 1: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageShakeDir.direction:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 2: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageScreenTilt.angle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 2, // 3: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCreditsMsg.rolltype:type_name -> com.github.markus_wa.demoinfocs_golang.s2.eRollType + 98, // 4: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessagePlayJingle.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 98, // 5: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageScreenOverlay.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 98, // 6: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageRemoveAllDecals.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 97, // 7: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessagePropagateForce.impulse:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 98, // 8: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessagePropagateForce.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 97, // 9: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageDoSpark.origin:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 98, // 10: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageDoSpark.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 99, // 11: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageFixAngle.angle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 98, // 12: com.github.markus_wa.demoinfocs_golang.s2.CEntityMessageFixAngle.entity_msg:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CEntityMsg + 58, // 13: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCameraTransition.params_data_driven:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCameraTransition.Transition_DataDriven + 3, // 14: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.type:type_name -> com.github.markus_wa.demoinfocs_golang.s2.PARTICLE_MESSAGE + 59, // 15: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.release_particle_index:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ReleaseParticleIndex + 60, // 16: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.create_particle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.CreateParticle + 61, // 17: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.destroy_particle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticle + 62, // 18: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.destroy_particle_involving:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticleInvolving + 64, // 19: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticle_OBSOLETE + 65, // 20: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_fwd:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE + 66, // 21: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_orient:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE + 68, // 22: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_fallback:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFallback + 69, // 23: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_offset:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOffset + 70, // 24: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_ent:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleEnt + 72, // 25: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_should_draw:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleShouldDraw + 71, // 26: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_set_frozen:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleSetFrozen + 73, // 27: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.change_control_point_attachment:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ChangeControlPointAttachment + 74, // 28: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_entity_position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateEntityPosition + 75, // 29: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_particle_fow_properties:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleFoWProperties + 79, // 30: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_particle_text:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleText + 76, // 31: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_particle_should_check_fow:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleShouldCheckFoW + 77, // 32: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_control_point_model:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetControlPointModel + 78, // 33: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_control_point_snapshot:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetControlPointSnapshot + 80, // 34: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_texture_attribute:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetTextureAttribute + 81, // 35: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_scene_object_generic_flag:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetSceneObjectGenericFlag + 82, // 36: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_scene_object_tint_and_desat:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetSceneObjectTintAndDesat + 63, // 37: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.destroy_particle_named:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.DestroyParticleNamed + 83, // 38: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.particle_skip_to_time:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleSkipToTime + 84, // 39: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.particle_can_freeze:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleCanFreeze + 86, // 40: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.set_named_value_context:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext + 67, // 41: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.update_particle_transform:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleTransform + 85, // 42: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.particle_freeze_transition_override:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.ParticleFreezeTransitionOverride + 91, // 43: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCommandQueueState.command_queue_info:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessageCommandQueueState.command_queue_info_t + 92, // 44: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_UtilMsg_Response.itemdetails:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_UtilMsg_Response.ItemDetail + 93, // 45: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_DllStatus.diagnostics:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_DllStatus.CVDiagnostic + 94, // 46: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.inventories:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.InventoryDetail + 94, // 47: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.inventories2:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.InventoryDetail + 94, // 48: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.inventories3:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Inventory_Response.InventoryDetail + 95, // 49: com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestDiagnostic.diagnostics:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessageRequestDiagnostic.Diagnostic + 96, // 50: com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Diagnostic_Response.diagnostics:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMessage_Diagnostic_Response.Diagnostic + 97, // 51: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticle_OBSOLETE.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 52: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE.forward:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 53: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.forward:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 54: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.deprecated_right:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 55: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.up:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 56: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE.left:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 57: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleTransform.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 100, // 58: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleTransform.orientation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQuaternion + 97, // 59: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleFallback.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 60: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOffset.origin_offset:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 99, // 61: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleOffset.angle_offset:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 97, // 62: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleEnt.fallback_position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 97, // 63: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleEnt.offset_position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 99, // 64: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateParticleEnt.offset_angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 97, // 65: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.UpdateEntityPosition.position:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 87, // 66: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.float_values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.FloatContextValue + 88, // 67: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.vector_values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue + 89, // 68: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.transform_values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue + 90, // 69: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.ehandle_values:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.EHandleContext + 97, // 70: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue.value:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 99, // 71: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.angles:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgQAngle + 97, // 72: com.github.markus_wa.demoinfocs_golang.s2.CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue.translation:type_name -> com.github.markus_wa.demoinfocs_golang.s2.CMsgVector + 73, // [73:73] is the sub-list for method output_type + 73, // [73:73] is the sub-list for method input_type + 73, // [73:73] is the sub-list for extension type_name + 73, // [73:73] is the sub-list for extension extendee + 0, // [0:73] is the sub-list for field type_name +} + +func init() { file_s2_usermessages_proto_init() } +func file_s2_usermessages_proto_init() { + if File_s2_usermessages_proto != nil { + return + } + file_s2_networkbasetypes_proto_init() + if !protoimpl.UnsafeEnabled { + file_s2_usermessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageAchievementEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCloseCaption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCloseCaptionDirect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCloseCaptionPlaceholder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCurrentTimescale); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageDesiredTimescale); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageFade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageShake); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageShakeDir); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageScreenTilt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageSayText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageSayText2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageHudMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageHudText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageTextMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageGameTitle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageResetHUD); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageSendAudio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageAudioParameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageVoiceMask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRumble); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageSayTextChannel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageColoredText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageItemPickup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageAmmoDenied); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageShowMenu); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCreditsMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessagePlayJingle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessageScreenOverlay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessageRemoveAllDecals); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessagePropagateForce); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessageDoSpark); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CEntityMessageFixAngle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCameraTransition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_HudError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_CustomGameEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageHapticsManagerPulse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageHapticsManagerEffect); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageAnimStateGraphState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCommandQueueState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageUpdateCssClasses); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageServerFrameTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageLagCompensationError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestDllStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestUtilAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_UtilMsg_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_DllStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestInventory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_Inventory_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestDiagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_Diagnostic_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCameraTransition_Transition_DataDriven); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_ReleaseParticleIndex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_CreateParticle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_DestroyParticle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_DestroyParticleInvolving); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_DestroyParticleNamed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticle_OBSOLETE); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleFwd_OBSOLETE); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleOrient_OBSOLETE); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleTransform); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleFallback); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleOffset); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleEnt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleSetFrozen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateParticleShouldDraw); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_ChangeControlPointAttachment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_UpdateEntityPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleFoWProperties); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleShouldCheckFoW); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetControlPointModel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetControlPointSnapshot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetTextureAttribute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetSceneObjectGenericFlag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetSceneObjectTintAndDesat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_ParticleSkipToTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_ParticleCanFreeze); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_ParticleFreezeTransitionOverride); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_FloatContextValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_VectorContextValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_TransformContextValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMsg_ParticleManager_SetParticleNamedValueContext_EHandleContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageCommandQueueStateCommandQueueInfoT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_UtilMsg_Response_ItemDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_DllStatus_CVDiagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_Inventory_Response_InventoryDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessageRequestDiagnostic_Diagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_s2_usermessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CUserMessage_Diagnostic_Response_Diagnostic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_s2_usermessages_proto_rawDesc, + NumEnums: 5, + NumMessages: 92, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_s2_usermessages_proto_goTypes, + DependencyIndexes: file_s2_usermessages_proto_depIdxs, + EnumInfos: file_s2_usermessages_proto_enumTypes, + MessageInfos: file_s2_usermessages_proto_msgTypes, + }.Build() + File_s2_usermessages_proto = out.File + file_s2_usermessages_proto_rawDesc = nil + file_s2_usermessages_proto_goTypes = nil + file_s2_usermessages_proto_depIdxs = nil +} diff --git a/pkg/demoinfocs/net_messages.go b/pkg/demoinfocs/net_messages.go index b112798f..1a205065 100644 --- a/pkg/demoinfocs/net_messages.go +++ b/pkg/demoinfocs/net_messages.go @@ -8,12 +8,14 @@ import ( "github.com/markus-wa/ice-cipher-go/pkg/ice" "google.golang.org/protobuf/proto" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) -func (p *parser) handlePacketEntities(pe *msg.CSVCMsg_PacketEntities) { +func (p *parser) handlePacketEntitiesS1(pe *msg.CSVCMsg_PacketEntities) { defer func() { p.setError(recoverFromUnexpectedEOF(recover())) }() @@ -51,6 +53,16 @@ func (p *parser) handlePacketEntities(pe *msg.CSVCMsg_PacketEntities) { p.poolBitReader(r) } +func (p *parser) onEntity(e sendtables.Entity, op sendtables.EntityOp) error { + if op&sendtables.EntityOpCreated > 0 { + p.gameState.entities[e.ID()] = e + } else if op&sendtables.EntityOpDeleted > 0 { + delete(p.gameState.entities, e.ID()) + } + + return nil +} + func (p *parser) handleSetConVar(setConVar *msg.CNETMsg_SetConVar) { updated := make(map[string]string) for _, cvar := range setConVar.Convars.Cvars { @@ -63,6 +75,18 @@ func (p *parser) handleSetConVar(setConVar *msg.CNETMsg_SetConVar) { }) } +func (p *parser) handleSetConVarS2(setConVar *msgs2.CNETMsg_SetConVar) { + updated := make(map[string]string) + for _, cvar := range setConVar.Convars.Cvars { + updated[cvar.GetName()] = cvar.GetValue() + p.gameState.rules.conVars[cvar.GetName()] = cvar.GetValue() + } + + p.eventDispatcher.Dispatch(events.ConVarsUpdated{ + UpdatedConVars: updated, + }) +} + func (p *parser) handleServerInfo(srvInfo *msg.CSVCMsg_ServerInfo) { // srvInfo.MapCrc might be interesting as well p.tickInterval = srvInfo.GetTickInterval() @@ -73,6 +97,17 @@ func (p *parser) handleServerInfo(srvInfo *msg.CSVCMsg_ServerInfo) { }) } +// FIXME: combine with above +func (p *parser) handleServerInfoS2(srvInfo *msgs2.CSVCMsg_ServerInfo) { + // srvInfo.MapCrc might be interesting as well + p.tickInterval = srvInfo.GetTickInterval() + + p.eventDispatcher.Dispatch(events.TickRateInfoAvailable{ + TickRate: p.TickRate(), + TickTime: p.TickTime(), + }) +} + func (p *parser) handleEncryptedData(msg *msg.CSVCMsg_EncryptedData) { if msg.GetKeyType() != 2 { return diff --git a/pkg/demoinfocs/parser.go b/pkg/demoinfocs/parser.go index df64b3af..5ca54139 100644 --- a/pkg/demoinfocs/parser.go +++ b/pkg/demoinfocs/parser.go @@ -12,15 +12,33 @@ import ( "github.com/pkg/errors" "google.golang.org/protobuf/proto" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) //go:generate ifacemaker -f parser.go -f parsing.go -s parser -i Parser -p demoinfocs -D -y "Parser is an auto-generated interface for Parser, intended to be used when mockability is needed." -c "DO NOT EDIT: Auto generated" -o parser_interface.go +type sendTableParser interface { + ReadEnterPVS(r *bit.BitReader, index int, entities map[int]st.Entity, slot int) st.Entity + ServerClasses() st.ServerClasses + ParsePacket(b []byte) error + SetInstanceBaseline(classID int, data []byte) + OnDemoClassInfo(m *msgs2.CDemoClassInfo) error + OnServerInfo(m *msgs2.CSVCMsg_ServerInfo) error + OnPacketEntities(m *msgs2.CSVCMsg_PacketEntities) error + OnEntity(h st.EntityHandler) +} + +type createStringTable struct { + *msgs2.CSVCMsg_CreateStringTable + isS2 bool + s1MaxEntries *int32 +} + /* Parser can parse a CS:GO demo. Creating a new instance is done via NewParser(). @@ -49,7 +67,7 @@ type parser struct { // Important fields bitReader *bit.BitReader - stParser *st.SendTableParser + stParser sendTableParser additionalNetMessageCreators map[int]NetMessageCreator // Map of net-message-IDs to NetMessageCreators (for parsing custom net-messages) msgQueue chan any // Queue of net-messages msgDispatcher *dp.Dispatcher // Net-message dispatcher @@ -68,20 +86,22 @@ type parser struct { * Set to the client slot of the recording player. * Always -1 for GOTV demos. */ - recordingPlayerSlot int + recordingPlayerSlot int + disableMimicSource1GameEvents bool // Additional fields, mainly caching & tracking things - bombsiteA bombsite - bombsiteB bombsite - equipmentMapping map[*st.ServerClass]common.EquipmentType // Maps server classes to equipment-types - rawPlayers map[int]*common.PlayerInfo // Maps entity IDs to 'raw' player info - modelPreCache []string // Used to find out whether a weapon is a p250 or cz for example (same id) - triggers map[int]*boundingBoxInformation // Maps entity IDs to triggers (used for bombsites) - gameEventDescs map[int32]*msg.CSVCMsg_GameEventListDescriptorT // Maps game-event IDs to descriptors - grenadeModelIndices map[int]common.EquipmentType // Used to map model indices to grenades (used for grenade projectiles) - stringTables []*msg.CSVCMsg_CreateStringTable // Contains all created sendtables, needed when updating them - delayedEventHandlers []func() // Contains event handlers that need to be executed at the end of a tick (e.g. flash events because FlashDuration isn't updated before that) + bombsiteA bombsite + bombsiteB bombsite + equipmentMapping map[st.ServerClass]common.EquipmentType // Maps server classes to equipment-types + rawPlayers map[int]*common.PlayerInfo // Maps entity IDs to 'raw' player info + modelPreCache []string // Used to find out whether a weapon is a p250 or cz for example (same id) for Source 1 demos only + triggers map[int]*boundingBoxInformation // Maps entity IDs to triggers (used for bombsites) + gameEventDescs map[int32]*msg.CSVCMsg_GameEventListDescriptorT // Maps game-event IDs to descriptors + grenadeModelIndices map[int]common.EquipmentType // Used to map model indices to grenades (used for grenade projectiles) + equipmentTypePerModel map[uint64]common.EquipmentType // Used to retrieve the EquipmentType of grenade projectiles based on models value. Source 2 only. + stringTables []createStringTable // Contains all created sendtables, needed when updating them + delayedEventHandlers []func() // Contains event handlers that need to be executed at the end of a tick (e.g. flash events because FlashDuration isn't updated before that) } // NetMessageCreator creates additional net-messages to be dispatched to net-message handlers. @@ -328,6 +348,11 @@ type ParserConfig struct { // NetMessageDecryptionKey tells the parser how to decrypt certain encrypted net-messages. // See MatchInfoDecryptionKey() on how to retrieve the key from `match730_*.dem.info` files. NetMessageDecryptionKey []byte + + // DisableMimicSource1Events tells the parser to not mimic Source 1 game events for Source 2 demos. + // Unfortunately Source 2 demos *may* not contain Source 1 game events, that's why the parser will try to mimic them. + // It has an impact only with Source 2 demos and is false by default. + DisableMimicSource1Events bool } // DefaultParserConfig is the default Parser configuration used by NewParser(). @@ -343,19 +368,20 @@ func NewParserWithConfig(demostream io.Reader, config ParserConfig) Parser { // Init parser p.bitReader = bit.NewLargeBitReader(demostream) - p.stParser = st.NewSendTableParser() - p.equipmentMapping = make(map[*st.ServerClass]common.EquipmentType) + p.equipmentMapping = make(map[st.ServerClass]common.EquipmentType) p.rawPlayers = make(map[int]*common.PlayerInfo) p.triggers = make(map[int]*boundingBoxInformation) p.demoInfoProvider = demoInfoProvider{parser: &p} p.gameState = newGameState(p.demoInfoProvider) p.grenadeModelIndices = make(map[int]common.EquipmentType) + p.equipmentTypePerModel = make(map[uint64]common.EquipmentType) p.gameEventHandler = newGameEventHandler(&p, config.IgnoreErrBombsiteIndexNotFound) p.userMessageHandler = newUserMessageHandler(&p) p.bombsiteA.index = -1 p.bombsiteB.index = -1 p.decryptionKey = config.NetMessageDecryptionKey p.recordingPlayerSlot = -1 + p.disableMimicSource1GameEvents = config.DisableMimicSource1Events dispatcherCfg := dp.Config{ PanicHandler: func(v any) { @@ -366,11 +392,11 @@ func NewParserWithConfig(demostream io.Reader, config ParserConfig) Parser { p.eventDispatcher = dp.NewDispatcherWithConfig(dispatcherCfg) // Attach proto msg handlers - p.msgDispatcher.RegisterHandler(p.handlePacketEntities) + p.msgDispatcher.RegisterHandler(p.handlePacketEntitiesS1) p.msgDispatcher.RegisterHandler(p.handleGameEventList) p.msgDispatcher.RegisterHandler(p.handleGameEvent) - p.msgDispatcher.RegisterHandler(p.handleCreateStringTable) - p.msgDispatcher.RegisterHandler(p.handleUpdateStringTable) + p.msgDispatcher.RegisterHandler(p.handleCreateStringTableS1) + p.msgDispatcher.RegisterHandler(p.handleUpdateStringTableS1) p.msgDispatcher.RegisterHandler(p.handleUserMessage) p.msgDispatcher.RegisterHandler(p.handleSetConVar) p.msgDispatcher.RegisterHandler(p.handleFrameParsed) @@ -378,6 +404,14 @@ func NewParserWithConfig(demostream io.Reader, config ParserConfig) Parser { p.msgDispatcher.RegisterHandler(p.handleEncryptedData) p.msgDispatcher.RegisterHandler(p.gameState.handleIngameTickNumber) + // Source 2 + p.msgDispatcher.RegisterHandler(p.handleGameEventListS2) + p.msgDispatcher.RegisterHandler(p.handleGameEventS2) + p.msgDispatcher.RegisterHandler(p.handleServerInfoS2) + p.msgDispatcher.RegisterHandler(p.handleCreateStringTableS2) + p.msgDispatcher.RegisterHandler(p.handleUpdateStringTableS2) + p.msgDispatcher.RegisterHandler(p.handleSetConVarS2) + if config.MsgQueueBufferSize >= 0 { p.initMsgQueue(config.MsgQueueBufferSize) } @@ -392,10 +426,18 @@ func (p *parser) initMsgQueue(buf int) { p.msgDispatcher.AddQueues(p.msgQueue) } +func (p *parser) isSource2() bool { + return p.header.Filestamp == "PBDEMS2" +} + type demoInfoProvider struct { parser *parser } +func (p demoInfoProvider) IsSource2() bool { + return p.parser.isSource2() +} + func (p demoInfoProvider) IngameTick() int { return p.parser.gameState.IngameTick() } @@ -408,6 +450,14 @@ func (p demoInfoProvider) FindPlayerByHandle(handle int) *common.Player { return p.parser.gameState.Participants().FindByHandle(handle) } +func (p demoInfoProvider) FindPlayerByPawnHandle(handle uint64) *common.Player { + return p.parser.gameState.Participants().FindByPawnHandle(handle) +} + +func (p demoInfoProvider) FindEntityByHandle(handle uint64) st.Entity { + return p.parser.gameState.EntityByHandle(handle) +} + func (p demoInfoProvider) PlayerResourceEntity() st.Entity { return p.parser.gameState.playerResourceEntity } diff --git a/pkg/demoinfocs/parser_interface.go b/pkg/demoinfocs/parser_interface.go index 80c3d918..e2345f1f 100644 --- a/pkg/demoinfocs/parser_interface.go +++ b/pkg/demoinfocs/parser_interface.go @@ -5,8 +5,8 @@ package demoinfocs import ( "time" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" dp "github.com/markus-wa/godispatch" ) @@ -22,15 +22,15 @@ import ( // // Example (without error handling): // -// f, _ := os.Open("/path/to/demo.dem") -// p := dem.NewParser(f) -// defer p.Close() -// header := p.ParseHeader() -// fmt.Println("Map:", header.MapName) -// p.RegisterEventHandler(func(e events.BombExplode) { -// fmt.Printf(e.Site, "went BOOM!") -// }) -// p.ParseToEnd() +// f, _ := os.Open("/path/to/demo.dem") +// p := dem.NewParser(f) +// defer p.Close() +// header := p.ParseHeader() +// fmt.Println("Map:", header.MapName) +// p.RegisterEventHandler(func(e events.BombExplode) { +// fmt.Printf(e.Site, "went BOOM!") +// }) +// p.ParseToEnd() // // Prints out '{A/B} site went BOOM!' when a bomb explodes. type Parser interface { diff --git a/pkg/demoinfocs/parser_test.go b/pkg/demoinfocs/parser_test.go index d3064205..a5f7570a 100644 --- a/pkg/demoinfocs/parser_test.go +++ b/pkg/demoinfocs/parser_test.go @@ -11,7 +11,7 @@ import ( dispatch "github.com/markus-wa/godispatch" "github.com/stretchr/testify/assert" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" ) func TestParser_CurrentFrame(t *testing.T) { @@ -69,8 +69,8 @@ func TestParser_Progress_NoHeader(t *testing.T) { func TestRecoverFromUnexpectedEOF(t *testing.T) { assert.Nil(t, recoverFromUnexpectedEOF(nil)) - assert.Equal(t, ErrUnexpectedEndOfDemo, recoverFromUnexpectedEOF(io.ErrUnexpectedEOF)) - assert.Equal(t, ErrUnexpectedEndOfDemo, recoverFromUnexpectedEOF(io.EOF)) + assert.ErrorIs(t, recoverFromUnexpectedEOF(io.ErrUnexpectedEOF), ErrUnexpectedEndOfDemo) + assert.ErrorIs(t, recoverFromUnexpectedEOF(io.EOF), ErrUnexpectedEndOfDemo) assert.Panics(t, func() { r := recoverFromUnexpectedEOF(errors.New("test")) diff --git a/pkg/demoinfocs/parsing.go b/pkg/demoinfocs/parsing.go index bbdc606b..9645e6c9 100644 --- a/pkg/demoinfocs/parsing.go +++ b/pkg/demoinfocs/parsing.go @@ -7,22 +7,29 @@ import ( "sync" "time" + "github.com/golang/snappy" "github.com/markus-wa/go-unassert" dispatch "github.com/markus-wa/godispatch" "github.com/pkg/errors" "google.golang.org/protobuf/proto" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables2" + + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) const maxOsPath = 260 const ( playerWeaponPrefix = "m_hMyWeapons." + playerWeaponPrefixS2 = "m_pWeaponServices.m_hMyWeapons." playerWeaponPrePrefix = "bcc_nonlocaldata." gameRulesPrefix = "cs_gamerules_data" + gameRulesPrefixS2 = "m_pGameRules" ) // Parsing errors @@ -45,18 +52,33 @@ var ( func (p *parser) ParseHeader() (common.DemoHeader, error) { var h common.DemoHeader h.Filestamp = p.bitReader.ReadCString(8) - h.Protocol = p.bitReader.ReadSignedInt(32) - h.NetworkProtocol = p.bitReader.ReadSignedInt(32) - h.ServerName = p.bitReader.ReadCString(maxOsPath) - h.ClientName = p.bitReader.ReadCString(maxOsPath) - h.MapName = p.bitReader.ReadCString(maxOsPath) - h.GameDirectory = p.bitReader.ReadCString(maxOsPath) - h.PlaybackTime = time.Duration(p.bitReader.ReadFloat() * float32(time.Second)) - h.PlaybackTicks = p.bitReader.ReadSignedInt(32) - h.PlaybackFrames = p.bitReader.ReadSignedInt(32) - h.SignonLength = p.bitReader.ReadSignedInt(32) - - if h.Filestamp != "HL2DEMO" { + + switch h.Filestamp { + case "HL2DEMO": + h.Protocol = p.bitReader.ReadSignedInt(32) + h.NetworkProtocol = p.bitReader.ReadSignedInt(32) + h.ServerName = p.bitReader.ReadCString(maxOsPath) + h.ClientName = p.bitReader.ReadCString(maxOsPath) + h.MapName = p.bitReader.ReadCString(maxOsPath) + h.GameDirectory = p.bitReader.ReadCString(maxOsPath) + h.PlaybackTime = time.Duration(p.bitReader.ReadFloat() * float32(time.Second)) + h.PlaybackTicks = p.bitReader.ReadSignedInt(32) + h.PlaybackFrames = p.bitReader.ReadSignedInt(32) + h.SignonLength = p.bitReader.ReadSignedInt(32) + + p.stParser = st.NewSendTableParser() + + case "PBDEMS2": + p.bitReader.Skip(8 << 3) // skip 8 bytes + + p.stParser = sendtables2.NewParser() + + p.stParser.OnEntity(p.onEntity) + + p.RegisterNetMessageHandler(p.stParser.OnServerInfo) + p.RegisterNetMessageHandler(p.stParser.OnPacketEntities) + + default: return h, ErrInvalidFileType } @@ -106,6 +128,10 @@ func (p *parser) ParseToEnd() (err error) { if err == nil { err = p.error() } + + if err == nil { + p.ensurePlaybackValuesAreSet() + } }() if p.header == nil { @@ -115,8 +141,10 @@ func (p *parser) ParseToEnd() (err error) { } } + parseFrame := p.parseFrameFn() + for { - if !p.parseFrame() { + if !parseFrame() { return p.error() } @@ -132,7 +160,7 @@ func recoverFromUnexpectedEOF(r any) error { } if r == io.ErrUnexpectedEOF || r == io.EOF { - return ErrUnexpectedEndOfDemo + return errors.Wrap(ErrUnexpectedEndOfDemo, "unexpected EOF") } switch err := r.(type) { @@ -185,7 +213,7 @@ func (p *parser) ParseNextFrame() (moreFrames bool, err error) { } } - moreFrames = p.parseFrame() + moreFrames = p.parseFrameFn()() return moreFrames, p.error() } @@ -206,7 +234,7 @@ const ( ) //nolint:funlen,cyclop -func (p *parser) parseFrame() bool { +func (p *parser) parseFrameS1() bool { cmd := demoCommand(p.bitReader.ReadSingleByte()) // Send ingame tick number update @@ -232,9 +260,12 @@ func (p *parser) parseFrame() bool { case dcDataTables: p.msgDispatcher.SyncAllQueues() - p.bitReader.BeginChunk(p.bitReader.ReadSignedInt(32) << 3) - p.stParser.ParsePacket(p.bitReader) - p.bitReader.EndChunk() + b := p.bitReader.ReadBytes(p.bitReader.ReadSignedInt(32)) + + err := p.stParser.ParsePacket(b) + if err != nil { + panic(err) + } debugAllServerClasses(p.ServerClasses()) @@ -272,6 +303,109 @@ func (p *parser) parseFrame() bool { return true } +var demoCommandMsgsCreators = map[msgs2.EDemoCommands]NetMessageCreator{ + msgs2.EDemoCommands_DEM_Stop: func() proto.Message { return &msgs2.CDemoStop{} }, + msgs2.EDemoCommands_DEM_FileHeader: func() proto.Message { return &msgs2.CDemoFileHeader{} }, + msgs2.EDemoCommands_DEM_FileInfo: func() proto.Message { return &msgs2.CDemoFileInfo{} }, + msgs2.EDemoCommands_DEM_SyncTick: func() proto.Message { return &msgs2.CDemoSyncTick{} }, + msgs2.EDemoCommands_DEM_SendTables: func() proto.Message { return &msgs2.CDemoSendTables{} }, + msgs2.EDemoCommands_DEM_ClassInfo: func() proto.Message { return &msgs2.CDemoClassInfo{} }, + msgs2.EDemoCommands_DEM_StringTables: func() proto.Message { return &msgs2.CDemoStringTables{} }, + msgs2.EDemoCommands_DEM_Packet: func() proto.Message { return &msgs2.CDemoPacket{} }, + msgs2.EDemoCommands_DEM_SignonPacket: func() proto.Message { return &msgs2.CDemoPacket{} }, + msgs2.EDemoCommands_DEM_ConsoleCmd: func() proto.Message { return &msgs2.CDemoConsoleCmd{} }, + msgs2.EDemoCommands_DEM_CustomData: func() proto.Message { return &msgs2.CDemoCustomData{} }, + msgs2.EDemoCommands_DEM_UserCmd: func() proto.Message { return &msgs2.CDemoUserCmd{} }, + msgs2.EDemoCommands_DEM_FullPacket: func() proto.Message { return &msgs2.CDemoFullPacket{} }, + msgs2.EDemoCommands_DEM_SaveGame: func() proto.Message { return &msgs2.CDemoSaveGame{} }, + msgs2.EDemoCommands_DEM_SpawnGroups: func() proto.Message { return &msgs2.CDemoSpawnGroups{} }, + msgs2.EDemoCommands_DEM_AnimationData: func() proto.Message { return &msgs2.CDemoAnimationData{} }, +} + +func (p *parser) parseFrameS2() bool { + cmd := msgs2.EDemoCommands(p.bitReader.ReadVarInt32()) + + msgType := cmd & ^msgs2.EDemoCommands_DEM_IsCompressed + msgCompressed := (cmd & msgs2.EDemoCommands_DEM_IsCompressed) != 0 + + tick := p.bitReader.ReadVarInt32() + + // This appears to actually be an int32, where a -1 means pre-game. + if tick == 4294967295 { + tick = 0 + } + + p.msgQueue <- ingameTickNumber(int32(tick)) + + size := p.bitReader.ReadVarInt32() + + buf := p.bitReader.ReadBytes(int(size)) + + if msgCompressed { + var err error + + buf, err = snappy.Decode(nil, buf) + if err != nil { + panic(err) // FIXME: avoid panic + } + } + + msg := demoCommandMsgsCreators[msgType]() + + if msg == nil { + panic(fmt.Sprintf("Unknown demo command: %d", msgType)) + } + + err := proto.Unmarshal(buf, msg) + if err != nil { + panic(err) // FIXME: avoid panic + } + + p.msgQueue <- msg + + switch m := msg.(type) { + case *msgs2.CDemoFileHeader: + p.handleDemoFileHeader(m) + + case *msgs2.CDemoPacket: + p.handleDemoPacket(m) + + case *msgs2.CDemoFullPacket: + p.handleFullPacket(m) + + case *msgs2.CDemoSendTables: + p.handleSendTables(m) + + case *msgs2.CDemoClassInfo: + p.handleClassInfo(m) + + case *msgs2.CDemoStringTables: + p.handleStringTables(m) + + case *msgs2.CDemoFileInfo: + p.handleFileInfo(m) + } + + // Queue up some post processing + p.msgQueue <- frameParsedToken + + return msgType != msgs2.EDemoCommands_DEM_Stop +} + +// FIXME: refactor to interface instead of switch +func (p *parser) parseFrameFn() func() bool { + switch p.header.Filestamp { + case "HL2DEMO": + return p.parseFrameS1 + + case "PBDEMS2": + return p.parseFrameS2 + + default: + panic(fmt.Sprintf("Unknown demo version: %s", p.header.Filestamp)) + } +} + var byteSlicePool = sync.Pool{ New: func() any { s := make([]byte, 0, 256) @@ -381,18 +515,22 @@ type frameParsedTokenType struct{} var frameParsedToken = new(frameParsedTokenType) func (p *parser) handleFrameParsed(*frameParsedTokenType) { - // PlayerFlashed events need to be dispatched at the end of the tick - // because Player.FlashDuration is updated after the game-events are parsed. - for _, eventHandler := range p.delayedEventHandlers { - eventHandler() - } - - p.delayedEventHandlers = p.delayedEventHandlers[:0] + p.processFrameGameEvents() p.currentFrame++ p.eventDispatcher.Dispatch(events.FrameDone{}) } +// CS2 demos playback info are available in the CDemoFileInfo message that should be parsed at the end of the demo. +// Demos may not contain it, as a workaround we update values with the last parser information at the end of parsing. +func (p *parser) ensurePlaybackValuesAreSet() { + if p.header.PlaybackTicks == 0 { + p.header.PlaybackTicks = p.gameState.ingameTick + p.header.PlaybackFrames = p.currentFrame + p.header.PlaybackTime = time.Duration(float32(p.header.PlaybackTicks)*float32(p.tickInterval)) * time.Second + } +} + /* Format of 'CommandInfos' - I honestly have no clue what they are good for. This data is skipped in Parser.parsePacket(). diff --git a/pkg/demoinfocs/participants_interface.go b/pkg/demoinfocs/participants_interface.go index 3b615431..10ecb66e 100644 --- a/pkg/demoinfocs/participants_interface.go +++ b/pkg/demoinfocs/participants_interface.go @@ -3,7 +3,7 @@ package demoinfocs import ( - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" ) // Participants is an auto-generated interface for participants. @@ -37,10 +37,22 @@ type Participants interface { // TeamMembers returns all players belonging to the requested team at this time. // The returned slice is a snapshot and is not updated on changes. TeamMembers(team common.Team) []*common.Player + // FindByPawnHandle attempts to find a player by his pawn entity-handle. + // This works only for Source 2 demos. + // + // Returns nil if not found. + FindByPawnHandle(handle uint64) *common.Player + // FindByHandle64 attempts to find a player by his entity-handle. + // The entity-handle is often used in entity-properties when referencing other entities such as a weapon's owner. + // + // Returns nil if not found or if handle == invalidEntityHandle (used when referencing no entity). + FindByHandle64(handle uint64) *common.Player // FindByHandle attempts to find a player by his entity-handle. // The entity-handle is often used in entity-properties when referencing other entities such as a weapon's owner. // // Returns nil if not found or if handle == invalidEntityHandle (used when referencing no entity). + // + // Deprecated: Use FindByHandle64 instead. FindByHandle(handle int) *common.Player // SpottersOf returns a list of all players who have spotted the passed player. // This is NOT "Line of Sight" / FOV - look up "CSGO TraceRay" for that. diff --git a/pkg/demoinfocs/s2_commands.go b/pkg/demoinfocs/s2_commands.go new file mode 100644 index 00000000..a7738183 --- /dev/null +++ b/pkg/demoinfocs/s2_commands.go @@ -0,0 +1,375 @@ +package demoinfocs + +import ( + "bytes" + "fmt" + "sort" + "time" + + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + + "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" +) + +func (p *parser) handleSendTables(msg *msgs2.CDemoSendTables) { + p.msgDispatcher.SyncAllQueues() + + err := p.stParser.ParsePacket(msg.Data) + if err != nil { + panic(errors.Wrap(err, "failed to unmarshal flattened serializer")) + } +} + +func (p *parser) handleClassInfo(msg *msgs2.CDemoClassInfo) { + p.msgDispatcher.SyncAllQueues() + + err := p.stParser.OnDemoClassInfo(msg) + if err != nil { + panic(err) + } + + debugAllServerClasses(p.ServerClasses()) + + p.mapEquipment() + p.bindEntities() + + p.eventDispatcher.Dispatch(events.DataTablesParsed{}) +} + +var netMsgCreators = map[msgs2.NET_Messages]NetMessageCreator{ + msgs2.NET_Messages_net_NOP: func() proto.Message { return &msgs2.CNETMsg_NOP{} }, + msgs2.NET_Messages_net_Disconnect: func() proto.Message { return &msgs2.CNETMsg_Disconnect{} }, + msgs2.NET_Messages_net_SplitScreenUser: func() proto.Message { return &msgs2.CNETMsg_SplitScreenUser{} }, + msgs2.NET_Messages_net_Tick: func() proto.Message { return &msgs2.CNETMsg_Tick{} }, + msgs2.NET_Messages_net_StringCmd: func() proto.Message { return &msgs2.CNETMsg_StringCmd{} }, + msgs2.NET_Messages_net_SetConVar: func() proto.Message { return &msgs2.CNETMsg_SetConVar{} }, + msgs2.NET_Messages_net_SignonState: func() proto.Message { return &msgs2.CNETMsg_SignonState{} }, + msgs2.NET_Messages_net_SpawnGroup_Load: func() proto.Message { return &msgs2.CNETMsg_SpawnGroup_Load{} }, + msgs2.NET_Messages_net_SpawnGroup_ManifestUpdate: func() proto.Message { return &msgs2.CNETMsg_SpawnGroup_ManifestUpdate{} }, + msgs2.NET_Messages_net_SpawnGroup_SetCreationTick: func() proto.Message { return &msgs2.CNETMsg_SpawnGroup_SetCreationTick{} }, + msgs2.NET_Messages_net_SpawnGroup_Unload: func() proto.Message { return &msgs2.CNETMsg_SpawnGroup_Unload{} }, + msgs2.NET_Messages_net_SpawnGroup_LoadCompleted: func() proto.Message { return &msgs2.CNETMsg_SpawnGroup_LoadCompleted{} }, + msgs2.NET_Messages_net_DebugOverlay: func() proto.Message { return &msgs2.CNETMsg_DebugOverlay{} }, +} + +var svcMsgCreators = map[msgs2.SVC_Messages]NetMessageCreator{ + msgs2.SVC_Messages_svc_ServerInfo: func() proto.Message { return &msgs2.CSVCMsg_ServerInfo{} }, + msgs2.SVC_Messages_svc_FlattenedSerializer: func() proto.Message { return &msgs2.CSVCMsg_FlattenedSerializer{} }, + msgs2.SVC_Messages_svc_ClassInfo: func() proto.Message { return &msgs2.CSVCMsg_ClassInfo{} }, + msgs2.SVC_Messages_svc_SetPause: func() proto.Message { return &msgs2.CSVCMsg_SetPause{} }, + msgs2.SVC_Messages_svc_CreateStringTable: func() proto.Message { return &msgs2.CSVCMsg_CreateStringTable{} }, + msgs2.SVC_Messages_svc_UpdateStringTable: func() proto.Message { return &msgs2.CSVCMsg_UpdateStringTable{} }, + msgs2.SVC_Messages_svc_VoiceInit: func() proto.Message { return &msgs2.CSVCMsg_VoiceInit{} }, + msgs2.SVC_Messages_svc_VoiceData: func() proto.Message { return &msgs2.CSVCMsg_VoiceData{} }, + msgs2.SVC_Messages_svc_Print: func() proto.Message { return &msgs2.CSVCMsg_Print{} }, + msgs2.SVC_Messages_svc_Sounds: func() proto.Message { return &msgs2.CSVCMsg_Sounds{} }, + msgs2.SVC_Messages_svc_SetView: func() proto.Message { return &msgs2.CSVCMsg_SetView{} }, + msgs2.SVC_Messages_svc_ClearAllStringTables: func() proto.Message { return &msgs2.CSVCMsg_ClearAllStringTables{} }, + msgs2.SVC_Messages_svc_CmdKeyValues: func() proto.Message { return &msgs2.CSVCMsg_CmdKeyValues{} }, + msgs2.SVC_Messages_svc_BSPDecal: func() proto.Message { return &msgs2.CSVCMsg_BSPDecal{} }, + msgs2.SVC_Messages_svc_SplitScreen: func() proto.Message { return &msgs2.CSVCMsg_SplitScreen{} }, + msgs2.SVC_Messages_svc_PacketEntities: func() proto.Message { return &msgs2.CSVCMsg_PacketEntities{} }, + msgs2.SVC_Messages_svc_Prefetch: func() proto.Message { return &msgs2.CSVCMsg_Prefetch{} }, + msgs2.SVC_Messages_svc_Menu: func() proto.Message { return &msgs2.CSVCMsg_Menu{} }, + msgs2.SVC_Messages_svc_GetCvarValue: func() proto.Message { return &msgs2.CSVCMsg_GetCvarValue{} }, + msgs2.SVC_Messages_svc_StopSound: func() proto.Message { return &msgs2.CSVCMsg_StopSound{} }, + msgs2.SVC_Messages_svc_PeerList: func() proto.Message { return &msgs2.CSVCMsg_PeerList{} }, + msgs2.SVC_Messages_svc_PacketReliable: func() proto.Message { return &msgs2.CSVCMsg_PacketReliable{} }, + msgs2.SVC_Messages_svc_HLTVStatus: func() proto.Message { return &msgs2.CSVCMsg_HLTVStatus{} }, + msgs2.SVC_Messages_svc_ServerSteamID: func() proto.Message { return &msgs2.CSVCMsg_ServerSteamID{} }, + msgs2.SVC_Messages_svc_FullFrameSplit: func() proto.Message { return &msgs2.CSVCMsg_FullFrameSplit{} }, + msgs2.SVC_Messages_svc_RconServerDetails: func() proto.Message { return &msgs2.CSVCMsg_RconServerDetails{} }, + msgs2.SVC_Messages_svc_UserMessage: func() proto.Message { return &msgs2.CSVCMsg_UserMessage{} }, + msgs2.SVC_Messages_svc_HltvReplay: func() proto.Message { return &msgs2.CSVCMsg_HltvReplay{} }, + msgs2.SVC_Messages_svc_Broadcast_Command: func() proto.Message { return &msgs2.CSVCMsg_Broadcast_Command{} }, + msgs2.SVC_Messages_svc_HltvFixupOperatorStatus: func() proto.Message { return &msgs2.CSVCMsg_HltvFixupOperatorStatus{} }, +} + +var usrMsgCreators = map[msgs2.EBaseUserMessages]NetMessageCreator{ + msgs2.EBaseUserMessages_UM_AchievementEvent: func() proto.Message { return &msgs2.CUserMessageAchievementEvent{} }, + msgs2.EBaseUserMessages_UM_CloseCaption: func() proto.Message { return &msgs2.CUserMessageCloseCaption{} }, + msgs2.EBaseUserMessages_UM_CloseCaptionDirect: func() proto.Message { return &msgs2.CUserMessageCloseCaptionDirect{} }, + msgs2.EBaseUserMessages_UM_CurrentTimescale: func() proto.Message { return &msgs2.CUserMessageCurrentTimescale{} }, + msgs2.EBaseUserMessages_UM_DesiredTimescale: func() proto.Message { return &msgs2.CUserMessageDesiredTimescale{} }, + msgs2.EBaseUserMessages_UM_Fade: func() proto.Message { return &msgs2.CUserMessageFade{} }, + msgs2.EBaseUserMessages_UM_GameTitle: func() proto.Message { return &msgs2.CUserMessageGameTitle{} }, + msgs2.EBaseUserMessages_UM_HudMsg: func() proto.Message { return &msgs2.CUserMessageHudMsg{} }, + msgs2.EBaseUserMessages_UM_HudText: func() proto.Message { return &msgs2.CUserMessageHudText{} }, + msgs2.EBaseUserMessages_UM_ColoredText: func() proto.Message { return &msgs2.CUserMessageColoredText{} }, + msgs2.EBaseUserMessages_UM_RequestState: func() proto.Message { return &msgs2.CUserMessageRequestState{} }, + msgs2.EBaseUserMessages_UM_ResetHUD: func() proto.Message { return &msgs2.CUserMessageResetHUD{} }, + msgs2.EBaseUserMessages_UM_Rumble: func() proto.Message { return &msgs2.CUserMessageRumble{} }, + msgs2.EBaseUserMessages_UM_SayText: func() proto.Message { return &msgs2.CUserMessageSayText{} }, + msgs2.EBaseUserMessages_UM_SayText2: func() proto.Message { return &msgs2.CUserMessageSayText2{} }, + msgs2.EBaseUserMessages_UM_SayTextChannel: func() proto.Message { return &msgs2.CUserMessageSayTextChannel{} }, + msgs2.EBaseUserMessages_UM_Shake: func() proto.Message { return &msgs2.CUserMessageShake{} }, + msgs2.EBaseUserMessages_UM_ShakeDir: func() proto.Message { return &msgs2.CUserMessageShakeDir{} }, + msgs2.EBaseUserMessages_UM_TextMsg: func() proto.Message { return &msgs2.CUserMessageTextMsg{} }, + msgs2.EBaseUserMessages_UM_ScreenTilt: func() proto.Message { return &msgs2.CUserMessageScreenTilt{} }, + msgs2.EBaseUserMessages_UM_VoiceMask: func() proto.Message { return &msgs2.CUserMessageVoiceMask{} }, + msgs2.EBaseUserMessages_UM_SendAudio: func() proto.Message { return &msgs2.CUserMessageSendAudio{} }, + msgs2.EBaseUserMessages_UM_ItemPickup: func() proto.Message { return &msgs2.CUserMessageItemPickup{} }, + msgs2.EBaseUserMessages_UM_AmmoDenied: func() proto.Message { return &msgs2.CUserMessageAmmoDenied{} }, + msgs2.EBaseUserMessages_UM_ShowMenu: func() proto.Message { return &msgs2.CUserMessageShowMenu{} }, + msgs2.EBaseUserMessages_UM_CreditsMsg: func() proto.Message { return &msgs2.CUserMessageCreditsMsg{} }, + msgs2.EBaseUserMessages_UM_CloseCaptionPlaceholder: func() proto.Message { return &msgs2.CUserMessageCloseCaptionPlaceholder{} }, + msgs2.EBaseUserMessages_UM_CameraTransition: func() proto.Message { return &msgs2.CUserMessageCameraTransition{} }, + msgs2.EBaseUserMessages_UM_AudioParameter: func() proto.Message { return &msgs2.CUserMessageAudioParameter{} }, + msgs2.EBaseUserMessages_UM_ParticleManager: func() proto.Message { return &msgs2.CUserMsg_ParticleManager{} }, + msgs2.EBaseUserMessages_UM_HudError: func() proto.Message { return &msgs2.CUserMsg_HudError{} }, + msgs2.EBaseUserMessages_UM_CustomGameEvent: func() proto.Message { return &msgs2.CUserMsg_CustomGameEvent{} }, + msgs2.EBaseUserMessages_UM_AnimGraphUpdate: func() proto.Message { return &msgs2.CUserMessageAnimStateGraphState{} }, + msgs2.EBaseUserMessages_UM_HapticsManagerPulse: func() proto.Message { return &msgs2.CUserMessageHapticsManagerPulse{} }, + msgs2.EBaseUserMessages_UM_HapticsManagerEffect: func() proto.Message { return &msgs2.CUserMessageHapticsManagerEffect{} }, + msgs2.EBaseUserMessages_UM_CommandQueueState: func() proto.Message { return &msgs2.CUserMessageCommandQueueState{} }, + msgs2.EBaseUserMessages_UM_UpdateCssClasses: func() proto.Message { return &msgs2.CUserMessageUpdateCssClasses{} }, + msgs2.EBaseUserMessages_UM_ServerFrameTime: func() proto.Message { return &msgs2.CUserMessageServerFrameTime{} }, + msgs2.EBaseUserMessages_UM_LagCompensationError: func() proto.Message { return &msgs2.CUserMessageLagCompensationError{} }, + msgs2.EBaseUserMessages_UM_RequestDllStatus: func() proto.Message { return &msgs2.CUserMessageRequestDllStatus{} }, + msgs2.EBaseUserMessages_UM_RequestUtilAction: func() proto.Message { return &msgs2.CUserMessageRequestUtilAction{} }, + msgs2.EBaseUserMessages_UM_RequestInventory: func() proto.Message { return &msgs2.CUserMessageRequestInventory{} }, + msgs2.EBaseUserMessages_UM_InventoryResponse: func() proto.Message { return &msgs2.CUserMessage_Inventory_Response{} }, + msgs2.EBaseUserMessages_UM_UtilActionResponse: func() proto.Message { return &msgs2.CUserMessage_UtilMsg_Response{} }, +} + +var emCreators = map[msgs2.EBaseEntityMessages]NetMessageCreator{ + msgs2.EBaseEntityMessages_EM_PlayJingle: func() proto.Message { return &msgs2.CEntityMessagePlayJingle{} }, + msgs2.EBaseEntityMessages_EM_ScreenOverlay: func() proto.Message { return &msgs2.CEntityMessageScreenOverlay{} }, + msgs2.EBaseEntityMessages_EM_RemoveAllDecals: func() proto.Message { return &msgs2.CEntityMessageRemoveAllDecals{} }, + msgs2.EBaseEntityMessages_EM_PropagateForce: func() proto.Message { return &msgs2.CEntityMessagePropagateForce{} }, + msgs2.EBaseEntityMessages_EM_DoSpark: func() proto.Message { return &msgs2.CEntityMessageDoSpark{} }, + msgs2.EBaseEntityMessages_EM_FixAngle: func() proto.Message { return &msgs2.CEntityMessageFixAngle{} }, +} + +var gameEventCreators = map[msgs2.EBaseGameEvents]NetMessageCreator{ + msgs2.EBaseGameEvents_GE_VDebugGameSessionIDEvent: func() proto.Message { return &msgs2.CMsgVDebugGameSessionIDEvent{} }, + msgs2.EBaseGameEvents_GE_PlaceDecalEvent: func() proto.Message { return &msgs2.CMsgPlaceDecalEvent{} }, + msgs2.EBaseGameEvents_GE_ClearWorldDecalsEvent: func() proto.Message { return &msgs2.CMsgClearWorldDecalsEvent{} }, + msgs2.EBaseGameEvents_GE_ClearEntityDecalsEvent: func() proto.Message { return &msgs2.CMsgClearEntityDecalsEvent{} }, + msgs2.EBaseGameEvents_GE_ClearDecalsForSkeletonInstanceEvent: func() proto.Message { return &msgs2.CMsgClearDecalsForSkeletonInstanceEvent{} }, + msgs2.EBaseGameEvents_GE_Source1LegacyGameEventList: func() proto.Message { return &msgs2.CMsgSource1LegacyGameEventList{} }, + msgs2.EBaseGameEvents_GE_Source1LegacyListenEvents: func() proto.Message { return &msgs2.CMsgSource1LegacyListenEvents{} }, + msgs2.EBaseGameEvents_GE_Source1LegacyGameEvent: func() proto.Message { return &msgs2.CMsgSource1LegacyGameEvent{} }, + msgs2.EBaseGameEvents_GE_SosStartSoundEvent: func() proto.Message { return &msgs2.CMsgSosStartSoundEvent{} }, + msgs2.EBaseGameEvents_GE_SosStopSoundEvent: func() proto.Message { return &msgs2.CMsgSosStopSoundEvent{} }, + msgs2.EBaseGameEvents_GE_SosSetSoundEventParams: func() proto.Message { return &msgs2.CMsgSosSetSoundEventParams{} }, + msgs2.EBaseGameEvents_GE_SosSetLibraryStackFields: func() proto.Message { return &msgs2.CMsgSosSetLibraryStackFields{} }, + msgs2.EBaseGameEvents_GE_SosStopSoundEventHash: func() proto.Message { return &msgs2.CMsgSosStopSoundEventHash{} }, +} + +var csgoGameEventCreators = map[msgs2.ECsgoGameEvents]NetMessageCreator{ + msgs2.ECsgoGameEvents_GE_PlayerAnimEventId: func() proto.Message { return &msgs2.CMsgTEPlayerAnimEvent{} }, + msgs2.ECsgoGameEvents_GE_RadioIconEventId: func() proto.Message { return &msgs2.CMsgTERadioIcon{} }, + msgs2.ECsgoGameEvents_GE_FireBulletsId: func() proto.Message { return &msgs2.CMsgTEFireBullets{} }, +} + +var csUsrMsgCreators = map[msgs2.ECstrike15UserMessages]NetMessageCreator{ + msgs2.ECstrike15UserMessages_CS_UM_VGUIMenu: func() proto.Message { return &msgs2.CCSUsrMsg_VGUIMenu{} }, + msgs2.ECstrike15UserMessages_CS_UM_Geiger: func() proto.Message { return &msgs2.CCSUsrMsg_Geiger{} }, + msgs2.ECstrike15UserMessages_CS_UM_Train: func() proto.Message { return &msgs2.CCSUsrMsg_Train{} }, + msgs2.ECstrike15UserMessages_CS_UM_HudText: func() proto.Message { return &msgs2.CCSUsrMsg_HudText{} }, + msgs2.ECstrike15UserMessages_CS_UM_HudMsg: func() proto.Message { return &msgs2.CCSUsrMsg_HudMsg{} }, + msgs2.ECstrike15UserMessages_CS_UM_ResetHud: func() proto.Message { return &msgs2.CCSUsrMsg_ResetHud{} }, + msgs2.ECstrike15UserMessages_CS_UM_GameTitle: func() proto.Message { return &msgs2.CCSUsrMsg_GameTitle{} }, + msgs2.ECstrike15UserMessages_CS_UM_Shake: func() proto.Message { return &msgs2.CCSUsrMsg_Shake{} }, + msgs2.ECstrike15UserMessages_CS_UM_Fade: func() proto.Message { return &msgs2.CCSUsrMsg_Fade{} }, + msgs2.ECstrike15UserMessages_CS_UM_Rumble: func() proto.Message { return &msgs2.CCSUsrMsg_Rumble{} }, + msgs2.ECstrike15UserMessages_CS_UM_CloseCaption: func() proto.Message { return &msgs2.CCSUsrMsg_CloseCaption{} }, + msgs2.ECstrike15UserMessages_CS_UM_CloseCaptionDirect: func() proto.Message { return &msgs2.CCSUsrMsg_CloseCaptionDirect{} }, + msgs2.ECstrike15UserMessages_CS_UM_SendAudio: func() proto.Message { return &msgs2.CCSUsrMsg_SendAudio{} }, + msgs2.ECstrike15UserMessages_CS_UM_RawAudio: func() proto.Message { return &msgs2.CCSUsrMsg_RawAudio{} }, + msgs2.ECstrike15UserMessages_CS_UM_VoiceMask: func() proto.Message { return &msgs2.CCSUsrMsg_VoiceMask{} }, + msgs2.ECstrike15UserMessages_CS_UM_RequestState: func() proto.Message { return &msgs2.CCSUsrMsg_RequestState{} }, + msgs2.ECstrike15UserMessages_CS_UM_Damage: func() proto.Message { return &msgs2.CCSUsrMsg_Damage{} }, + msgs2.ECstrike15UserMessages_CS_UM_RadioText: func() proto.Message { return &msgs2.CCSUsrMsg_RadioText{} }, + msgs2.ECstrike15UserMessages_CS_UM_HintText: func() proto.Message { return &msgs2.CCSUsrMsg_HintText{} }, + msgs2.ECstrike15UserMessages_CS_UM_KeyHintText: func() proto.Message { return &msgs2.CCSUsrMsg_KeyHintText{} }, + msgs2.ECstrike15UserMessages_CS_UM_ProcessSpottedEntityUpdate: func() proto.Message { return &msgs2.CCSUsrMsg_ProcessSpottedEntityUpdate{} }, + msgs2.ECstrike15UserMessages_CS_UM_ReloadEffect: func() proto.Message { return &msgs2.CCSUsrMsg_ReloadEffect{} }, + msgs2.ECstrike15UserMessages_CS_UM_AdjustMoney: func() proto.Message { return &msgs2.CCSUsrMsg_AdjustMoney{} }, + msgs2.ECstrike15UserMessages_CS_UM_StopSpectatorMode: func() proto.Message { return &msgs2.CCSUsrMsg_StopSpectatorMode{} }, + msgs2.ECstrike15UserMessages_CS_UM_KillCam: func() proto.Message { return &msgs2.CCSUsrMsg_KillCam{} }, + msgs2.ECstrike15UserMessages_CS_UM_DesiredTimescale: func() proto.Message { return &msgs2.CCSUsrMsg_DesiredTimescale{} }, + msgs2.ECstrike15UserMessages_CS_UM_CurrentTimescale: func() proto.Message { return &msgs2.CCSUsrMsg_CurrentTimescale{} }, + msgs2.ECstrike15UserMessages_CS_UM_AchievementEvent: func() proto.Message { return &msgs2.CCSUsrMsg_AchievementEvent{} }, + msgs2.ECstrike15UserMessages_CS_UM_MatchEndConditions: func() proto.Message { return &msgs2.CCSUsrMsg_MatchEndConditions{} }, + msgs2.ECstrike15UserMessages_CS_UM_DisconnectToLobby: func() proto.Message { return &msgs2.CCSUsrMsg_DisconnectToLobby{} }, + msgs2.ECstrike15UserMessages_CS_UM_PlayerStatsUpdate: func() proto.Message { return &msgs2.CCSUsrMsg_PlayerStatsUpdate{} }, + msgs2.ECstrike15UserMessages_CS_UM_WarmupHasEnded: func() proto.Message { return &msgs2.CCSUsrMsg_WarmupHasEnded{} }, + msgs2.ECstrike15UserMessages_CS_UM_ClientInfo: func() proto.Message { return &msgs2.CCSUsrMsg_ClientInfo{} }, + msgs2.ECstrike15UserMessages_CS_UM_XRankGet: func() proto.Message { return &msgs2.CCSUsrMsg_XRankGet{} }, + msgs2.ECstrike15UserMessages_CS_UM_XRankUpd: func() proto.Message { return &msgs2.CCSUsrMsg_XRankUpd{} }, + msgs2.ECstrike15UserMessages_CS_UM_CallVoteFailed: func() proto.Message { return &msgs2.CCSUsrMsg_CallVoteFailed{} }, + msgs2.ECstrike15UserMessages_CS_UM_VoteStart: func() proto.Message { return &msgs2.CCSUsrMsg_VoteStart{} }, + msgs2.ECstrike15UserMessages_CS_UM_VotePass: func() proto.Message { return &msgs2.CCSUsrMsg_VotePass{} }, + msgs2.ECstrike15UserMessages_CS_UM_VoteFailed: func() proto.Message { return &msgs2.CCSUsrMsg_VoteFailed{} }, + msgs2.ECstrike15UserMessages_CS_UM_VoteSetup: func() proto.Message { return &msgs2.CCSUsrMsg_VoteSetup{} }, + msgs2.ECstrike15UserMessages_CS_UM_ServerRankRevealAll: func() proto.Message { return &msgs2.CCSUsrMsg_ServerRankRevealAll{} }, + msgs2.ECstrike15UserMessages_CS_UM_SendLastKillerDamageToClient: func() proto.Message { return &msgs2.CCSUsrMsg_SendLastKillerDamageToClient{} }, + msgs2.ECstrike15UserMessages_CS_UM_ServerRankUpdate: func() proto.Message { return &msgs2.CCSUsrMsg_ServerRankUpdate{} }, + msgs2.ECstrike15UserMessages_CS_UM_ItemPickup: func() proto.Message { return &msgs2.CCSUsrMsg_ItemPickup{} }, + msgs2.ECstrike15UserMessages_CS_UM_ShowMenu: func() proto.Message { return &msgs2.CCSUsrMsg_ShowMenu{} }, + msgs2.ECstrike15UserMessages_CS_UM_BarTime: func() proto.Message { return &msgs2.CCSUsrMsg_BarTime{} }, + msgs2.ECstrike15UserMessages_CS_UM_AmmoDenied: func() proto.Message { return &msgs2.CCSUsrMsg_AmmoDenied{} }, + msgs2.ECstrike15UserMessages_CS_UM_MarkAchievement: func() proto.Message { return &msgs2.CCSUsrMsg_MarkAchievement{} }, + msgs2.ECstrike15UserMessages_CS_UM_MatchStatsUpdate: func() proto.Message { return &msgs2.CCSUsrMsg_MatchStatsUpdate{} }, + msgs2.ECstrike15UserMessages_CS_UM_ItemDrop: func() proto.Message { return &msgs2.CCSUsrMsg_ItemDrop{} }, + msgs2.ECstrike15UserMessages_CS_UM_GlowPropTurnOff: func() proto.Message { return &msgs2.CCSUsrMsg_GlowPropTurnOff{} }, + msgs2.ECstrike15UserMessages_CS_UM_SendPlayerItemDrops: func() proto.Message { return &msgs2.CCSUsrMsg_SendPlayerItemDrops{} }, + msgs2.ECstrike15UserMessages_CS_UM_RoundBackupFilenames: func() proto.Message { return &msgs2.CCSUsrMsg_RoundBackupFilenames{} }, + msgs2.ECstrike15UserMessages_CS_UM_SendPlayerItemFound: func() proto.Message { return &msgs2.CCSUsrMsg_SendPlayerItemFound{} }, + msgs2.ECstrike15UserMessages_CS_UM_ReportHit: func() proto.Message { return &msgs2.CCSUsrMsg_ReportHit{} }, + msgs2.ECstrike15UserMessages_CS_UM_XpUpdate: func() proto.Message { return &msgs2.CCSUsrMsg_XpUpdate{} }, + msgs2.ECstrike15UserMessages_CS_UM_QuestProgress: func() proto.Message { return &msgs2.CCSUsrMsg_QuestProgress{} }, + msgs2.ECstrike15UserMessages_CS_UM_ScoreLeaderboardData: func() proto.Message { return &msgs2.CCSUsrMsg_ScoreLeaderboardData{} }, + msgs2.ECstrike15UserMessages_CS_UM_PlayerDecalDigitalSignature: func() proto.Message { return &msgs2.CCSUsrMsg_PlayerDecalDigitalSignature{} }, + msgs2.ECstrike15UserMessages_CS_UM_WeaponSound: func() proto.Message { return &msgs2.CCSUsrMsg_WeaponSound{} }, + msgs2.ECstrike15UserMessages_CS_UM_UpdateScreenHealthBar: func() proto.Message { return &msgs2.CCSUsrMsg_UpdateScreenHealthBar{} }, + msgs2.ECstrike15UserMessages_CS_UM_EntityOutlineHighlight: func() proto.Message { return &msgs2.CCSUsrMsg_EntityOutlineHighlight{} }, + msgs2.ECstrike15UserMessages_CS_UM_SSUI: func() proto.Message { return &msgs2.CCSUsrMsg_SSUI{} }, + msgs2.ECstrike15UserMessages_CS_UM_SurvivalStats: func() proto.Message { return &msgs2.CCSUsrMsg_SurvivalStats{} }, + msgs2.ECstrike15UserMessages_CS_UM_DisconnectToLobby2: func() proto.Message { return &msgs2.CCSUsrMsg_DisconnectToLobby{} }, + msgs2.ECstrike15UserMessages_CS_UM_EndOfMatchAllPlayersData: func() proto.Message { return &msgs2.CCSUsrMsg_EndOfMatchAllPlayersData{} }, + msgs2.ECstrike15UserMessages_CS_UM_PostRoundDamageReport: func() proto.Message { return &msgs2.CCSUsrMsg_PostRoundDamageReport{} }, + msgs2.ECstrike15UserMessages_CS_UM_RoundEndReportData: func() proto.Message { return &msgs2.CCSUsrMsg_RoundEndReportData{} }, + msgs2.ECstrike15UserMessages_CS_UM_CurrentRoundOdds: func() proto.Message { return &msgs2.CCSUsrMsg_CurrentRoundOdds{} }, + msgs2.ECstrike15UserMessages_CS_UM_DeepStats: func() proto.Message { return &msgs2.CCSUsrMsg_DeepStats{} }, + msgs2.ECstrike15UserMessages_CS_UM_ShootInfo: func() proto.Message { return &msgs2.CCSUsrMsg_ShootInfo{} }, +} + +var teCreators = map[msgs2.ETEProtobufIds]NetMessageCreator{ + msgs2.ETEProtobufIds_TE_EffectDispatchId: func() proto.Message { return &msgs2.CMsgTEEffectDispatch{} }, + msgs2.ETEProtobufIds_TE_ArmorRicochetId: func() proto.Message { return &msgs2.CMsgTEArmorRicochet{} }, + msgs2.ETEProtobufIds_TE_BeamEntPointId: func() proto.Message { return &msgs2.CMsgTEBeamEntPoint{} }, + msgs2.ETEProtobufIds_TE_BeamEntsId: func() proto.Message { return &msgs2.CMsgTEBeamEnts{} }, + msgs2.ETEProtobufIds_TE_BeamPointsId: func() proto.Message { return &msgs2.CMsgTEBeamPoints{} }, + msgs2.ETEProtobufIds_TE_BeamRingId: func() proto.Message { return &msgs2.CMsgTEBeamRing{} }, + msgs2.ETEProtobufIds_TE_BSPDecalId: func() proto.Message { return &msgs2.CMsgTEBSPDecal{} }, + msgs2.ETEProtobufIds_TE_BubblesId: func() proto.Message { return &msgs2.CMsgTEBubbles{} }, + msgs2.ETEProtobufIds_TE_BubbleTrailId: func() proto.Message { return &msgs2.CMsgTEBubbleTrail{} }, + msgs2.ETEProtobufIds_TE_DecalId: func() proto.Message { return &msgs2.CMsgTEDecal{} }, + msgs2.ETEProtobufIds_TE_WorldDecalId: func() proto.Message { return &msgs2.CMsgTEWorldDecal{} }, + msgs2.ETEProtobufIds_TE_EnergySplashId: func() proto.Message { return &msgs2.CMsgTEEnergySplash{} }, + msgs2.ETEProtobufIds_TE_FizzId: func() proto.Message { return &msgs2.CMsgTEFizz{} }, + msgs2.ETEProtobufIds_TE_ShatterSurfaceId: func() proto.Message { return &msgs2.CMsgTEShatterSurface{} }, + msgs2.ETEProtobufIds_TE_GlowSpriteId: func() proto.Message { return &msgs2.CMsgTEGlowSprite{} }, + msgs2.ETEProtobufIds_TE_ImpactId: func() proto.Message { return &msgs2.CMsgTEImpact{} }, + msgs2.ETEProtobufIds_TE_MuzzleFlashId: func() proto.Message { return &msgs2.CMsgTEMuzzleFlash{} }, + msgs2.ETEProtobufIds_TE_BloodStreamId: func() proto.Message { return &msgs2.CMsgTEBloodStream{} }, + msgs2.ETEProtobufIds_TE_ExplosionId: func() proto.Message { return &msgs2.CMsgTEExplosion{} }, + msgs2.ETEProtobufIds_TE_DustId: func() proto.Message { return &msgs2.CMsgTEDust{} }, + msgs2.ETEProtobufIds_TE_LargeFunnelId: func() proto.Message { return &msgs2.CMsgTELargeFunnel{} }, + msgs2.ETEProtobufIds_TE_SparksId: func() proto.Message { return &msgs2.CMsgTESparks{} }, + msgs2.ETEProtobufIds_TE_PhysicsPropId: func() proto.Message { return &msgs2.CMsgTEPhysicsProp{} }, + msgs2.ETEProtobufIds_TE_PlayerDecalId: func() proto.Message { return &msgs2.CMsgTEPlayerDecal{} }, + msgs2.ETEProtobufIds_TE_ProjectedDecalId: func() proto.Message { return &msgs2.CMsgTEProjectedDecal{} }, + msgs2.ETEProtobufIds_TE_SmokeId: func() proto.Message { return &msgs2.CMsgTESmoke{} }, +} + +type pendingMessage struct { + t int32 + buf []byte +} + +// Calculates the priority of the message. Lower is more important. +func (m *pendingMessage) priority() int { + switch m.t { + case + // These messages provide context needed for the rest of the tick + // and should have the highest priority. + int32(msgs2.NET_Messages_net_Tick), + int32(msgs2.SVC_Messages_svc_CreateStringTable), + int32(msgs2.SVC_Messages_svc_UpdateStringTable), + int32(msgs2.NET_Messages_net_SpawnGroup_Load): + return -10 + + case + // These messages benefit from having context but may also need to + // provide context in terms of delta updates. + int32(msgs2.SVC_Messages_svc_PacketEntities): + return 5 + } + + return 0 +} + +func (p *parser) handleDemoPacket(pack *msgs2.CDemoPacket) { + b := pack.GetData() + r := bitread.NewSmallBitReader(bytes.NewReader(b)) + + ms := make([]pendingMessage, 0) + + for len(b)*8-r.ActualPosition() > 7 { + t := int32(r.ReadUBitInt()) + size := r.ReadVarInt32() + buf := r.ReadBytes(int(size)) + + ms = append(ms, pendingMessage{t, buf}) + } + + sort.Slice(ms, func(i, j int) bool { + return ms[i].priority() < ms[j].priority() // TODO: taken from dotabuff/manta. do we really need this? + }) + + for _, m := range ms { + var msgCreator NetMessageCreator + + if m.t < int32(msgs2.SVC_Messages_svc_ServerInfo) { + msgCreator = netMsgCreators[msgs2.NET_Messages(m.t)] + } else if m.t < int32(msgs2.EBaseUserMessages_UM_AchievementEvent) { + msgCreator = svcMsgCreators[msgs2.SVC_Messages(m.t)] + } else if m.t < int32(msgs2.EBaseGameEvents_GE_VDebugGameSessionIDEvent) { + msgCreator = usrMsgCreators[msgs2.EBaseUserMessages(m.t)] + + if msgCreator == nil { + msgCreator = emCreators[msgs2.EBaseEntityMessages(m.t)] + } + } else if m.t < int32(msgs2.ECstrike15UserMessages_CS_UM_VGUIMenu) { + msgCreator = gameEventCreators[msgs2.EBaseGameEvents(m.t)] + } else if m.t < int32(msgs2.ETEProtobufIds_TE_EffectDispatchId) { + msgCreator = csUsrMsgCreators[msgs2.ECstrike15UserMessages(m.t)] + } else if m.t < int32(msgs2.ECsgoGameEvents_GE_PlayerAnimEventId) { + msgCreator = teCreators[msgs2.ETEProtobufIds(m.t)] + } else { + msgCreator = csgoGameEventCreators[msgs2.ECsgoGameEvents(m.t)] + } + + if msgCreator == nil { + panic(fmt.Errorf("unknown message type %d", m.t)) + } + + msg := msgCreator() + + err := proto.Unmarshal(m.buf, msg) + if err != nil { + panic(err) // FIXME: avoid panic + } + + p.msgQueue <- msg + } +} + +func (p *parser) handleFullPacket(msg *msgs2.CDemoFullPacket) { + p.handleStringTables(msg.StringTable) + + if msg.Packet.GetData() != nil { + p.handleDemoPacket(msg.Packet) + } +} + +func (p *parser) handleFileInfo(msg *msgs2.CDemoFileInfo) { + p.header.PlaybackTicks = int(*msg.PlaybackTicks) + p.header.PlaybackFrames = int(*msg.PlaybackFrames) + p.header.PlaybackTime = time.Duration(*msg.PlaybackTime) * time.Second +} + +func (p *parser) handleDemoFileHeader(msg *msgs2.CDemoFileHeader) { + p.header.ClientName = msg.GetClientName() + p.header.ServerName = msg.GetServerName() + p.header.GameDirectory = msg.GetGameDirectory() + p.header.MapName = msg.GetMapName() + p.header.NetworkProtocol = int(msg.GetNetworkProtocol()) +} diff --git a/pkg/demoinfocs/sendtables/entity.go b/pkg/demoinfocs/sendtables/entity.go index 139b9a87..13ecce43 100644 --- a/pkg/demoinfocs/sendtables/entity.go +++ b/pkg/demoinfocs/sendtables/entity.go @@ -5,7 +5,7 @@ import ( "github.com/golang/geo/r3" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" ) //go:generate ifacemaker -f entity.go -s entity -i Entity -p sendtables -D -y "Entity is an auto-generated interface for entity, intended to be used when mockability is needed." -c "DO NOT EDIT: Auto generated" -o entity_interface.go @@ -13,7 +13,7 @@ import ( // entity stores a entity in the game (e.g. players etc.) with its properties. type entity struct { - serverClass *ServerClass + serverClass *serverClass id int serialNum int props []property @@ -26,7 +26,7 @@ type entity struct { } // ServerClass returns the entity's server-class. -func (e *entity) ServerClass() *ServerClass { +func (e *entity) ServerClass() ServerClass { return e.serverClass } diff --git a/pkg/demoinfocs/sendtables/entity_interface.go b/pkg/demoinfocs/sendtables/entity_interface.go index c5176f43..d0c34e98 100644 --- a/pkg/demoinfocs/sendtables/entity_interface.go +++ b/pkg/demoinfocs/sendtables/entity_interface.go @@ -4,14 +4,14 @@ package sendtables import ( "github.com/golang/geo/r3" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" ) // Entity is an auto-generated interface for entity, intended to be used when mockability is needed. // entity stores a entity in the game (e.g. players etc.) with its properties. type Entity interface { // ServerClass returns the entity's server-class. - ServerClass() *ServerClass + ServerClass() ServerClass // ID returns the entity's ID. ID() int // SerialNum returns the entity's serial number. diff --git a/pkg/demoinfocs/sendtables/entity_test.go b/pkg/demoinfocs/sendtables/entity_test.go index dc6bd1ea..4f52ddae 100644 --- a/pkg/demoinfocs/sendtables/entity_test.go +++ b/pkg/demoinfocs/sendtables/entity_test.go @@ -16,7 +16,7 @@ var testData = struct { {value: PropertyValue{IntVal: 30}}, }, serialNum: 1337, - serverClass: &ServerClass{propNameToIndex: map[string]int{ + serverClass: &serverClass{propNameToIndex: map[string]int{ "myProp": 0, "test": 1, "anotherOne": 2, diff --git a/pkg/demoinfocs/sendtables/fake/entity.go b/pkg/demoinfocs/sendtables/fake/entity.go index 7edf5432..a9cd09e5 100644 --- a/pkg/demoinfocs/sendtables/fake/entity.go +++ b/pkg/demoinfocs/sendtables/fake/entity.go @@ -4,8 +4,8 @@ import ( "github.com/golang/geo/r3" "github.com/stretchr/testify/mock" - bitread "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + bitread "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) // NewEntityWithProperty creates and returns an entity with a single mocked property. @@ -30,8 +30,8 @@ type Entity struct { } // ServerClass is a mock-implementation of Entity.ServerClass(). -func (e *Entity) ServerClass() *st.ServerClass { - return e.Called().Get(0).(*st.ServerClass) +func (e *Entity) ServerClass() st.ServerClass { + return e.Called().Get(0).(st.ServerClass) } // ID is a mock-implementation of Entity.ID(). diff --git a/pkg/demoinfocs/sendtables/fake/property.go b/pkg/demoinfocs/sendtables/fake/property.go index 455bdf75..ef7d8a64 100644 --- a/pkg/demoinfocs/sendtables/fake/property.go +++ b/pkg/demoinfocs/sendtables/fake/property.go @@ -3,7 +3,7 @@ package fake import ( "github.com/stretchr/testify/mock" - st "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/sendtables" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" ) var _ st.Property = new(Property) diff --git a/pkg/demoinfocs/sendtables/propdecoder.go b/pkg/demoinfocs/sendtables/propdecoder.go index c17e411a..990d44d4 100644 --- a/pkg/demoinfocs/sendtables/propdecoder.go +++ b/pkg/demoinfocs/sendtables/propdecoder.go @@ -7,7 +7,7 @@ import ( r3 "github.com/golang/geo/r3" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" ) const ( @@ -35,6 +35,7 @@ const ( PropTypeArray PropTypeDataTable PropTypeInt64 + PropTypeAny ) const ( @@ -89,16 +90,92 @@ var propDecoder propertyDecoder // PropertyValue stores parsed & decoded send-table values. // For instance player health, location etc. type PropertyValue struct { - VectorVal r3.Vector - IntVal int - Int64Val int64 - ArrayVal []PropertyValue - StringVal string - FloatVal float32 + VectorVal r3.Vector // Deprecated, use R3Vec() instead + IntVal int // Deprecated, use Int() instead + Int64Val int64 // Deprecated, use Int64() instead + ArrayVal []PropertyValue // Deprecated. + StringVal string // Deprecated, use Str() instead + FloatVal float32 // Deprecated, use Float() instead + Any any + S2 bool +} + +func (v PropertyValue) R3Vec() r3.Vector { + if v.S2 { + fs := v.Any.([]float32) + + return r3.Vector{ + X: float64(fs[0]), + Y: float64(fs[1]), + Z: float64(fs[2]), + } + } + + return v.VectorVal +} + +func (v PropertyValue) Int() int { + if v.S2 { + return int(v.Any.(int32)) + } + + return v.IntVal +} + +func (v PropertyValue) Int64() int64 { + if v.S2 { + return v.Any.(int64) + } + + return v.Int64Val +} + +func (v PropertyValue) S2UInt64() uint64 { + return v.Any.(uint64) +} + +func (v PropertyValue) S2UInt32() uint32 { + return v.Any.(uint32) +} + +func (v PropertyValue) Handle() uint64 { + if v.S2 { + return v.S2UInt64() + } + + if v.IntVal < 0 { + panic("Handle is negative") + } + + return uint64(v.IntVal) +} + +func (v PropertyValue) Float() float32 { + if v.S2 { + return v.Any.(float32) + } + + return v.FloatVal +} + +func (v PropertyValue) Str() string { + if v.S2 { + return v.Any.(string) + } + + return v.StringVal +} + +func (v PropertyValue) String() string { + return fmt.Sprint(v.Any) } // BoolVal returns true if IntVal > 0. func (v PropertyValue) BoolVal() bool { + if v.S2 { + return v.Any.(bool) + } + return v.IntVal > 0 } @@ -108,24 +185,31 @@ func (propertyDecoder) decodeProp(prop *property, reader *bit.BitReader) { switch prop.entry.prop.rawType { case propTypeFloat: prop.value.FloatVal = propDecoder.decodeFloat(prop.entry.prop, reader) + prop.value.Any = prop.value.FloatVal case propTypeInt: prop.value.IntVal = propDecoder.decodeInt(prop.entry.prop, reader) + prop.value.Any = prop.value.IntVal case propTypeVectorXY: prop.value.VectorVal = propDecoder.decodeVectorXY(prop.entry.prop, reader) + prop.value.Any = prop.value.VectorVal case propTypeVector: prop.value.VectorVal = propDecoder.decodeVector(prop.entry.prop, reader) + prop.value.Any = prop.value.VectorVal case propTypeArray: prop.value.ArrayVal = propDecoder.decodeArray(prop.entry, reader) + prop.value.Any = prop.value.ArrayVal case propTypeString: prop.value.StringVal = propDecoder.decodeString(reader) + prop.value.Any = prop.value.StringVal case propTypeInt64: prop.value.Int64Val = propDecoder.decodeInt64(prop.entry.prop, reader) + prop.value.Any = prop.value.Int64Val default: panic(fmt.Sprintf("Unknown prop type %d", prop.entry.prop.rawType)) diff --git a/pkg/demoinfocs/sendtables/propdecoder_test.go b/pkg/demoinfocs/sendtables/propdecoder_test.go index c0568d23..cdf03adb 100644 --- a/pkg/demoinfocs/sendtables/propdecoder_test.go +++ b/pkg/demoinfocs/sendtables/propdecoder_test.go @@ -5,7 +5,7 @@ import ( "encoding/binary" "testing" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" "github.com/stretchr/testify/assert" ) diff --git a/pkg/demoinfocs/sendtables/sendtables.go b/pkg/demoinfocs/sendtables/sendtables.go index a471d7e2..f39d60a7 100644 --- a/pkg/demoinfocs/sendtables/sendtables.go +++ b/pkg/demoinfocs/sendtables/sendtables.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" ) // sendPropertyFlags stores multiple send property flags. @@ -43,13 +43,15 @@ type flattenedPropEntry struct { name string } -// ServerClass stores meta information about Entity types (e.g. palyers, teams etc.). -type ServerClass struct { +//go:generate ifacemaker -f sendtables.go -s serverClass -i ServerClass -p sendtables -D -y "ServerClass is an auto-generated interface for property, intended to be used when mockability is needed." -c "DO NOT EDIT: Auto generated" -o serverclass_interface.go + +// serverClass stores meta information about Entity types (e.g. palyers, teams etc.). +type serverClass struct { id int name string dataTableID int dataTableName string - baseClasses []*ServerClass + baseClasses []*serverClass flattenedProps []flattenedPropEntry propNameToIndex map[string]int @@ -59,32 +61,36 @@ type ServerClass struct { } // ID returns the server-class's ID. -func (sc *ServerClass) ID() int { +func (sc *serverClass) ID() int { return sc.id } // Name returns the server-class's name. -func (sc *ServerClass) Name() string { +func (sc *serverClass) Name() string { return sc.name } // DataTableID returns the data-table ID. -func (sc *ServerClass) DataTableID() int { +func (sc *serverClass) DataTableID() int { return sc.dataTableID } // DataTableName returns the data-table name. -func (sc *ServerClass) DataTableName() string { +func (sc *serverClass) DataTableName() string { return sc.dataTableName } // BaseClasses returns the base-classes of this server-class. -func (sc *ServerClass) BaseClasses() []*ServerClass { - return sc.baseClasses +func (sc *serverClass) BaseClasses() (res []ServerClass) { + for _, v := range sc.baseClasses { + res = append(res, v) + } + + return } // PropertyEntries returns the names of all property-entries on this server-class. -func (sc *ServerClass) PropertyEntries() []string { +func (sc *serverClass) PropertyEntries() []string { propEntryCount := len(sc.flattenedProps) names := make([]string, propEntryCount) @@ -102,7 +108,7 @@ type PropertyEntry struct { } // PropertyEntryDefinitions returns all property-entries on this server-class. -func (sc *ServerClass) PropertyEntryDefinitions() []PropertyEntry { +func (sc *serverClass) PropertyEntryDefinitions() []PropertyEntry { propEntryCount := len(sc.flattenedProps) res := make([]PropertyEntry, propEntryCount) @@ -120,7 +126,7 @@ func (sc *ServerClass) PropertyEntryDefinitions() []PropertyEntry { return res } -func (sc *ServerClass) newEntity(entityDataReader *bit.BitReader, entityID int, serialNum int, recordingPlayerSlot int) *entity { +func (sc *serverClass) newEntity(entityDataReader *bit.BitReader, entityID int, serialNum int, recordingPlayerSlot int) *entity { props := make([]property, len(sc.flattenedProps)) for i := range sc.flattenedProps { @@ -156,15 +162,15 @@ func (sc *ServerClass) newEntity(entityDataReader *bit.BitReader, entityID int, return entity } -// OnEntityCreated registers a function to be called when a new entity is created from this ServerClass. -func (sc *ServerClass) OnEntityCreated(handler EntityCreatedHandler) { +// OnEntityCreated registers a function to be called when a new entity is created from this serverClass. +func (sc *serverClass) OnEntityCreated(handler EntityCreatedHandler) { sc.createdHandlers = append(sc.createdHandlers, handler) } // EntityCreatedHandler is the interface for handlers that are interested in EntityCreatedEvents. type EntityCreatedHandler func(Entity) -var serverClassStringFormat = `ServerClass: id=%d name=%s +var serverClassStringFormat = `serverClass: id=%d name=%s dataTableId=%d dataTableName=%s baseClasses: @@ -172,7 +178,7 @@ var serverClassStringFormat = `ServerClass: id=%d name=%s properties: %s` -func (sc *ServerClass) String() string { +func (sc *serverClass) String() string { baseClasses := make([]string, len(sc.baseClasses)) for i, bc := range sc.baseClasses { baseClasses[i] = bc.name diff --git a/pkg/demoinfocs/sendtables/sendtables_test.go b/pkg/demoinfocs/sendtables/sendtables_test.go index 7730d226..ebb7b86e 100644 --- a/pkg/demoinfocs/sendtables/sendtables_test.go +++ b/pkg/demoinfocs/sendtables/sendtables_test.go @@ -7,7 +7,7 @@ import ( ) func TestServerClassGetters(t *testing.T) { - sc := ServerClass{ + sc := serverClass{ id: 1, name: "TestClass", dataTableID: 2, @@ -21,7 +21,7 @@ func TestServerClassGetters(t *testing.T) { } func TestServerClassPropertyEntries(t *testing.T) { - var sc ServerClass + var sc serverClass assert.Empty(t, sc.PropertyEntries()) @@ -31,14 +31,14 @@ func TestServerClassPropertyEntries(t *testing.T) { } func TestServerClassString(t *testing.T) { - sc := ServerClass{ + sc := serverClass{ id: 1, name: "TestClass", dataTableID: 2, dataTableName: "ADataTable", } - expectedString := `ServerClass: id=1 name=TestClass + expectedString := `serverClass: id=1 name=TestClass dataTableId=2 dataTableName=ADataTable baseClasses: @@ -48,10 +48,10 @@ func TestServerClassString(t *testing.T) { assert.Equal(t, expectedString, sc.String()) - sc.baseClasses = []*ServerClass{{name: "AnotherClass"}, {name: "YetAnotherClass"}} + sc.baseClasses = []*serverClass{{name: "AnotherClass"}, {name: "YetAnotherClass"}} sc.flattenedProps = []flattenedPropEntry{{name: "prop1"}, {name: "prop2"}} - expectedString = `ServerClass: id=1 name=TestClass + expectedString = `serverClass: id=1 name=TestClass dataTableId=2 dataTableName=ADataTable baseClasses: diff --git a/pkg/demoinfocs/sendtables/serverclass_interface.go b/pkg/demoinfocs/sendtables/serverclass_interface.go new file mode 100644 index 00000000..336834d8 --- /dev/null +++ b/pkg/demoinfocs/sendtables/serverclass_interface.go @@ -0,0 +1,25 @@ +// DO NOT EDIT: Auto generated + +package sendtables + +// ServerClass is an auto-generated interface for property, intended to be used when mockability is needed. +// serverClass stores meta information about Entity types (e.g. palyers, teams etc.). +type ServerClass interface { + // ID returns the server-class's ID. + ID() int + // Name returns the server-class's name. + Name() string + // DataTableID returns the data-table ID. + DataTableID() int + // DataTableName returns the data-table name. + DataTableName() string + // BaseClasses returns the base-classes of this server-class. + BaseClasses() (res []ServerClass) + // PropertyEntries returns the names of all property-entries on this server-class. + PropertyEntries() []string + // PropertyEntryDefinitions returns all property-entries on this server-class. + PropertyEntryDefinitions() []PropertyEntry + // OnEntityCreated registers a function to be called when a new entity is created from this serverClass. + OnEntityCreated(handler EntityCreatedHandler) + String() string +} diff --git a/pkg/demoinfocs/sendtables/st_parser.go b/pkg/demoinfocs/sendtables/st_parser.go index 44235aea..4b22415e 100644 --- a/pkg/demoinfocs/sendtables/st_parser.go +++ b/pkg/demoinfocs/sendtables/st_parser.go @@ -1,15 +1,17 @@ package sendtables import ( + "bytes" "fmt" "math" "sort" "google.golang.org/protobuf/proto" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" - "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/constants" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" ) // SendTableParser provides functions for parsing send-tables. @@ -17,19 +19,83 @@ import ( // Intended for internal use only. type SendTableParser struct { sendTables []sendTable - serverClasses ServerClasses + serverClasses serverClasses currentExcludes []*excludeEntry - currentBaseclasses []*ServerClass + currentBaseclasses []*serverClass instanceBaselines map[int][]byte // Maps server-class IDs to raw instance baselines, needed for when we don't have the server-class when setting the baseline } +// the following funcs are S2 only + +func (p *SendTableParser) OnDemoClassInfo(*msgs2.CDemoClassInfo) error { + panic("not implemented") +} + +func (p *SendTableParser) OnServerInfo(*msgs2.CSVCMsg_ServerInfo) error { + panic("not implemented") +} + +func (p *SendTableParser) OnPacketEntities(*msgs2.CSVCMsg_PacketEntities) error { + panic("not implemented") +} + +// EntityOp is a bitmask representing the type of operation performed on an Entity +type EntityOp int + +const ( + EntityOpNone EntityOp = 0x00 + EntityOpCreated EntityOp = 0x01 + EntityOpUpdated EntityOp = 0x02 + EntityOpDeleted EntityOp = 0x04 + EntityOpEntered EntityOp = 0x08 + EntityOpLeft EntityOp = 0x10 + EntityOpCreatedEntered EntityOp = EntityOpCreated | EntityOpEntered + EntityOpUpdatedEntered EntityOp = EntityOpUpdated | EntityOpEntered + EntityOpDeletedLeft EntityOp = EntityOpDeleted | EntityOpLeft +) + +var entityOpNames = map[EntityOp]string{ + EntityOpNone: "None", + EntityOpCreated: "Created", + EntityOpUpdated: "Updated", + EntityOpDeleted: "Deleted", + EntityOpEntered: "Entered", + EntityOpLeft: "Left", + EntityOpCreatedEntered: "Created+Entered", + EntityOpUpdatedEntered: "Updated+Entered", + EntityOpDeletedLeft: "Deleted+Left", +} + +// Flag determines whether an EntityOp includes another. This is primarily +// offered to prevent bit flag errors in downstream clients. +func (o EntityOp) Flag(p EntityOp) bool { + return o&p != 0 +} + +// String returns a human identifiable string for the EntityOp +func (o EntityOp) String() string { + return entityOpNames[o] +} + +// EntityHandler is a function that receives Entity updates +type EntityHandler func(Entity, EntityOp) error + +func (p *SendTableParser) OnEntity(h EntityHandler) { + panic("not implemented") +} + // ServerClasses is a searchable list of ServerClasses. -type ServerClasses []*ServerClass +type ServerClasses interface { + All() []ServerClass + FindByName(name string) ServerClass +} -func (sc ServerClasses) findByDataTableName(name string) *ServerClass { +type serverClasses []*serverClass + +func (sc serverClasses) findByDataTableName(name string) *serverClass { for _, v := range sc { - if v.dataTableName == name { + if v.DataTableName() == name { return v } } @@ -40,9 +106,9 @@ func (sc ServerClasses) findByDataTableName(name string) *ServerClass { // FindByName finds and returns a server-class by it's name. // // Returns nil if the server-class wasn't found. -func (sc ServerClasses) FindByName(name string) *ServerClass { +func (sc serverClasses) FindByName(name string) ServerClass { for _, v := range sc { - if v.name == name { + if v.Name() == name { return v } } @@ -50,6 +116,15 @@ func (sc ServerClasses) FindByName(name string) *ServerClass { return nil } +// All returns all server-classes. +func (sc serverClasses) All() (res []ServerClass) { + for _, v := range sc { + res = append(res, v) + } + + return +} + type excludeEntry struct { varName string dataTableName string @@ -66,7 +141,9 @@ func (p *SendTableParser) ServerClasses() ServerClasses { // ParsePacket parses a send-table packet. // // Intended for internal use only. -func (p *SendTableParser) ParsePacket(r *bit.BitReader) { +func (p *SendTableParser) ParsePacket(b []byte) error { + r := bit.NewSmallBitReader(bytes.NewReader(b)) + for { t := msg.SVC_Messages(r.ReadVarInt32()) if t != msg.SVC_Messages_svc_SendTable { @@ -84,7 +161,7 @@ func (p *SendTableParser) ParsePacket(r *bit.BitReader) { serverClassCount := int(r.ReadInt(16)) for i := 0; i < serverClassCount; i++ { - class := new(ServerClass) + class := new(serverClass) class.id = int(r.ReadInt(16)) if class.id > serverClassCount { @@ -108,19 +185,20 @@ func (p *SendTableParser) ParsePacket(r *bit.BitReader) { for i := 0; i < serverClassCount; i++ { p.flattenDataTable(i) } + + return nil } func parseSendTable(r *bit.BitReader) sendTable { + var st msg.CSVCMsg_SendTable + size := int(r.ReadVarInt32()) - r.BeginChunk(size << 3) - st := new(msg.CSVCMsg_SendTable) - if err := proto.Unmarshal(r.ReadBytes(size), st); err != nil { + err := proto.Unmarshal(r.ReadBytes(size), &st) + if err != nil { panic(fmt.Sprintf("Failed to unmarshal SendTable: %s", err.Error())) } - r.EndChunk() - var res sendTable for _, v := range st.GetProps() { diff --git a/pkg/demoinfocs/sendtables2/class.go b/pkg/demoinfocs/sendtables2/class.go new file mode 100644 index 00000000..5e7f008f --- /dev/null +++ b/pkg/demoinfocs/sendtables2/class.go @@ -0,0 +1,92 @@ +package sendtables2 + +import ( + "fmt" + "strings" + + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" +) + +type class struct { + classId int32 + name string + serializer *serializer + createdHandlers []st.EntityCreatedHandler +} + +func (c *class) ID() int { + return int(c.classId) +} + +func (c *class) Name() string { + return c.name +} + +func (c *class) DataTableID() int { + panic("not implemented") +} + +func (c *class) DataTableName() string { + panic("not implemented") +} + +func (c *class) BaseClasses() (res []st.ServerClass) { + panic("not implemented") +} + +func (c *class) PropertyEntries() []string { + return c.collectFieldsEntries(c.serializer.fields, "") +} + +func (c *class) PropertyEntryDefinitions() []st.PropertyEntry { + panic("not implemented") +} + +func (c *class) OnEntityCreated(handler st.EntityCreatedHandler) { + c.createdHandlers = append(c.createdHandlers, handler) +} + +func (c *class) String() string { + props := make([]string, 0, len(c.serializer.fields)) + + for _, f := range c.serializer.fields { + props = append(props, fmt.Sprintf("%s: %s", f.varName, f.varType)) + } + + return fmt.Sprintf("%d %s\n %s", c.classId, c.name, strings.Join(props, "\n ")) +} + +func (c *class) collectFieldsEntries(fields []*field, prefix string) []string { + paths := make([]string, 0) + + for _, field := range fields { + if field.serializer != nil { + subPaths := c.collectFieldsEntries(field.serializer.fields, prefix+field.serializer.name+".") + paths = append(paths, subPaths...) + } else { + paths = append(paths, prefix+field.varName) + } + } + + return paths +} + +func (c *class) getNameForFieldPath(fp *fieldPath) string { + return strings.Join(c.serializer.getNameForFieldPath(fp, 0), ".") +} + +func (c *class) getTypeForFieldPath(fp *fieldPath) *fieldType { + return c.serializer.getTypeForFieldPath(fp, 0) +} + +func (c *class) getDecoderForFieldPath(fp *fieldPath) fieldDecoder { + return c.serializer.getDecoderForFieldPath(fp, 0) +} + +func (c *class) getFieldPathForName(fp *fieldPath, name string) bool { + return c.serializer.getFieldPathForName(fp, name) +} + +func (c *class) getFieldPaths(fp *fieldPath, state *fieldState) []*fieldPath { + return c.serializer.getFieldPaths(fp, state) +} diff --git a/pkg/demoinfocs/sendtables2/entity.go b/pkg/demoinfocs/sendtables2/entity.go new file mode 100644 index 00000000..2d000d18 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/entity.go @@ -0,0 +1,572 @@ +package sendtables2 + +import ( + "fmt" + "strings" + + "github.com/golang/geo/r3" + + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/constants" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" +) + +// Entity represents a single game entity in the replay +type Entity struct { + index int32 + serial int32 + class *class + active bool + state *fieldState + fpCache map[string]*fieldPath + fpNoop map[string]bool + + onCreateFinished []func() + onDestroy []func() + updateHandlers map[string][]st.PropertyUpdateHandler +} + +func (e *Entity) ServerClass() st.ServerClass { + return e.class +} + +func (e *Entity) ID() int { + return int(e.index) +} + +func (e *Entity) SerialNum() int { + return int(e.serial) +} + +func (e *Entity) Properties() (out []st.Property) { + for _, fp := range e.class.getFieldPaths(newFieldPath(), e.state) { + out = append(out, e.Property(e.class.getNameForFieldPath(fp))) + } + + return +} + +type property struct { + entity *Entity + name string +} + +func (p property) Name() string { + return p.name +} + +func (p property) Value() st.PropertyValue { + return st.PropertyValue{ + VectorVal: r3.Vector{}, + IntVal: 0, + Int64Val: 0, + ArrayVal: nil, + StringVal: "", + FloatVal: 0, + Any: p.entity.Get(p.name), + S2: true, + } +} + +func (p property) Type() st.PropertyType { + panic("not implemented") +} + +func (p property) ArrayElementType() st.PropertyType { + panic("not implemented") +} + +func (p property) OnUpdate(handler st.PropertyUpdateHandler) { + p.entity.updateHandlers[p.name] = append(p.entity.updateHandlers[p.name], handler) +} + +type bindFactory func(variable any) st.PropertyUpdateHandler + +var bindFactoryByType = map[st.PropertyValueType]bindFactory{ + st.ValTypeVector: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*r3.Vector) = v.R3Vec() + } + }, + st.ValTypeInt: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*int) = v.Int() + } + }, + st.ValTypeArray: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*[]st.PropertyValue) = v.ArrayVal + } + }, + st.ValTypeString: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*string) = v.String() + } + }, + st.ValTypeBoolInt: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*bool) = v.BoolVal() + } + }, + st.ValTypeFloat32: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*float32) = v.Float() + } + }, + st.ValTypeFloat64: func(variable any) st.PropertyUpdateHandler { + return func(v st.PropertyValue) { + *variable.(*float64) = float64(v.Float()) + } + }, +} + +func (p property) Bind(variable any, t st.PropertyValueType) { + p.entity.updateHandlers[p.name] = append(p.entity.updateHandlers[p.name], bindFactoryByType[t](variable)) +} + +func (e *Entity) Property(name string) st.Property { + ok := e.class.serializer.getFieldPathForName(newFieldPath(), name) + if !ok { + return nil + } + + return property{ + entity: e, + name: name, + } +} + +func (e *Entity) BindProperty(prop string, variable any, t st.PropertyValueType) { + e.Property(prop).Bind(variable, t) +} + +func (e *Entity) PropertyValue(name string) (st.PropertyValue, bool) { + prop := e.Property(name) + if prop == nil { + return st.PropertyValue{S2: true}, false + } + + v := prop.Value() + + return v, true +} + +func (e *Entity) PropertyValueMust(name string) st.PropertyValue { + val, ok := e.PropertyValue(name) + if !ok { + panic(fmt.Sprintf("property '%s' not found", name)) + } + + return val +} + +func (e *Entity) ApplyUpdate(reader *bit.BitReader) { + panic("not implemented") +} + +const ( + serverClassPlayer = "CCSPlayerPawn" + + propCellX = "CBodyComponent.m_cellX" + propCellY = "CBodyComponent.m_cellY" + propCellZ = "CBodyComponent.m_cellZ" + propVecX = "CBodyComponent.m_vecX" + propVecY = "CBodyComponent.m_vecY" + propVecZ = "CBodyComponent.m_vecZ" +) + +func (e *Entity) isPlayer() bool { + return e.class.name == serverClassPlayer +} + +// Returns a coordinate from a cell + offset +func coordFromCell(cell uint64, offset float32) float64 { + const ( + cellBits = 9 + maxCoordInt = 16384 + ) + cellCoord := float64(cell)*float64(1<\n %s", e.index, e.class.name, strings.Join(props, "\n ")) +} + +// Map returns a map of current entity state as key-value pairs +func (e *Entity) Map() map[string]interface{} { + values := make(map[string]interface{}) + for _, fp := range e.class.getFieldPaths(newFieldPath(), e.state) { + values[e.class.getNameForFieldPath(fp)] = e.state.get(fp) + } + return values +} + +// Get returns the current value of the Entity state for the given key +func (e *Entity) Get(name string) interface{} { + if fp, ok := e.fpCache[name]; ok { + return e.state.get(fp) + } + if e.fpNoop[name] { + return nil + } + + fp := newFieldPath() + if !e.class.getFieldPathForName(fp, name) { + e.fpNoop[name] = true + fp.release() + return nil + } + e.fpCache[name] = fp + + return e.state.get(fp) +} + +// Exists returns true if the given key exists in the Entity state +func (e *Entity) Exists(name string) bool { + return e.Get(name) != nil +} + +// GetInt32 gets given key as an int32 +func (e *Entity) GetInt32(name string) (int32, bool) { + x, ok := e.Get(name).(int32) + return x, ok +} + +// GetUint32 gets given key as a uint32 +func (e *Entity) GetUint32(name string) (uint32, bool) { + if v := e.Get(name); v != nil { + switch x := v.(type) { + case uint32: + return x, true + case uint64: + return uint32(x), true + } + } + return 0, false +} + +// GetUint64 gets given key as a uint64 +func (e *Entity) GetUint64(name string) (uint64, bool) { + x, ok := e.Get(name).(uint64) + return x, ok +} + +// GetFloat32 gets given key as an float32 +func (e *Entity) GetFloat32(name string) (float32, bool) { + x, ok := e.Get(name).(float32) + return x, ok +} + +// GetString gets given key as a string +func (e *Entity) GetString(name string) (string, bool) { + x, ok := e.Get(name).(string) + return x, ok +} + +// GetBool gets given key as a bool +func (e *Entity) GetBool(name string) (bool, bool) { + x, ok := e.Get(name).(bool) + return x, ok +} + +// GetSerial return the serial of the class associated with this Entity +func (e *Entity) GetSerial() int32 { + return e.serial +} + +// GetClassId returns the id of the class associated with this Entity +func (e *Entity) GetClassId() int32 { + return e.class.classId +} + +// GetClassName returns the name of the class associated with this Entity +func (e *Entity) GetClassName() string { + return e.class.name +} + +// GetIndex returns the index of this Entity +func (e *Entity) GetIndex() int32 { + return e.index +} + +// FindEntity finds a given Entity by index +func (p *Parser) FindEntity(index int32) *Entity { + return p.entities[index] +} + +func handle2idx(handle uint64) int32 { + return int32(handle & constants.EntityHandleIndexMaskSource2) +} + +func serialForHandle(handle uint64) int32 { + return int32(handle >> constants.MaxEdictBitsSource2) +} + +// FindEntityByHandle finds a given Entity by handle +func (p *Parser) FindEntityByHandle(handle uint64) *Entity { + idx := handle2idx(handle) + e := p.FindEntity(idx) + if e != nil && e.GetSerial() != serialForHandle(handle) { + return nil + } + return e +} + +// FilterEntity finds entities by callback +func (p *Parser) FilterEntity(fb func(*Entity) bool) []*Entity { + entities := make([]*Entity, 0) + + for _, et := range p.entities { + if fb(et) { + entities = append(entities, et) + } + } + + return entities +} + +func (e *Entity) readFields(r *reader) { + fps := readFieldPaths(r) + + for _, fp := range fps { + decoder := e.class.serializer.getDecoderForFieldPath(fp, 0) + + val := decoder(r) + e.state.set(fp, val) + + for _, h := range e.updateHandlers[e.class.getNameForFieldPath(fp)] { + h(st.PropertyValue{ + VectorVal: r3.Vector{}, + IntVal: 0, + Int64Val: 0, + ArrayVal: nil, + StringVal: "", + FloatVal: 0, + Any: val, + S2: true, + }) + } + + fp.release() + } +} + +// Internal Callback for OnCSVCMsg_PacketEntities. +func (p *Parser) OnPacketEntities(m *msgs2.CSVCMsg_PacketEntities) error { + r := newReader(m.GetEntityData()) + + var ( + index = int32(-1) + updates = int(m.GetUpdatedEntries()) + cmd uint32 + classId int32 + serial int32 + ) + + if !m.GetIsDelta() { + if p.entityFullPackets > 0 { + return nil + } + p.entityFullPackets++ + } + + type tuple struct { + ent *Entity + op st.EntityOp + } + + var tuples []tuple + + for ; updates > 0; updates-- { + var ( + e *Entity + op st.EntityOp + ) + + next := index + int32(r.readUBitVar()) + 1 + index = next + + cmd = r.readBits(2) + if cmd&0x01 == 0 { + if cmd&0x02 != 0 { + classId = int32(r.readBits(p.classIdSize)) + serial = int32(r.readBits(17)) + r.readVarUint32() + + class := p.classesById[classId] + if class == nil { + _panicf("unable to find new class %d", classId) + } + + baseline := p.classBaselines[classId] + if baseline == nil { + _panicf("unable to find new baseline %d", classId) + } + + e = newEntity(index, serial, class) + p.entities[index] = e + + e.readFields(newReader(baseline)) + e.readFields(r) + + // Fire created-handlers so update-handlers can be registered + for _, h := range class.createdHandlers { + h(e) + } + + // Fire all post-creation actions + for _, f := range e.onCreateFinished { + f() + } + + op = st.EntityOpCreated | st.EntityOpEntered + } else { + if e = p.entities[index]; e == nil { + _panicf("unable to find existing entity %d", index) + } + + op = st.EntityOpUpdated + if !e.active { + e.active = true + op |= st.EntityOpEntered + } + + e.readFields(r) + } + } else { + e = p.entities[index] + if e == nil { + continue + _panicf("unable to find existing entity %d", index) + } + + if !e.active { + _panicf("entity %d (%s) ordered to leave, already inactive", e.class.classId, e.class.name) + } + + op = st.EntityOpLeft + if cmd&0x02 != 0 { + op |= st.EntityOpDeleted + + e.Destroy() + + delete(p.entities, index) + } + } + + tuples = append(tuples, tuple{e, op}) + } + + for _, t := range tuples { + e := t.ent + + for _, h := range p.entityHandlers { + if err := h(e, t.op); err != nil { + return err + } + } + + if t.op&st.EntityOpCreated != 0 { + for prop, hs := range e.updateHandlers { + v := e.PropertyValueMust(prop) + + for _, h := range hs { + h(v) + } + } + } + } + + if r.remBytes() > 1 || r.bitCount > 7 { + // FIXME: maybe we should panic("didn't consume all data") + } + + return nil +} + +// OnEntity registers an EntityHandler that will be called when an entity +// is created, updated, deleted, etc. +func (p *Parser) OnEntity(h st.EntityHandler) { + p.entityHandlers = append(p.entityHandlers, h) +} diff --git a/pkg/demoinfocs/sendtables2/field.go b/pkg/demoinfocs/sendtables2/field.go new file mode 100644 index 00000000..4a24871f --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field.go @@ -0,0 +1,338 @@ +package sendtables2 + +import ( + "fmt" + "strconv" + + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" +) + +const ( + fieldModelSimple = iota + fieldModelFixedArray + fieldModelFixedTable + fieldModelVariableArray + fieldModelVariableTable +) + +type field struct { + parentName string + varName string + varType string + sendNode string + serializerName string + serializerVersion int32 + encoder string + encodeFlags *int32 + bitCount *int32 + lowValue *float32 + highValue *float32 + fieldType *fieldType + serializer *serializer + value interface{} + model int + polyTypes map[uint32]*serializer + + decoder fieldDecoder + baseDecoder fieldDecoder + childDecoder fieldDecoder +} + +func (f *field) modelString() string { + switch f.model { + case fieldModelFixedArray: + return "fixed-array" + case fieldModelFixedTable: + return "fixed-table" + case fieldModelVariableArray: + return "variable-array" + case fieldModelVariableTable: + return "variable-table" + case fieldModelSimple: + return "simple" + default: + return "other" + } +} + +func newField(serializers map[string]*serializer, ser *msgs2.CSVCMsg_FlattenedSerializer, f *msgs2.ProtoFlattenedSerializerFieldT) *field { + resolve := func(p *int32) string { + if p == nil { + return "" + } + return ser.GetSymbols()[*p] + } + + x := &field{ + varName: resolve(f.VarNameSym), + varType: resolve(f.VarTypeSym), + sendNode: resolve(f.SendNodeSym), + serializerName: resolve(f.FieldSerializerNameSym), + serializerVersion: f.GetFieldSerializerVersion(), + encoder: resolve(f.VarEncoderSym), + encodeFlags: f.EncodeFlags, + bitCount: f.BitCount, + lowValue: f.LowValue, + highValue: f.HighValue, + model: fieldModelSimple, + } + + if len(f.PolymorphicTypes) > 0 { + x.polyTypes = make(map[uint32]*serializer, len(f.PolymorphicTypes)) + + for i, t := range f.PolymorphicTypes { + x.polyTypes[uint32(i+1)] = serializers[resolve(t.PolymorphicFieldSerializerNameSym)] + } + } + + if x.sendNode == "(root)" { + x.sendNode = "" + } + + return x +} + +func (f *field) setModel(model int) { + f.model = model + + switch model { + case fieldModelFixedArray: + f.decoder = findDecoder(f) + + case fieldModelFixedTable: + if len(f.polyTypes) > 0 { + f.baseDecoder = func(r *reader) interface{} { + b := r.readBoolean() + polyTypeIndex := r.readUBitVar() + f.serializer = f.polyTypes[polyTypeIndex] + + return b + } + } else { + f.baseDecoder = booleanDecoder + } + + case fieldModelVariableArray: + if f.fieldType.genericType == nil { + _panicf("no generic type for variable array field %#v", f) + } + f.baseDecoder = unsignedDecoder + f.childDecoder = findDecoderByBaseType(f) + + case fieldModelVariableTable: + f.baseDecoder = unsignedDecoder + + case fieldModelSimple: + f.decoder = findDecoder(f) + } +} + +func (f *field) getName() string { + return f.varName +} + +func (f *field) getFieldForFieldPath(fp *fieldPath, pos int) *field { + switch f.model { + case fieldModelFixedArray: + return f + + case fieldModelFixedTable: + if fp.last != pos-1 { + return f.serializer.getFieldForFieldPath(fp, pos) + } + + case fieldModelVariableArray: + return f + + case fieldModelVariableTable: + if fp.last >= pos+1 { + return f.serializer.getFieldForFieldPath(fp, pos+1) + } + } + + return f +} + +func (f *field) getNameForFieldPath(fp *fieldPath, pos int) []string { + x := []string{f.varName} + + switch f.model { + case fieldModelFixedArray: + if fp.last == pos { + x = append(x, fmt.Sprintf("%04d", fp.path[pos])) + } + + case fieldModelFixedTable: + if fp.last >= pos { + x = append(x, f.serializer.getNameForFieldPath(fp, pos)...) + } + + case fieldModelVariableArray: + if fp.last == pos { + x = append(x, fmt.Sprintf("%04d", fp.path[pos])) + } + + case fieldModelVariableTable: + if fp.last != pos-1 { + x = append(x, fmt.Sprintf("%04d", fp.path[pos])) + if fp.last != pos { + x = append(x, f.serializer.getNameForFieldPath(fp, pos+1)...) + } + } + } + + return x +} + +func (f *field) getTypeForFieldPath(fp *fieldPath, pos int) *fieldType { + switch f.model { + case fieldModelFixedArray: + return f.fieldType + + case fieldModelFixedTable: + if fp.last != pos-1 { + return f.serializer.getTypeForFieldPath(fp, pos) + } + + case fieldModelVariableArray: + if fp.last == pos { + return f.fieldType.genericType + } + + case fieldModelVariableTable: + if fp.last >= pos+1 { + return f.serializer.getTypeForFieldPath(fp, pos+1) + } + } + + return f.fieldType +} + +func (f *field) getDecoderForFieldPath(fp *fieldPath, pos int) fieldDecoder { + switch f.model { + case fieldModelFixedArray: + return f.decoder + + case fieldModelFixedTable: + if fp.last == pos-1 { + return f.baseDecoder + } + return f.serializer.getDecoderForFieldPath(fp, pos) + + case fieldModelVariableArray: + if fp.last == pos { + return f.childDecoder + } + return f.baseDecoder + + case fieldModelVariableTable: + if fp.last >= pos+1 { + return f.serializer.getDecoderForFieldPath(fp, pos+1) + } + return f.baseDecoder + } + + return f.decoder +} + +func (f *field) getFieldPathForName(fp *fieldPath, name string) bool { + switch f.model { + case fieldModelFixedArray: + assertLen(name, 4) + fp.path[fp.last] = mustAtoi(name) + return true + + case fieldModelFixedTable: + return f.serializer.getFieldPathForName(fp, name) + + case fieldModelVariableArray: + assertLen(name, 4) + fp.path[fp.last] = mustAtoi(name) + return true + + case fieldModelVariableTable: + assertLenMin(name, 6) + fp.path[fp.last] = mustAtoi(name[:4]) + fp.last++ + return f.serializer.getFieldPathForName(fp, name[5:]) + + case fieldModelSimple: + _panicf("not supported") + } + + return false +} + +func (f *field) getFieldPaths(fp *fieldPath, state *fieldState) []*fieldPath { + x := make([]*fieldPath, 0, 1) + + switch f.model { + case fieldModelFixedArray: + if sub, ok := state.get(fp).(*fieldState); ok { + fp.last++ + for i, v := range sub.state { + if v != nil { + fp.path[fp.last] = i + x = append(x, fp.copy()) + } + } + fp.last-- + } + + case fieldModelFixedTable: + if sub, ok := state.get(fp).(*fieldState); ok { + fp.last++ + x = append(x, f.serializer.getFieldPaths(fp, sub)...) + fp.last-- + } + + case fieldModelVariableArray: + if sub, ok := state.get(fp).(*fieldState); ok { + fp.last++ + for i, v := range sub.state { + if v != nil { + fp.path[fp.last] = i + x = append(x, fp.copy()) + } + } + fp.last-- + } + + case fieldModelVariableTable: + if sub, ok := state.get(fp).(*fieldState); ok { + fp.last += 2 + for i, v := range sub.state { + if vv, ok := v.(*fieldState); ok { + fp.path[fp.last-1] = i + x = append(x, f.serializer.getFieldPaths(fp, vv)...) + } + } + fp.last -= 2 + } + + case fieldModelSimple: + x = append(x, fp.copy()) + } + + return x +} + +func mustAtoi(s string) int { + n, err := strconv.Atoi(s) + if err != nil { + _panicf("assertion failed: '%s' not a number", s) + } + return n +} + +func assertLen(s string, n int) { + if len(s) != n { + _panicf("assertion failed: '%s' is not %d long", s, n) + } +} + +func assertLenMin(s string, n int) { + if len(s) < n { + _panicf("assertion failed: '%s' is less than %d long", s, n) + } +} diff --git a/pkg/demoinfocs/sendtables2/field_decoder.go b/pkg/demoinfocs/sendtables2/field_decoder.go new file mode 100644 index 00000000..fc7cb997 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field_decoder.go @@ -0,0 +1,430 @@ +package sendtables2 + +import ( + "math" +) + +type fieldDecoder func(*reader) interface{} +type fieldFactory func(*field) fieldDecoder + +var fieldTypeFactories = map[string]fieldFactory{ + /* + DemoSimpleEncoders_t { m_Name = "float32" m_VarType = "NET_DATA_TYPE_FLOAT32" }, + DemoSimpleEncoders_t { m_Name = "CNetworkedQuantizedFloat" m_VarType = "NET_DATA_TYPE_FLOAT32" }, + */ + "float32": floatFactory, + "CNetworkedQuantizedFloat": quantizedFactory, + + "uint64": unsigned64Factory, + + /* + // some things with > 1 component + DemoSimpleEncoders_t { m_Name = "Vector" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="3" }, + DemoSimpleEncoders_t { m_Name = "QAngle" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="3" }, + DemoSimpleEncoders_t { m_Name = "Vector2D" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="2" }, + DemoSimpleEncoders_t { m_Name = "Vector4D" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="4" }, + DemoSimpleEncoders_t { m_Name = "Quaternion" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="4" }, + DemoSimpleEncoders_t { m_Name = "CTransform" m_VarType = "NET_DATA_TYPE_FLOAT32" m_nComponents="6" }, + */ + "Vector": vectorFactory(3), + "Vector2D": vectorFactory(2), + "Vector4D": vectorFactory(4), + "Quaternion": vectorFactory(4), + "CTransform": vectorFactory(6), + + "CStrongHandle": unsigned64Factory, + "QAngle": qangleFactory, +} + +var fieldNameDecoders = map[string]fieldDecoder{ + "m_iClip1": ammoDecoder, +} + +var fieldTypeDecoders = map[string]fieldDecoder{ + /* + FIXME: dotabuff/manta doesn't have these? + DemoSimpleEncoders_t { m_Name = "float32" m_VarType = "NET_DATA_TYPE_FLOAT32" }, + DemoSimpleEncoders_t { m_Name = "float64" m_VarType = "NET_DATA_TYPE_FLOAT64" }, + */ + // "float32": noscaleDecoder, + + /* + DemoSimpleEncoders_t { m_Name = "bool" m_VarType = "NET_DATA_TYPE_BOOL" }, + + DemoSimpleEncoders_t { m_Name = "char" m_VarType = "NET_DATA_TYPE_INT64" }, + DemoSimpleEncoders_t { m_Name = "int8" m_VarType = "NET_DATA_TYPE_INT64" }, + DemoSimpleEncoders_t { m_Name = "int16" m_VarType = "NET_DATA_TYPE_INT64" }, + DemoSimpleEncoders_t { m_Name = "int32" m_VarType = "NET_DATA_TYPE_INT64" }, + DemoSimpleEncoders_t { m_Name = "int64" m_VarType = "NET_DATA_TYPE_INT64" }, + + DemoSimpleEncoders_t { m_Name = "uint8" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "uint16" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "uint32" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "uint64" m_VarType = "NET_DATA_TYPE_UINT64" }, + + DemoSimpleEncoders_t { m_Name = "CUtlString" m_VarType = "NET_DATA_TYPE_STRING" }, + DemoSimpleEncoders_t { m_Name = "CUtlSymbolLarge" m_VarType = "NET_DATA_TYPE_STRING" }, + */ + "bool": booleanDecoder, + + "int8": signedDecoder, + "int16": signedDecoder, + "int32": signedDecoder, + + "uint8": unsignedDecoder, + "uint16": unsignedDecoder, + "uint32": unsignedDecoder, + + "char": stringDecoder, + "CUtlString": stringDecoder, + "CUtlSymbolLarge": stringDecoder, + + // some dotabuff/manta stuff + "GameTime_t": noscaleDecoder, + "CHandle": unsignedDecoder, + + /* + // some commmon stufff + DemoSimpleEncoders_t { m_Name = "Color" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CUtlStringToken" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "EHandle" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CEntityHandle" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CGameSceneNodeHandle" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CStrongHandle" m_VarType = "NET_DATA_TYPE_UINT64" }, + */ + "Color": unsignedDecoder, + "CUtlStringToken": unsignedDecoder, + "EHandle": unsignedDecoder, + "CEntityHandle": unsignedDecoder, + "CGameSceneNodeHandle": unsignedDecoder, + "CStrongHandle": unsignedDecoder, + + /* + /// some commmon stufff + DemoSimpleEncoders_t { m_Name = "HSequence" m_VarType = "NET_DATA_TYPE_INT64" }, + DemoSimpleEncoders_t { m_Name = "AttachmentHandle_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "CEntityIndex" m_VarType = "NET_DATA_TYPE_INT64" }, + */ + "HSequence": signedDecoder, + "AttachmentHandle_t": unsignedDecoder, + "CEntityIndex": signedDecoder, + + /* + // bunch of enum types, too + DemoSimpleEncoders_t { m_Name = "MoveCollide_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "MoveType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "RenderMode_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "RenderFx_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "SolidType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "SurroundingBoundsType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "ModelConfigHandle_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "NPC_STATE" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 + DemoSimpleEncoders_t { m_Name = "StanceType_t" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 ? + DemoSimpleEncoders_t { m_Name = "AbilityPathType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? no neg values + DemoSimpleEncoders_t { m_Name = "WeaponState_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? no neg values + DemoSimpleEncoders_t { m_Name = "DoorState_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? no neg values + DemoSimpleEncoders_t { m_Name = "RagdollBlendDirection" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 ? + DemoSimpleEncoders_t { m_Name = "BeamType_t" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 ? + DemoSimpleEncoders_t { m_Name = "BeamClipStyle_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "EntityDisolveType_t" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 ? + */ + "MoveCollide_t": unsignedDecoder, + "MoveType_t": unsignedDecoder, + "RenderMode_t": unsignedDecoder, + "RenderFx_t": unsignedDecoder, + "SolidType_t": unsignedDecoder, + "SurroundingBoundsType_t": unsignedDecoder, + "ModelConfigHandle_t": unsignedDecoder, + "NPC_STATE": signedDecoder, + "StanceType_t": signedDecoder, + "WeaponState_t": unsignedDecoder, + "DoorState_t": unsignedDecoder, + "RagdollBlendDirection": signedDecoder, + "BeamType_t": signedDecoder, + "BeamClipStyle_t": unsignedDecoder, + "EntityDisolveType_t": signedDecoder, + + /* + DemoSimpleEncoders_t { m_Name = "ValueRemapperInputType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "ValueRemapperOutputType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "ValueRemapperHapticsType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "ValueRemapperMomentumType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "ValueRemapperRatchetType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + + DemoSimpleEncoders_t { m_Name = "PointWorldTextJustifyHorizontal_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "PointWorldTextJustifyVertical_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "PointWorldTextReorientMode_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + + DemoSimpleEncoders_t { m_Name = "PoseController_FModType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "PrecipitationType_t" m_VarType = "NET_DATA_TYPE_INT64" }, // int32 ? + DemoSimpleEncoders_t { m_Name = "ShardSolid_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "ShatterPanelMode" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + */ + "ValueRemapperInputType_t": unsignedDecoder, + "ValueRemapperOutputType_t": unsignedDecoder, + "ValueRemapperHapticsType_t": unsignedDecoder, + "ValueRemapperMomentumType_t": unsignedDecoder, + "ValueRemapperRatchetType_t": unsignedDecoder, + "PointWorldTextJustifyHorizontal_t": unsignedDecoder, + "PointWorldTextJustifyVertical_t": unsignedDecoder, + "PointWorldTextReorientMode_t": unsignedDecoder, + "PoseController_FModType_t": unsignedDecoder, + "PrecipitationType_t": signedDecoder, + "ShardSolid_t": unsignedDecoder, + "ShatterPanelMode": unsignedDecoder, + + /* + DemoSimpleEncoders_t{ m_Name = "gender_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8, deprecated enum type in S2 ? + + DemoSimpleEncoders_t { m_Name = "item_definition_index_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint16/32 depending on game + DemoSimpleEncoders_t { m_Name = "itemid_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint64 + DemoSimpleEncoders_t { m_Name = "style_index_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "attributeprovidertypes_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint32 ? + DemoSimpleEncoders_t { m_Name = "DamageOptions_t" m_VarType = "NET_DATA_TYPE_UINT64" }, // uint8 + DemoSimpleEncoders_t { m_Name = "ScreenEffectType_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "MaterialModifyMode_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "AmmoIndex_t" m_VarType = "NET_DATA_TYPE_INT64" }, // int8 + DemoSimpleEncoders_t { m_Name = "TakeDamageFlags_t" m_VarType = "NET_DATA_TYPE_INT64" }, // uint16 + */ + "gender_t": unsignedDecoder, + "item_definition_index_t": unsignedDecoder, + "itemid_t": unsignedDecoder, + "style_index_t": unsignedDecoder, + "attributeprovidertypes_t": unsignedDecoder, + "DamageOptions_t": unsignedDecoder, + "ScreenEffectType_t": unsignedDecoder, + "MaterialModifyMode_t": unsignedDecoder, + "AmmoIndex_t": signedDecoder, + "TakeDamageFlags_t": signedDecoder, + + /* + // csgo + DemoSimpleEncoders_t { m_Name = "CSWeaponMode" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "ESurvivalSpawnTileState" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "SpawnStage_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "ESurvivalGameRuleDecision_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "RelativeDamagedDirection_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CSPlayerState" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "MedalRank_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "CSPlayerBlockingUseAction_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "MoveMountingAmount_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "QuestProgress::Reason" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "tablet_skin_state_t" m_VarType = "NET_DATA_TYPE_UINT64" }, + */ + "CSWeaponMode": unsignedDecoder, + "ESurvivalSpawnTileState": unsignedDecoder, + "SpawnStage_t": unsignedDecoder, + "ESurvivalGameRuleDecision_t": unsignedDecoder, + "RelativeDamagedDirection_t": unsignedDecoder, + "CSPlayerState": unsignedDecoder, + "MedalRank_t": unsignedDecoder, + "CSPlayerBlockingUseAction_t": unsignedDecoder, + "MoveMountingAmount_t": unsignedDecoder, + "QuestProgress::Reason": unsignedDecoder, + "tablet_skin_state_t": unsignedDecoder, + + "CBodyComponent": componentDecoder, + "CPhysicsComponent": componentDecoder, + "CLightComponent": componentDecoder, + "CRenderComponent": componentDecoder, +} + +func unsigned64Factory(f *field) fieldDecoder { + switch f.encoder { + case "fixed64": + return fixed64Decoder + } + return unsigned64Decoder +} + +func floatFactory(f *field) fieldDecoder { + switch f.encoder { + case "coord": + return floatCoordDecoder + case "simtime": + return simulationTimeDecoder + case "runetime": + return runeTimeDecoder + } + + if f.bitCount == nil || (*f.bitCount <= 0 || *f.bitCount >= 32) { + return noscaleDecoder + } + + return quantizedFactory(f) +} + +func quantizedFactory(f *field) fieldDecoder { + if f.bitCount == nil || (*f.bitCount <= 0 || *f.bitCount >= 32) { + return noscaleDecoder + } + + qfd := newQuantizedFloatDecoder(f.bitCount, f.encodeFlags, f.lowValue, f.highValue) + return func(r *reader) interface{} { + return qfd.decode(r) + } +} + +func vectorFactory(n int) fieldFactory { + return func(f *field) fieldDecoder { + if n == 3 && f.encoder == "normal" { + return vectorNormalDecoder + } + + d := floatFactory(f) + return func(r *reader) interface{} { + x := make([]float32, n) + for i := 0; i < n; i++ { + x[i] = d(r).(float32) + } + return x + } + } +} + +func vectorNormalDecoder(r *reader) interface{} { + return r.read3BitNormal() +} + +func fixed64Decoder(r *reader) interface{} { + return r.readLeUint64() +} + +func handleDecoder(r *reader) interface{} { + return r.readVarUint32() +} + +func booleanDecoder(r *reader) interface{} { + return r.readBoolean() +} + +func stringDecoder(r *reader) interface{} { + return r.readString() +} + +func defaultDecoder(r *reader) interface{} { + return r.readVarUint32() +} + +func signedDecoder(r *reader) interface{} { + return r.readVarInt32() +} + +func floatCoordDecoder(r *reader) interface{} { + return r.readCoord() +} + +func ammoDecoder(r *reader) interface{} { + return r.readVarUint32() - 1 +} + +func noscaleDecoder(r *reader) interface{} { + return math.Float32frombits(r.readBits(32)) +} + +func runeTimeDecoder(r *reader) interface{} { + return math.Float32frombits(r.readBits(4)) +} + +func simulationTimeDecoder(r *reader) interface{} { + return float32(r.readVarUint32()) * (1.0 / 30) +} + +func readBitCoordPres(r *reader) float32 { + return r.readAngle(20) - 180.0 +} + +func qanglePreciseDecoder(r *reader) interface{} { + v := make([]float32, 3) + hasX := r.readBoolean() + hasY := r.readBoolean() + hasZ := r.readBoolean() + + if hasX { + v[0] = readBitCoordPres(r) + } + + if hasY { + v[1] = readBitCoordPres(r) + } + + if hasZ { + v[2] = readBitCoordPres(r) + } + + return v +} + +func qangleFactory(f *field) fieldDecoder { + if f.encoder == "qangle_precise" { + return qanglePreciseDecoder + } + + if f.bitCount != nil && *f.bitCount != 0 { + n := uint32(*f.bitCount) + return func(r *reader) interface{} { + return []float32{ + r.readAngle(n), + r.readAngle(n), + r.readAngle(n), + } + } + } + + return func(r *reader) interface{} { + ret := make([]float32, 3) + rX := r.readBoolean() + rY := r.readBoolean() + rZ := r.readBoolean() + if rX { + ret[0] = r.readCoord() + } + if rY { + ret[1] = r.readCoord() + } + if rZ { + ret[2] = r.readCoord() + } + return ret + } +} + +func unsignedDecoder(r *reader) interface{} { + return uint64(r.readVarUint32()) +} + +func unsigned64Decoder(r *reader) interface{} { + return r.readVarUint64() +} + +func componentDecoder(r *reader) interface{} { + return r.readBits(1) +} + +func findDecoder(f *field) fieldDecoder { + if v, ok := fieldTypeFactories[f.fieldType.baseType]; ok { + return v(f) + } + + if v, ok := fieldNameDecoders[f.varName]; ok { + return v + } + + if v, ok := fieldTypeDecoders[f.fieldType.baseType]; ok { + return v + } + + return defaultDecoder +} + +func findDecoderByBaseType(f *field) fieldDecoder { + if v, ok := fieldTypeFactories[f.fieldType.genericType.baseType]; ok { + return v(f) + } + + if v, ok := fieldTypeDecoders[f.fieldType.genericType.baseType]; ok { + return v + } + + return defaultDecoder +} diff --git a/pkg/demoinfocs/sendtables2/field_patch.go b/pkg/demoinfocs/sendtables2/field_patch.go new file mode 100644 index 00000000..cdad82b6 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field_patch.go @@ -0,0 +1,31 @@ +package sendtables2 + +type fieldPatch struct { + minBuild uint32 + maxBuild uint32 + patch func(f *field) +} + +var fieldPatches = []fieldPatch{ + /* + m_FieldEncoderOverrides = + [ + DemoSimpleEncoders_t { m_Name = "m_flSimulationTime" m_VarType = "NET_DATA_TYPE_UINT64" }, + DemoSimpleEncoders_t { m_Name = "m_flAnimTime" m_VarType = "NET_DATA_TYPE_UINT64" }, + ] + */ + {0, 0, func(f *field) { + switch f.varName { + case "m_flSimulationTime", "m_flAnimTime": + f.encoder = "simtime" + } + }}, +} + +func (p *fieldPatch) shouldApply(build uint32) bool { + if p.minBuild == 0 && p.maxBuild == 0 { + return true + } + + return build >= p.minBuild && build <= p.maxBuild +} diff --git a/pkg/demoinfocs/sendtables2/field_path.go b/pkg/demoinfocs/sendtables2/field_path.go new file mode 100644 index 00000000..0128701a --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field_path.go @@ -0,0 +1,348 @@ +package sendtables2 + +import ( + "strconv" + "strings" + "sync" +) + +var huffTree = newHuffmanTree() + +type fieldPath struct { + path []int + last int + done bool +} + +type fieldPathOp struct { + name string + weight int + fn func(r *reader, fp *fieldPath) +} + +var fieldPathTable = []fieldPathOp{ + {"PlusOne", 36271, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + }}, + {"PlusTwo", 10334, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += 2 + }}, + {"PlusThree", 1375, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += 3 + }}, + {"PlusFour", 646, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += 4 + }}, + {"PlusN", 4128, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += r.readUBitVarFieldPath() + 5 + }}, + {"PushOneLeftDeltaZeroRightZero", 35, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] = 0 + }}, + {"PushOneLeftDeltaZeroRightNonZero", 3, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] = r.readUBitVarFieldPath() + }}, + {"PushOneLeftDeltaOneRightZero", 521, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] = 0 + }}, + {"PushOneLeftDeltaOneRightNonZero", 2942, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] = r.readUBitVarFieldPath() + }}, + {"PushOneLeftDeltaNRightZero", 560, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] = 0 + }}, + {"PushOneLeftDeltaNRightNonZero", 471, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += r.readUBitVarFieldPath() + 2 + fp.last++ + fp.path[fp.last] = r.readUBitVarFieldPath() + 1 + }}, + {"PushOneLeftDeltaNRightNonZeroPack6Bits", 10530, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readBits(3)) + 2 + fp.last++ + fp.path[fp.last] = int(r.readBits(3)) + 1 + }}, + {"PushOneLeftDeltaNRightNonZeroPack8Bits", 251, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readBits(4)) + 2 + fp.last++ + fp.path[fp.last] = int(r.readBits(4)) + 1 + }}, + {"PushTwoLeftDeltaZero", 0, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushTwoPack5LeftDeltaZero", 0, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] = int(r.readBits(5)) + fp.last++ + fp.path[fp.last] = int(r.readBits(5)) + }}, + {"PushThreeLeftDeltaZero", 0, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushThreePack5LeftDeltaZero", 0, func(r *reader, fp *fieldPath) { + fp.last++ + fp.path[fp.last] = int(r.readBits(5)) + fp.last++ + fp.path[fp.last] = int(r.readBits(5)) + fp.last++ + fp.path[fp.last] = int(r.readBits(5)) + }}, + {"PushTwoLeftDeltaOne", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushTwoPack5LeftDeltaOne", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + }}, + {"PushThreeLeftDeltaOne", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushThreePack5LeftDeltaOne", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last]++ + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + }}, + {"PushTwoLeftDeltaN", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readUBitVar()) + 2 + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushTwoPack5LeftDeltaN", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readUBitVar()) + 2 + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + }}, + {"PushThreeLeftDeltaN", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readUBitVar()) + 2 + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + }}, + {"PushThreePack5LeftDeltaN", 0, func(r *reader, fp *fieldPath) { + fp.path[fp.last] += int(r.readUBitVar()) + 2 + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + fp.last++ + fp.path[fp.last] += int(r.readBits(5)) + }}, + {"PushN", 0, func(r *reader, fp *fieldPath) { + n := int(r.readUBitVar()) + fp.path[fp.last] += int(r.readUBitVar()) + for i := 0; i < n; i++ { + fp.last++ + fp.path[fp.last] += r.readUBitVarFieldPath() + } + }}, + {"PushNAndNonTopological", 310, func(r *reader, fp *fieldPath) { + for i := 0; i <= fp.last; i++ { + if r.readBoolean() { + fp.path[i] += int(r.readVarInt32()) + 1 + } + } + count := int(r.readUBitVar()) + for i := 0; i < count; i++ { + fp.last++ + fp.path[fp.last] = r.readUBitVarFieldPath() + } + }}, + {"PopOnePlusOne", 2, func(r *reader, fp *fieldPath) { + fp.pop(1) + fp.path[fp.last]++ + }}, + {"PopOnePlusN", 0, func(r *reader, fp *fieldPath) { + fp.pop(1) + fp.path[fp.last] += r.readUBitVarFieldPath() + 1 + }}, + {"PopAllButOnePlusOne", 1837, func(r *reader, fp *fieldPath) { + fp.pop(fp.last) + fp.path[0]++ + }}, + {"PopAllButOnePlusN", 149, func(r *reader, fp *fieldPath) { + fp.pop(fp.last) + fp.path[0] += r.readUBitVarFieldPath() + 1 + }}, + {"PopAllButOnePlusNPack3Bits", 300, func(r *reader, fp *fieldPath) { + fp.pop(fp.last) + fp.path[0] += int(r.readBits(3)) + 1 + }}, + {"PopAllButOnePlusNPack6Bits", 634, func(r *reader, fp *fieldPath) { + fp.pop(fp.last) + fp.path[0] += int(r.readBits(6)) + 1 + }}, + {"PopNPlusOne", 0, func(r *reader, fp *fieldPath) { + fp.pop(r.readUBitVarFieldPath()) + fp.path[fp.last]++ + }}, + {"PopNPlusN", 0, func(r *reader, fp *fieldPath) { + fp.pop(r.readUBitVarFieldPath()) + fp.path[fp.last] += int(r.readVarInt32()) + }}, + {"PopNAndNonTopographical", 1, func(r *reader, fp *fieldPath) { + fp.pop(r.readUBitVarFieldPath()) + for i := 0; i <= fp.last; i++ { + if r.readBoolean() { + fp.path[i] += int(r.readVarInt32()) + } + } + }}, + {"NonTopoComplex", 76, func(r *reader, fp *fieldPath) { + for i := 0; i <= fp.last; i++ { + if r.readBoolean() { + fp.path[i] += int(r.readVarInt32()) + } + } + }}, + {"NonTopoPenultimatePlusOne", 271, func(r *reader, fp *fieldPath) { + fp.path[fp.last-1]++ + }}, + {"NonTopoComplexPack4Bits", 99, func(r *reader, fp *fieldPath) { + for i := 0; i <= fp.last; i++ { + if r.readBoolean() { + fp.path[i] += int(r.readBits(4)) - 7 + } + } + }}, + {"FieldPathEncodeFinish", 25474, func(r *reader, fp *fieldPath) { + fp.done = true + }}, +} + +// pop reduces the last element by n, zeroing values in the popped path +func (fp *fieldPath) pop(n int) { + for i := 0; i < n; i++ { + fp.path[fp.last] = 0 + fp.last-- + } +} + +// copy returns a copy of the fieldPath +func (fp *fieldPath) copy() *fieldPath { + x := fpPool.Get().(*fieldPath) + copy(x.path, fp.path) + x.last = fp.last + x.done = fp.done + return x +} + +// String returns a string representing the fieldPath +func (fp *fieldPath) String() string { + ss := make([]string, fp.last+1) + for i := 0; i <= fp.last; i++ { + ss[i] = strconv.Itoa(fp.path[i]) + } + return strings.Join(ss, "/") +} + +// newFieldPath returns a new fieldPath ready for use +func newFieldPath() *fieldPath { + fp := fpPool.Get().(*fieldPath) + fp.reset() + return fp +} + +var fpPool = &sync.Pool{ + New: func() interface{} { + return &fieldPath{ + path: make([]int, 7), + last: 0, + done: false, + } + }, +} + +var fpReset = []int{-1, 0, 0, 0, 0, 0, 0} + +// reset resets the fieldPath to the empty value +func (fp *fieldPath) reset() { + copy(fp.path, fpReset) + fp.last = 0 + fp.done = false +} + +// release returns the fieldPath to the pool for re-use +func (fp *fieldPath) release() { + fpPool.Put(fp) +} + +// readFieldPaths reads a new slice of fieldPath values from the given reader +func readFieldPaths(r *reader) []*fieldPath { + fp := newFieldPath() + + node := huffTree + + paths := []*fieldPath{} + + for !fp.done { + var next huffmanTree + + if r.readBits(1) == 1 { + next = node.Right() + } else { + next = node.Left() + } + + if next.IsLeaf() { + node = huffTree + fieldPathTable[next.Value()].fn(r, fp) + if !fp.done { + paths = append(paths, fp.copy()) + } + } else { + node = next + } + } + + fp.release() + + return paths +} + +// newHuffmanTree creates a new huffmanTree from the field path table +func newHuffmanTree() huffmanTree { + freqs := make([]int, len(fieldPathTable)) + for i, op := range fieldPathTable { + freqs[i] = op.weight + } + return buildHuffmanTree(freqs) +} diff --git a/pkg/demoinfocs/sendtables2/field_state.go b/pkg/demoinfocs/sendtables2/field_state.go new file mode 100644 index 00000000..44a17a9f --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field_state.go @@ -0,0 +1,60 @@ +package sendtables2 + +type fieldState struct { + state []interface{} +} + +func newFieldState() *fieldState { + return &fieldState{ + state: make([]interface{}, 8), + } +} + +func (s *fieldState) get(fp *fieldPath) interface{} { + x := s + z := 0 + for i := 0; i <= fp.last; i++ { + z = fp.path[i] + if len(x.state) < z+2 { + return nil + } + if i == fp.last { + return x.state[z] + } + if _, ok := x.state[z].(*fieldState); !ok { + return nil + } + x = x.state[z].(*fieldState) + } + return nil +} + +func (s *fieldState) set(fp *fieldPath, v interface{}) { + x := s + z := 0 + for i := 0; i <= fp.last; i++ { + z = fp.path[i] + if y := len(x.state); y < z+2 { + z := make([]interface{}, max(z+2, y*2)) + copy(z, x.state) + x.state = z + } + if i == fp.last { + if _, ok := x.state[z].(*fieldState); !ok { + x.state[z] = v + } + return + } + if _, ok := x.state[z].(*fieldState); !ok { + x.state[z] = newFieldState() + } + x = x.state[z].(*fieldState) + } +} + +func max(a, b int) int { + if a > b { + return a + } + return b +} diff --git a/pkg/demoinfocs/sendtables2/field_type.go b/pkg/demoinfocs/sendtables2/field_type.go new file mode 100644 index 00000000..d9bb28c1 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/field_type.go @@ -0,0 +1,56 @@ +package sendtables2 + +import ( + "fmt" + "regexp" + "strconv" +) + +var fieldTypeRe = regexp.MustCompile(`([^\<\[\*]+)(\<\s(.*)\s\>)?(\*)?(\[(.*)\])?`) // (\<\s.*?\s\>)?([.*?])?`) + +type fieldType struct { + baseType string + genericType *fieldType + pointer bool + count int +} + +func newFieldType(name string) *fieldType { + ss := fieldTypeRe.FindStringSubmatch(name) + if len(ss) != 7 { + panic(fmt.Sprintf("bad regexp: %s -> %#v", name, ss)) + } + + x := &fieldType{ + baseType: ss[1], + pointer: ss[4] == "*", + } + + if ss[3] != "" { + x.genericType = newFieldType(ss[3]) + } + + if n, ok := itemCounts[ss[6]]; ok { + x.count = n + } else if n, _ := strconv.Atoi(ss[6]); n > 0 { + x.count = n + } else if ss[6] != "" { + x.count = 1024 + } + + return x +} + +func (t *fieldType) String() string { + x := t.baseType + if t.genericType != nil { + x += "<" + t.genericType.String() + ">" + } + if t.pointer { + x += "*" + } + if t.count > 0 { + x += "[" + strconv.Itoa(t.count) + "]" + } + return x +} diff --git a/pkg/demoinfocs/sendtables2/huffman.go b/pkg/demoinfocs/sendtables2/huffman.go new file mode 100644 index 00000000..903fe91b --- /dev/null +++ b/pkg/demoinfocs/sendtables2/huffman.go @@ -0,0 +1,136 @@ +package sendtables2 + +import ( + "container/heap" +) + +// Interface for the tree, only implements Weight +type huffmanTree interface { + Weight() int + IsLeaf() bool + Value() int + Left() huffmanTree + Right() huffmanTree +} + +// A leaf, contains encoded value +type huffmanLeaf struct { + weight int + value int +} + +// A node with potential left / right nodes or leafs +type huffmanNode struct { + weight int + value int + left huffmanTree + right huffmanTree +} + +// Return weight for leaf +func (self huffmanLeaf) Weight() int { + return self.weight +} + +// Return leaf state +func (self huffmanLeaf) IsLeaf() bool { + return true +} + +// Return value for leaf +func (self huffmanLeaf) Value() int { + return self.value +} + +func (self huffmanLeaf) Right() huffmanTree { + _panicf("huffmanLeaf doesn't have right node") + return nil +} + +func (self huffmanLeaf) Left() huffmanTree { + _panicf("huffmanLeaf doesn't have left node") + return nil +} + +// Return weight for node +func (self huffmanNode) Weight() int { + return self.weight +} + +// Return leaf state +func (self huffmanNode) IsLeaf() bool { + return false +} + +// Return value for node +func (self huffmanNode) Value() int { + return self.value +} + +func (self huffmanNode) Left() huffmanTree { + return huffmanTree(self.left) +} + +func (self huffmanNode) Right() huffmanTree { + return huffmanTree(self.right) +} + +type treeHeap []huffmanTree + +// Returns the amount of nodes in the tree +func (th treeHeap) Len() int { + return len(th) +} + +// Weight compare function +func (th treeHeap) Less(i int, j int) bool { + if th[i].Weight() == th[j].Weight() { + return th[i].Value() >= th[j].Value() + } else { + return th[i].Weight() < th[j].Weight() + } +} + +// Append item, required for heap +func (th *treeHeap) Push(ele interface{}) { + *th = append(*th, ele.(huffmanTree)) +} + +// Remove item, required for heap +func (th *treeHeap) Pop() (popped interface{}) { + popped = (*th)[len(*th)-1] + *th = (*th)[:len(*th)-1] + return +} + +// Swap two items, required for heap +func (th treeHeap) Swap(i, j int) { + th[i], th[j] = th[j], th[i] +} + +// Construct a tree from a map of weight -> item +func buildHuffmanTree(symFreqs []int) huffmanTree { + var trees treeHeap + + for v, w := range symFreqs { + if w == 0 { + w = 1 + } + + trees = append(trees, &huffmanLeaf{w, v}) + } + + n := 40 + + heap.Init(&trees) + + for trees.Len() > 1 { + a := heap.Pop(&trees).(huffmanTree) + b := heap.Pop(&trees).(huffmanTree) + + heap.Push(&trees, &huffmanNode{a.Weight() + b.Weight(), n, a, b}) + n++ + } + + return heap.Pop(&trees).(huffmanTree) +} diff --git a/pkg/demoinfocs/sendtables2/panicf.go b/pkg/demoinfocs/sendtables2/panicf.go new file mode 100644 index 00000000..6d62b23c --- /dev/null +++ b/pkg/demoinfocs/sendtables2/panicf.go @@ -0,0 +1,7 @@ +package sendtables2 + +import "fmt" + +func _panicf(format string, args ...interface{}) { + panic(fmt.Sprintf(format, args...)) +} diff --git a/pkg/demoinfocs/sendtables2/parser.go b/pkg/demoinfocs/sendtables2/parser.go new file mode 100644 index 00000000..25e941b8 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/parser.go @@ -0,0 +1,225 @@ +package sendtables2 + +import ( + "fmt" + "math" + "strings" + + "google.golang.org/protobuf/proto" + + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" + st "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/sendtables" +) + +/* +from demoinfo2.txt: + +// referenced components require pointer indirection +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentDCGBaseAnimating" m_UnderlyingType = "CBodyComponentDCGBaseAnimating*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentBaseAnimating" m_UnderlyingType = "CBodyComponentBaseAnimating*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentBaseAnimatingOverlay" m_UnderlyingType = "CBodyComponentBaseAnimatingOverlay*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentBaseModelEntity" m_UnderlyingType = "CBodyComponentBaseModelEntity*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponent" m_UnderlyingType = "CBodyComponent*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentSkeletonInstance" m_UnderlyingType = "CBodyComponentSkeletonInstance*" }, +DemoTypeAlias_t { m_TypeAlias = "CBodyComponentPoint" m_UnderlyingType = "CBodyComponentPoint*" }, +DemoTypeAlias_t { m_TypeAlias = "CLightComponent" m_UnderlyingType = "CLightComponent*" }, +DemoTypeAlias_t { m_TypeAlias = "CRenderComponent" m_UnderlyingType = "CRenderComponent*" }, + +// this is legacy, would be good candidate to use demo file upconversion to remove? +DemoTypeAlias_t { m_TypeAlias = "CPhysicsComponent" m_UnderlyingType = "CPhysicsComponent*" }, +*/ +var pointerTypes = map[string]bool{ + // "PhysicsRagdollPose_t": true, + // "CEntityIdentity": true, + // "CPlayerLocalData": true, + // "CPlayer_CameraServices": true, + "CBodyComponentDCGBaseAnimating": true, + "CBodyComponentBaseAnimating": true, + "CBodyComponentBaseAnimatingOverlay": true, + "CBodyComponentBaseModelEntity": true, + "CBodyComponent": true, + "CBodyComponentSkeletonInstance": true, + "CBodyComponentPoint": true, + "CLightComponent": true, + "CRenderComponent": true, + "CPhysicsComponent": true, +} + +var itemCounts = map[string]int{ + "MAX_ITEM_STOCKS": 8, + "MAX_ABILITY_DRAFT_ABILITIES": 48, +} + +type Parser struct { + serializers map[string]*serializer + classIdSize uint32 + classBaselines map[int32][]byte + classesById map[int32]*class + classesByName map[string]*class + entityFullPackets int + entities map[int32]*Entity + entityHandlers []st.EntityHandler +} + +func (p *Parser) ReadEnterPVS(r *bit.BitReader, index int, entities map[int]st.Entity, slot int) st.Entity { + panic("implement me") +} + +type serverClasses Parser + +func (sc *serverClasses) All() (res []st.ServerClass) { + for _, c := range sc.classesById { + res = append(res, c) + } + + return +} + +func (sc *serverClasses) FindByName(name string) st.ServerClass { + class := sc.classesByName[name] + if class == nil { + return nil + } + + return sc.classesByName[name] +} + +func (sc *serverClasses) String() string { + names := make([]string, 0, len(sc.classesById)) + + for _, c := range sc.classesById { + names = append(names, c.name) + } + + return strings.Join(names, "\n") +} + +func (p *Parser) ServerClasses() st.ServerClasses { + return (*serverClasses)(p) +} + +func NewParser() *Parser { + return &Parser{ + serializers: make(map[string]*serializer), + classBaselines: make(map[int32][]byte), + classesById: make(map[int32]*class), + classesByName: make(map[string]*class), + entities: make(map[int32]*Entity), + } +} + +// Internal callback for OnCSVCMsg_ServerInfo. +func (p *Parser) OnServerInfo(m *msgs2.CSVCMsg_ServerInfo) error { + // This may be needed to parse PacketEntities. + p.classIdSize = uint32(math.Log(float64(m.GetMaxClasses()))/math.Log(2)) + 1 + + return nil +} + +func (p *Parser) OnDemoClassInfo(m *msgs2.CDemoClassInfo) error { + for _, c := range m.GetClasses() { + classId := c.GetClassId() + networkName := c.GetNetworkName() + + class := &class{ + classId: classId, + name: networkName, + serializer: p.serializers[networkName], + } + p.classesById[class.classId] = class + p.classesByName[class.name] = class + } + + return nil +} + +// SetInstanceBaseline sets the raw instance-baseline data for a serverclass by ID. +// +// Intended for internal use only. +func (p *Parser) SetInstanceBaseline(scID int, data []byte) { + if scID < 0 || scID > math.MaxInt32 { + panic(fmt.Sprintf("scID %d is out of bounds", scID)) + } + + p.classBaselines[int32(scID)] = data +} + +func (p *Parser) ParsePacket(b []byte) error { + r := newReader(b) + buf := r.readBytes(r.readVarUint32()) + + msg := &msgs2.CSVCMsg_FlattenedSerializer{} + if err := proto.Unmarshal(buf, msg); err != nil { + return err + } + + fields := map[int32]*field{} + fieldTypes := map[string]*fieldType{} + + for _, s := range msg.GetSerializers() { + serializer := &serializer{ + name: msg.GetSymbols()[s.GetSerializerNameSym()], + version: s.GetSerializerVersion(), + fields: []*field{}, + } + + for _, i := range s.GetFieldsIndex() { + if _, ok := fields[i]; !ok { + // create a new field + field := newField(p.serializers, msg, msg.GetFields()[i]) + + // dotabuff/manta patches parent name in builds <= 990 + // if p.gameBuild <= 990 { + // field.parentName = serializer.name + //} + + // find or create a field type + if _, ok := fieldTypes[field.varType]; !ok { + fieldTypes[field.varType] = newFieldType(field.varType) + } + field.fieldType = fieldTypes[field.varType] + + // find associated serializer + if field.serializerName != "" { + field.serializer = p.serializers[field.serializerName] + } + + // apply any build-specific patches to the field + for _, h := range fieldPatches { + h.patch(field) + } + + // determine field model + if field.serializer != nil { + if field.fieldType.pointer || pointerTypes[field.fieldType.baseType] { + field.setModel(fieldModelFixedTable) + } else { + field.setModel(fieldModelVariableTable) + } + } else if field.fieldType.count > 0 && field.fieldType.baseType != "char" { + field.setModel(fieldModelFixedArray) + } else if field.fieldType.baseType == "CUtlVector" || field.fieldType.baseType == "CNetworkUtlVectorBase" { + field.setModel(fieldModelVariableArray) + } else { + field.setModel(fieldModelSimple) + } + + // store the field + fields[i] = field + } + + // add the field to the serializer + serializer.fields = append(serializer.fields, fields[i]) + } + + // store the serializer for field reference + p.serializers[serializer.name] = serializer + + if _, ok := p.classesByName[serializer.name]; ok { + p.classesByName[serializer.name].serializer = serializer + } + } + + return nil +} diff --git a/pkg/demoinfocs/sendtables2/quantizedfloat.go b/pkg/demoinfocs/sendtables2/quantizedfloat.go new file mode 100644 index 00000000..e3bd1a20 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/quantizedfloat.go @@ -0,0 +1,248 @@ +// decoding the quantized float is a bit to messy to do in one function, so +// all the decoder steps are located in this file + +package sendtables2 + +import ( + "math" +) + +// Quantized float flags +const qff_rounddown uint32 = (1 << 0) +const qff_roundup uint32 = (1 << 1) +const qff_encode_zero uint32 = (1 << 2) +const qff_encode_integers uint32 = (1 << 3) + +// Quantized-decoder struct containing the computed properties +type quantizedFloatDecoder struct { + Low float32 // Gets recomputed for round up / down + High float32 + HighLowMul float32 + DecMul float32 + Offset float32 + Bitcount uint32 // Gets recomputed for qff_encode_int + Flags uint32 + NoScale bool // Whether to decodes this as a noscale +} + +// Validates / recomputes decoder flags +func (qfd *quantizedFloatDecoder) validateFlags() { + // Check that we have some flags set + if qfd.Flags == 0 { + return + } + + // Discard zero flag when encoding min / max set to 0 + if (qfd.Low == 0.0 && (qfd.Flags&qff_rounddown) != 0) || (qfd.High == 0.0 && (qfd.Flags&qff_roundup) != 0) { + qfd.Flags &= ^qff_encode_zero + } + + // If min / max is zero when encoding zero, switch to round up / round down instead + if qfd.Low == 0.0 && (qfd.Flags&qff_encode_zero) != 0 { + qfd.Flags |= qff_rounddown + qfd.Flags &= ^qff_encode_zero + } + + if qfd.High == 0.0 && (qfd.Flags&qff_encode_zero) != 0 { + qfd.Flags |= qff_roundup + qfd.Flags &= ^qff_encode_zero + } + + // Check if the range spans zero + if qfd.Low > 0.0 || qfd.High < 0.0 { + qfd.Flags &= ^qff_encode_zero + } + + // If we are left with encode zero, only leave integer flag + if (qfd.Flags & qff_encode_integers) != 0 { + qfd.Flags &= ^(qff_roundup | qff_rounddown | qff_encode_zero) + } + + // Verify that we don;t have roundup / rounddown set + if qfd.Flags&(qff_rounddown|qff_roundup) == (qff_rounddown | qff_roundup) { + _panicf("Roundup / Rounddown are mutually exclusive") + } +} + +// Assign multipliers +func (qfd *quantizedFloatDecoder) assignMultipliers(steps uint32) { + qfd.HighLowMul = 0.0 + Range := qfd.High - qfd.Low + + High := uint32(0) + if qfd.Bitcount == 32 { + High = 0xFFFFFFFE + } else { + High = (1 << qfd.Bitcount) - 1 + } + + HighMul := float32(0.0) + if math.Abs(float64(Range)) <= 0.0 { + HighMul = float32(High) + } else { + HighMul = float32(High) / Range + } + + // Adjust precision + if (HighMul*Range > float32(High)) || (float64(HighMul*Range) > float64(High)) { + multipliers := []float32{0.9999, 0.99, 0.9, 0.8, 0.7} + + for _, mult := range multipliers { + HighMul = float32(High) / Range * mult + + if (HighMul*Range > float32(High)) || (float64(HighMul*Range) > float64(High)) { + continue + } + + break + } + } + + qfd.HighLowMul = HighMul + qfd.DecMul = 1.0 / float32(steps-1) + + if qfd.HighLowMul == 0.0 { + _panicf("Error computing high / low multiplier") + } +} + +// Quantize a float +func (qfd *quantizedFloatDecoder) quantize(val float32) float32 { + if val < qfd.Low { + if (qfd.Flags & qff_roundup) == 0 { + _panicf("Field tried to quantize an out of range value") + } + + return qfd.Low + } else if val > qfd.High { + if (qfd.Flags & qff_rounddown) == 0 { + _panicf("Field tried to quantize an out of range value") + } + + return qfd.High + } + + i := uint32((val - qfd.Low) * qfd.HighLowMul) + //nolint:unconvert + return qfd.Low + float32((qfd.High-qfd.Low)*float32(float32(i)*qfd.DecMul)) +} + +// Actual float decoding +func (qfd *quantizedFloatDecoder) decode(r *reader) float32 { + if (qfd.Flags&qff_rounddown) != 0 && r.readBoolean() { + return qfd.Low + } + + if (qfd.Flags&qff_roundup) != 0 && r.readBoolean() { + return qfd.High + } + + if (qfd.Flags&qff_encode_zero) != 0 && r.readBoolean() { + return 0.0 + } + + return qfd.Low + (qfd.High-qfd.Low)*float32(r.readBits(qfd.Bitcount))*qfd.DecMul +} + +// Creates a new quantized float decoder based on given field +func newQuantizedFloatDecoder(bitCount, flags *int32, lowValue, highValue *float32) *quantizedFloatDecoder { + qfd := &quantizedFloatDecoder{} + + // Set common properties + if *bitCount == 0 || *bitCount >= 32 { + qfd.NoScale = true + qfd.Bitcount = 32 + return qfd + } else { + qfd.NoScale = false + qfd.Bitcount = uint32(*bitCount) + qfd.Offset = 0.0 + + if lowValue != nil { + qfd.Low = *lowValue + } else { + qfd.Low = 0.0 + } + + if highValue != nil { + qfd.High = *highValue + } else { + qfd.High = 1.0 + } + } + if flags != nil { + qfd.Flags = uint32(*flags) + } else { + qfd.Flags = 0 + } + + // Validate flags + qfd.validateFlags() + + // Handle Round Up, Round Down + steps := (1 << uint(qfd.Bitcount)) + + Range := float32(0) + if (qfd.Flags & qff_rounddown) != 0 { + Range = qfd.High - qfd.Low + qfd.Offset = (Range / float32(steps)) + qfd.High -= qfd.Offset + } else if (qfd.Flags & qff_roundup) != 0 { + Range = qfd.High - qfd.Low + qfd.Offset = (Range / float32(steps)) + qfd.Low += qfd.Offset + } + + // Handle integer encoding flag + if (qfd.Flags & qff_encode_integers) != 0 { + delta := qfd.High - qfd.Low + + if delta < 1 { + delta = 1 + } + + deltaLog2 := math.Ceil(math.Log2(float64(delta))) + Range2 := (1 << uint(deltaLog2)) + bc := qfd.Bitcount + + for { + if (1 << uint(bc)) > Range2 { + break + } else { + bc++ + } + } + + if bc > qfd.Bitcount { + qfd.Bitcount = bc + steps = (1 << uint(qfd.Bitcount)) + } + + qfd.Offset = float32(Range2) / float32(steps) + qfd.High = qfd.Low + float32(Range2) - qfd.Offset + } + + // Assign multipliers + qfd.assignMultipliers(uint32(steps)) + + // Remove unessecary flags + if (qfd.Flags & qff_rounddown) != 0 { + if qfd.quantize(qfd.Low) == qfd.Low { + qfd.Flags &= ^qff_rounddown + } + } + + if (qfd.Flags & qff_roundup) != 0 { + if qfd.quantize(qfd.High) == qfd.High { + qfd.Flags &= ^qff_roundup + } + } + + if (qfd.Flags & qff_encode_zero) != 0 { + if qfd.quantize(0.0) == 0.0 { + qfd.Flags &= ^qff_encode_zero + } + } + + return qfd +} diff --git a/pkg/demoinfocs/sendtables2/reader.go b/pkg/demoinfocs/sendtables2/reader.go new file mode 100644 index 00000000..f7792435 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/reader.go @@ -0,0 +1,313 @@ +package sendtables2 + +import ( + "encoding/binary" + "fmt" + "math" +) + +// reader performs read operations against a buffer +type reader struct { + buf []byte + size uint32 + pos uint32 + bitVal uint64 // value of the remaining bits in the current byte + bitCount uint32 // number of remaining bits in the current byte +} + +// newReader creates a new reader object for the given buffer +func newReader(buf []byte) *reader { + return &reader{buf, uint32(len(buf)), 0, 0, 0} +} + +// remBits calculates the number of unread bits in the buffer +func (r *reader) remBits() uint32 { + return r.remBytes() + r.bitCount +} + +func (r *reader) position() string { + if r.bitCount > 0 { + return fmt.Sprintf("%d.%d", r.pos-1, 8-r.bitCount) + } + return fmt.Sprintf("%d", r.pos) +} + +// remBytes calculates the number of unread bytes in the buffer +func (r *reader) remBytes() uint32 { + return r.size - r.pos +} + +// nextByte reads the next byte from the buffer +func (r *reader) nextByte() byte { + r.pos++ + + if r.pos > r.size { + _panicf("nextByte: insufficient buffer (%d of %d)", r.pos, r.size) + } + + return r.buf[r.pos-1] +} + +// readBits returns the uint32 value for the given number of sequential bits +func (r *reader) readBits(n uint32) uint32 { + for n > r.bitCount { + r.bitVal |= uint64(r.nextByte()) << r.bitCount + r.bitCount += 8 + } + + x := (r.bitVal & ((1 << n) - 1)) + r.bitVal >>= n + r.bitCount -= n + + return uint32(x) +} + +// readByte reads a single byte +func (r *reader) readByte() byte { + // Fast path if we're byte aligned + if r.bitCount == 0 { + return r.nextByte() + } + + return byte(r.readBits(8)) +} + +// readBytes reads the given number of bytes +func (r *reader) readBytes(n uint32) []byte { + // Fast path if we're byte aligned + if r.bitCount == 0 { + r.pos += n + if r.pos > r.size { + _panicf("readBytes: insufficient buffer (%d of %d)", r.pos, r.size) + } + return r.buf[r.pos-n : r.pos] + } + + buf := make([]byte, n) + for i := uint32(0); i < n; i++ { + buf[i] = byte(r.readBits(8)) + } + return buf +} + +// readLeUint32 reads an little-endian uint32 +func (r *reader) readLeUint32() uint32 { + return binary.LittleEndian.Uint32(r.readBytes(4)) +} + +// readLeUint64 reads a little-endian uint64 +func (r *reader) readLeUint64() uint64 { + return binary.LittleEndian.Uint64(r.readBytes(8)) +} + +// readVarUint64 reads an unsigned 32-bit varint +func (r *reader) readVarUint32() uint32 { + var x, s uint32 + for { + b := uint32(r.readByte()) + x |= (b & 0x7F) << s + s += 7 + if ((b & 0x80) == 0) || (s == 35) { + break + } + } + + return x +} + +// readVarInt64 reads a signed 32-bit varint +func (r *reader) readVarInt32() int32 { + ux := r.readVarUint32() + x := int32(ux >> 1) + if ux&1 != 0 { + x = ^x + } + return x +} + +// readVarUint64 reads an unsigned 64-bit varint +func (r *reader) readVarUint64() uint64 { + var x, s uint64 + for i := 0; ; i++ { + b := r.readByte() + if b < 0x80 { + if i > 9 || i == 9 && b > 1 { + _panicf("read overflow: varint overflows uint64") + } + return x | uint64(b)<> 1) + if ux&1 != 0 { + x = ^x + } + return x +} + +// readBoolean reads and interprets single bit as true or false +func (r *reader) readBoolean() bool { + return r.readBits(1) == 1 +} + +// readFloat reads an IEEE 754 float +func (r *reader) readFloat() float32 { + return math.Float32frombits(r.readLeUint32()) +} + +// readUBitVar reads a variable length uint32 with encoding in last to bits of 6 bit group +func (r *reader) readUBitVar() uint32 { + ret := r.readBits(6) + + switch ret & 0x30 { + case 16: + ret = (ret & 15) | (r.readBits(4) << 4) + + case 32: + ret = (ret & 15) | (r.readBits(8) << 4) + + case 48: + ret = (ret & 15) | (r.readBits(28) << 4) + + } + + return ret +} + +// readUBitVarFP reads a variable length uint32 encoded using fieldpath encoding +func (r *reader) readUBitVarFP() uint32 { + if r.readBoolean() { + return r.readBits(2) + } + if r.readBoolean() { + return r.readBits(4) + } + if r.readBoolean() { + return r.readBits(10) + } + if r.readBoolean() { + return r.readBits(17) + } + return r.readBits(31) +} + +func (r *reader) readUBitVarFieldPath() int { + return int(r.readUBitVarFP()) +} + +// readStringN reads a string of a given length +func (r *reader) readStringN(n uint32) string { + return string(r.readBytes(n)) +} + +// readString reads a null terminated string +func (r *reader) readString() string { + buf := make([]byte, 0) + for { + b := r.readByte() + if b == 0 { + break + } + buf = append(buf, b) + } + + return string(buf) +} + +// readCoord reads a coord as a float32 +func (r *reader) readCoord() float32 { + value := float32(0.0) + + intval := r.readBits(1) + fractval := r.readBits(1) + signbit := false + + if intval != 0 || fractval != 0 { + signbit = r.readBoolean() + + if intval != 0 { + intval = r.readBits(14) + 1 + } + + if fractval != 0 { + fractval = r.readBits(5) + } + + value = float32(intval) + float32(fractval)*(1.0/(1<<5)) + + // Fixup the sign if negative. + if signbit { + value = -value + } + } + + return value +} + +// readAngle reads a bit angle of the given size +func (r *reader) readAngle(n uint32) float32 { + return float32(r.readBits(n)) * float32(360.0) / float32(int(1<= 8 { + tmp = append(tmp, r.readByte()) + n -= 8 + } + if n > 0 { + tmp = append(tmp, byte(r.readBits(n))) + } + return tmp +} diff --git a/pkg/demoinfocs/sendtables2/serializer.go b/pkg/demoinfocs/sendtables2/serializer.go new file mode 100644 index 00000000..397e0174 --- /dev/null +++ b/pkg/demoinfocs/sendtables2/serializer.go @@ -0,0 +1,66 @@ +package sendtables2 + +import ( + "fmt" + "strings" +) + +type serializer struct { + name string + version int32 + fields []*field +} + +func (s *serializer) id() string { + return serializerId(s.name, s.version) +} + +func (s *serializer) getNameForFieldPath(fp *fieldPath, pos int) []string { + return s.fields[fp.path[pos]].getNameForFieldPath(fp, pos+1) +} + +func (s *serializer) getTypeForFieldPath(fp *fieldPath, pos int) *fieldType { + return s.fields[fp.path[pos]].getTypeForFieldPath(fp, pos+1) +} + +func (s *serializer) getDecoderForFieldPath(fp *fieldPath, pos int) fieldDecoder { + index := fp.path[pos] + if len(s.fields) <= index { + _panicf("serializer %s: field path %s has no field (%d)", s.name, fp, index) + } + return s.fields[index].getDecoderForFieldPath(fp, pos+1) +} + +func (s *serializer) getFieldForFieldPath(fp *fieldPath, pos int) *field { + return s.fields[fp.path[pos]].getFieldForFieldPath(fp, pos+1) +} + +func (s *serializer) getFieldPathForName(fp *fieldPath, name string) bool { + for i, f := range s.fields { + if name == f.varName { + fp.path[fp.last] = i + return true + } + + if strings.HasPrefix(name, f.varName+".") { + fp.path[fp.last] = i + fp.last++ + return f.getFieldPathForName(fp, name[len(f.varName)+1:]) + } + } + + return false +} + +func (s *serializer) getFieldPaths(fp *fieldPath, state *fieldState) []*fieldPath { + results := make([]*fieldPath, 0, 4) + for i, f := range s.fields { + fp.path[fp.last] = i + results = append(results, f.getFieldPaths(fp, state)...) + } + return results +} + +func serializerId(name string, version int32) string { + return fmt.Sprintf("%s(%d)", name, version) +} diff --git a/pkg/demoinfocs/stringtables.go b/pkg/demoinfocs/stringtables.go index 5a9af4ea..9561e6c6 100644 --- a/pkg/demoinfocs/stringtables.go +++ b/pkg/demoinfocs/stringtables.go @@ -3,16 +3,22 @@ package demoinfocs import ( "bytes" "encoding/binary" + "fmt" "io" + "math" + "regexp" "strconv" "strings" + "github.com/golang/snappy" "github.com/pkg/errors" + "google.golang.org/protobuf/proto" - bit "github.com/markus-wa/demoinfocs-golang/v3/internal/bitread" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + bit "github.com/markus-wa/demoinfocs-golang/v4/internal/bitread" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" + "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msgs2" ) const ( @@ -116,7 +122,12 @@ func (p *parser) parseSingleStringTable(name string) { } } } + func (p *parser) setRawPlayer(index int, player common.PlayerInfo) { + if player.UserID == math.MaxUint16 && p.rawPlayers[index] != nil { + player.UserID = p.rawPlayers[index].UserID + } + p.rawPlayers[index] = &player p.updatePlayerFromRawIfExists(index, player) @@ -127,12 +138,17 @@ func (p *parser) setRawPlayer(index int, player common.PlayerInfo) { }) } -func (p *parser) handleUpdateStringTable(tab *msg.CSVCMsg_UpdateStringTable) { +func (p *parser) handleUpdateStringTable(tab *msgs2.CSVCMsg_UpdateStringTable, s2 bool) { defer func() { p.setError(recoverFromUnexpectedEOF(recover())) }() + if len(p.stringTables) <= int(tab.GetTableId()) { + return // FIXME: We never got a proper CreateStringTable for this table ... + } + cTab := p.stringTables[tab.GetTableId()] + switch cTab.GetName() { case stNameUserInfo: fallthrough @@ -141,66 +157,72 @@ func (p *parser) handleUpdateStringTable(tab *msg.CSVCMsg_UpdateStringTable) { case stNameInstanceBaseline: // Only handle updates for the above types // Create fake CreateStringTable and handle it like one of those - cTab.NumEntries = tab.NumChangedEntries - cTab.StringData = tab.StringData - p.processStringTable(cTab) + p.processStringTable(createStringTable{ + CSVCMsg_CreateStringTable: &msgs2.CSVCMsg_CreateStringTable{ + Name: cTab.Name, + NumEntries: tab.NumChangedEntries, + UserDataFixedSize: cTab.UserDataFixedSize, + UserDataSize: cTab.UserDataSize, + UserDataSizeBits: cTab.UserDataSizeBits, + Flags: cTab.Flags, + StringData: tab.StringData, + UsingVarintBitcounts: cTab.UsingVarintBitcounts, + }, + isS2: s2, + s1MaxEntries: cTab.s1MaxEntries, + }) } } -func (p *parser) handleCreateStringTable(tab *msg.CSVCMsg_CreateStringTable) { +func (p *parser) handleUpdateStringTableS2(tab *msgs2.CSVCMsg_UpdateStringTable) { + p.handleUpdateStringTable(tab, true) +} + +func (p *parser) handleCreateStringTable(tab createStringTable) { defer func() { p.setError(recoverFromUnexpectedEOF(recover())) }() - p.processStringTable(tab) + switch tab.GetName() { + case stNameUserInfo: + fallthrough + case stNameModelPreCache: + fallthrough + case stNameInstanceBaseline: + p.processStringTable(tab) + } p.stringTables = append(p.stringTables, tab) p.eventDispatcher.Dispatch(events.StringTableCreated{TableName: tab.GetName()}) } -//nolint:funlen,gocognit -func (p *parser) processStringTable(tab *msg.CSVCMsg_CreateStringTable) { - if tab.GetName() == stNameModelPreCache { - for i := len(p.modelPreCache); i < int(tab.GetMaxEntries()); i++ { - p.modelPreCache = append(p.modelPreCache, "") - } - } - - br := bit.NewSmallBitReader(bytes.NewReader(tab.StringData)) - - if br.ReadBit() { - panic("Can't decode") - } - - nTmp := tab.GetMaxEntries() - nEntryBits := 0 - - for nTmp != 0 { - nTmp >>= 1 - nEntryBits++ - } - - if nEntryBits > 0 { - nEntryBits-- - } +func (p *parser) handleCreateStringTableS2(tab *msgs2.CSVCMsg_CreateStringTable) { + p.handleCreateStringTable(createStringTable{ + CSVCMsg_CreateStringTable: tab, + isS2: true, + }) +} +func (p *parser) processStringTableS1(tab createStringTable, br *bit.BitReader) { hist := make([]string, 0) - lastEntry := -1 + idx := -1 + + nEntryBits := int(math.Ceil(math.Log2(float64(*tab.s1MaxEntries)))) for i := 0; i < int(tab.GetNumEntries()); i++ { - entryIndex := lastEntry + 1 - if !br.ReadBit() { - entryIndex = int(br.ReadInt(nEntryBits)) + if br.ReadBit() { + idx++ + } else { + idx = int(br.ReadInt(nEntryBits)) } - lastEntry = entryIndex - - if entryIndex < 0 || entryIndex >= int(tab.GetMaxEntries()) { + if idx < 0 || idx >= int(*tab.s1MaxEntries) { panic("Something went to shit") } var entry string + if br.ReadBit() { //nolint:wsl if br.ReadBit() { idx := br.ReadInt(5) @@ -240,11 +262,11 @@ func (p *parser) processStringTable(tab *msg.CSVCMsg_CreateStringTable) { player := parsePlayerInfo(bytes.NewReader(userdata)) if p.header.ClientName == player.Name { - p.recordingPlayerSlot = entryIndex - p.eventDispatcher.Dispatch(events.POVRecordingPlayerDetected{PlayerSlot: entryIndex, PlayerInfo: player}) + p.recordingPlayerSlot = idx + p.eventDispatcher.Dispatch(events.POVRecordingPlayerDetected{PlayerSlot: idx, PlayerInfo: player}) } - p.setRawPlayer(entryIndex, player) + p.setRawPlayer(idx, player) case stNameInstanceBaseline: classID, err := strconv.Atoi(entry) @@ -255,8 +277,191 @@ func (p *parser) processStringTable(tab *msg.CSVCMsg_CreateStringTable) { p.stParser.SetInstanceBaseline(classID, userdata) case stNameModelPreCache: - p.modelPreCache[entryIndex] = entry + p.modelPreCache[idx] = entry + } + } +} + +// Holds and maintains a single entry in a string table. +type stringTableItem struct { + Index int32 + Key string + Value []byte +} + +const ( + stringtableKeyHistorySize = 32 +) + +// Parse a string table data blob, returning a list of item updates. +func parseStringTable( + buf []byte, + numUpdates int32, + name string, + userDataFixed bool, + userDataSize int32, + flags int32, + variantBitCount bool) (items []*stringTableItem) { + items = make([]*stringTableItem, 0) + + // Create a reader for the buffer + r := bit.NewSmallBitReader(bytes.NewReader(buf)) + + // Start with an index of -1. + // If the first item is at index 0 it will use a incr operation. + index := int32(-1) + keys := make([]string, 0, stringtableKeyHistorySize+1) + + // Some tables have no data + if len(buf) == 0 { + return items + } + + // Loop through entries in the data structure + // + // Each entry is a tuple consisting of {index, key, value} + // + // Index can either be incremented from the previous position or + // overwritten with a given entry. + // + // Key may be omitted (will be represented here as "") + // + // Value may be omitted + for i := 0; i < int(numUpdates); i++ { + key := "" + var value []byte + + // Read a boolean to determine whether the operation is an increment or + // has a fixed index position. A fixed index position of zero should be + // the last data in the buffer, and indicates that all data has been read. + incr := r.ReadBit() + if incr { + index++ + } else { + index = int32(r.ReadVarInt32()) + 1 + } + + // Some values have keys, some don't. + hasKey := r.ReadBit() + if hasKey { + // Some entries use reference a position in the key history for + // part of the key. If referencing the history, read the position + // and size from the buffer, then use those to build the string + // combined with an extra string read (null terminated). + // Alternatively, just read the string. + useHistory := r.ReadBit() + if useHistory { + pos := r.ReadInt(5) + size := r.ReadInt(5) + + if int(pos) >= len(keys) { + key += r.ReadString() + } else { + s := keys[pos] + if int(size) > len(s) { + key += s + r.ReadString() + } else { + key += s[0:size] + r.ReadString() + } + } + } else { + key = r.ReadString() + } + + keys = append(keys, key) + + if len(keys) > stringtableKeyHistorySize { + keys = keys[1:] + } + } + + // Some entries have a value. + hasValue := r.ReadBit() + if hasValue { + bitSize := uint(0) + isCompressed := false + if userDataFixed { + bitSize = uint(userDataSize) + } else { + if (flags & 0x1) != 0 { + isCompressed = r.ReadBit() + } + + if variantBitCount { + bitSize = r.ReadUBitInt() * 8 + } else { + bitSize = r.ReadInt(17) * 8 + } + } + value = r.ReadBits(int(bitSize)) + + if isCompressed { + tmp, err := snappy.Decode(nil, value) + if err != nil { + panic(fmt.Sprintf("unable to decode snappy compressed stringtable item (%s, %d, %s): %s", name, index, key, err)) + } + value = tmp + } + } + + items = append(items, &stringTableItem{index, key, value}) + } + + return items +} + +var instanceBaselineKeyRegex = regexp.MustCompile(`^\d+:\d+$`) + +func (p *parser) processStringTableS2(tab createStringTable, br *bit.BitReader) { + items := parseStringTable(tab.StringData, tab.GetNumEntries(), tab.GetName(), tab.GetUserDataFixedSize(), tab.GetUserDataSize(), tab.GetFlags(), tab.GetUsingVarintBitcounts()) + + for _, item := range items { + switch tab.GetName() { + case stNameInstanceBaseline: + if item.Key == "" || instanceBaselineKeyRegex.MatchString(item.Key) { + continue + } + + classID, err := strconv.Atoi(item.Key) + if err != nil { + panic(errors.Wrap(err, "failed to parse serverClassID")) + } + + p.stParser.SetInstanceBaseline(classID, item.Value) + case stNameUserInfo: + p.parseUserInfo(item.Value, int(item.Index)) + } + } +} + +func (p *parser) processStringTable(tab createStringTable) { + if tab.GetName() == stNameModelPreCache { + for i := len(p.modelPreCache); i < int(tab.GetNumEntries()); i++ { + p.modelPreCache = append(p.modelPreCache, "") + } + } + + if tab.GetDataCompressed() { + tmp := make([]byte, tab.GetUncompressedSize()) + + b, err := snappy.Decode(tmp, tab.StringData) + if err != nil { + panic(err) + } + + tab.StringData = b + } + + br := bit.NewSmallBitReader(bytes.NewReader(tab.StringData)) + + if tab.isS2 { + p.processStringTableS2(tab, br) + } else { + if br.ReadBit() { + panic("unknown stringtable format") } + + p.processStringTableS1(tab, br) } if tab.GetName() == stNameModelPreCache { @@ -318,3 +523,108 @@ func (p *parser) processModelPreCacheUpdate() { } } } + +// Manta says: +// These appear to be periodic state dumps and appear every 1800 outer ticks. +// XXX TODO: decide if we want to at all integrate these updates, +// or trust create/update entirely. Let's ignore them for now. +func (p *parser) handleStringTables(msg *msgs2.CDemoStringTables) { + p.msgDispatcher.SyncAllQueues() + + for _, tab := range msg.GetTables() { + if tab.GetTableName() == stNameInstanceBaseline { + for _, item := range tab.GetItems() { + key := item.GetStr() + + if instanceBaselineKeyRegex.MatchString(key) { + continue + } + + classID, err := strconv.Atoi(key) + if err != nil { + panic(errors.Wrap(err, "failed to parse serverClassID")) + } + + p.stParser.SetInstanceBaseline(classID, item.GetData()) + } + } else if tab.GetTableName() == stNameUserInfo { + for _, item := range tab.GetItems() { + playerIndex, err := strconv.Atoi(item.GetStr()) + if err != nil { + panic(errors.Wrap(err, "failed to parse playerIndex")) + } + + p.parseUserInfo(item.GetData(), playerIndex) + } + } + } +} + +func (p *parser) handleUpdateStringTableS1(tab *msg.CSVCMsg_UpdateStringTable) { + p.handleUpdateStringTable(&msgs2.CSVCMsg_UpdateStringTable{ + TableId: tab.TableId, + NumChangedEntries: tab.NumChangedEntries, + StringData: tab.StringData, + }, false) +} + +func (p *parser) handleCreateStringTableS1(tab *msg.CSVCMsg_CreateStringTable) { + size := int32(len(tab.StringData)) + compressed := false + + p.handleCreateStringTable(createStringTable{ + CSVCMsg_CreateStringTable: &msgs2.CSVCMsg_CreateStringTable{ + Name: tab.Name, + NumEntries: tab.NumEntries, + UserDataFixedSize: tab.UserDataFixedSize, + UserDataSize: tab.UserDataSize, + UserDataSizeBits: tab.UserDataSizeBits, + Flags: tab.Flags, + StringData: tab.StringData, + UncompressedSize: &size, + DataCompressed: &compressed, + }, + s1MaxEntries: tab.MaxEntries, + }) +} + +func (p *parser) parseUserInfo(data []byte, playerIndex int) { + var userInfo msgs2.CMsgPlayerInfo + err := proto.Unmarshal(data, &userInfo) + if err != nil { + panic(errors.Wrap(err, "failed to parse CMsgPlayerInfo msg")) + } + + xuid := userInfo.GetXuid() // TODO: what to do with userInfo.GetSteamid()? (seems to be the same, but maybe not in China?) + name := userInfo.GetName() + // When the userinfo ST is created its data contains 1 message for each possible player slot (up to 64). + // We ignore messages that are empty, i.e. not related to a real player, a BOT or GOTV. + if xuid == 0 && name == "" { + return + } + + playerInfo := common.PlayerInfo{ + XUID: xuid, + Name: name, + UserID: int(userInfo.GetUserid()), + IsFakePlayer: userInfo.GetFakeplayer(), + IsHltv: userInfo.GetIshltv(), + // Fields not available with CS2 demos + Version: 0, + GUID: "", + FriendsID: 0, + FriendsName: "", + CustomFiles0: 0, + CustomFiles1: 0, + CustomFiles2: 0, + CustomFiles3: 0, + FilesDownloaded: 0, + } + p.setRawPlayer(playerIndex, playerInfo) + + povDemoDetected := p.recordingPlayerSlot == -1 && p.header.ClientName == playerInfo.Name + if povDemoDetected { + p.recordingPlayerSlot = playerIndex + p.eventDispatcher.Dispatch(events.POVRecordingPlayerDetected{PlayerSlot: playerIndex, PlayerInfo: playerInfo}) + } +} diff --git a/pkg/demoinfocs/user_messages.go b/pkg/demoinfocs/user_messages.go index 74235fe2..62169787 100644 --- a/pkg/demoinfocs/user_messages.go +++ b/pkg/demoinfocs/user_messages.go @@ -6,8 +6,8 @@ import ( unassert "github.com/markus-wa/go-unassert" "google.golang.org/protobuf/proto" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) func (p *parser) handleUserMessage(um *msg.CSVCMsg_UserMessage) { diff --git a/pkg/demoinfocs/user_messages_test.go b/pkg/demoinfocs/user_messages_test.go index dc03d849..8bddf922 100644 --- a/pkg/demoinfocs/user_messages_test.go +++ b/pkg/demoinfocs/user_messages_test.go @@ -6,9 +6,9 @@ import ( assert "github.com/stretchr/testify/assert" proto "google.golang.org/protobuf/proto" - common "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common" - events "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events" - msg "github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/msg" + common "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common" + events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events" + msg "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/msg" ) func Test_UserMessages_ServerRankUpdate(t *testing.T) { @@ -36,8 +36,8 @@ func Test_UserMessages_ServerRankUpdate(t *testing.T) { p := NewParser(new(DevNullReader)).(*parser) - plA := newPlayer() - plB := newPlayer() + plA := newPlayerS1() + plB := newPlayerS1() p.gameState.playersBySteamID32[123] = plA p.gameState.playersBySteamID32[456] = plB diff --git a/scripts/coverage.sh b/scripts/coverage.sh index c3a84b11..65c7870c 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -3,7 +3,7 @@ set -e scripts_dir=$(dirname "$0") -$scripts_dir/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z retake_unknwon_bombsite_index.7z valve_matchmaking.7z +$scripts_dir/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z retake_unknwon_bombsite_index.7z valve_matchmaking.7z s2.7z # don't cover mocks and generated protobuf code coverpkg_ignore='/(fake|msg)' diff --git a/scripts/git-hooks/link-git-hooks.sh b/scripts/git-hooks/link-git-hooks.sh index 4e08cb0d..977fefe1 100755 --- a/scripts/git-hooks/link-git-hooks.sh +++ b/scripts/git-hooks/link-git-hooks.sh @@ -33,7 +33,7 @@ echo -n 'this will download ~ 1 GB of test-data (if not already done) [y/N] ' read prePushYesNo if [[ "$prePushYesNo" == "y" || "$prePushYesNo" == "Y" ]]; then - scripts/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z + scripts/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z s2.7z link .git/hooks/pre-push ../../scripts/git-hooks/pre-push.sh echo 'added pre-push hook' fi diff --git a/scripts/regression-tests.sh b/scripts/regression-tests.sh index 07a21536..22924082 100755 --- a/scripts/regression-tests.sh +++ b/scripts/regression-tests.sh @@ -3,6 +3,6 @@ set -e scripts_dir=$(dirname "$0") -$scripts_dir/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z +$scripts_dir/download-test-data.sh default.7z unexpected_end_of_demo.7z regression-set.7z s2.7z go test -tags unassert_panic ./... diff --git a/test/cs-demos b/test/cs-demos index e9700997..d07eb4cb 160000 --- a/test/cs-demos +++ b/test/cs-demos @@ -1 +1 @@ -Subproject commit e97009976cfcaee540870293c9b7c2825a2b8557 +Subproject commit d07eb4cbeaf38fb4ce613a6475615ade2c7147b0 diff --git a/test/default.golden b/test/default.golden index 7c9d85c4..8cd627f6 100644 Binary files a/test/default.golden and b/test/default.golden differ