#include <std_include.hpp>
#include "loader/component_loader.hpp"

#include <utils/string.hpp>

#include "game.hpp"
#include <component/console.hpp>
#include <utils/hook.hpp>

namespace dvars
{
	game::dvar_t* aimassist_enabled = nullptr;

	game::dvar_t* con_inputBoxColor = nullptr;
	game::dvar_t* con_inputHintBoxColor = nullptr;
	game::dvar_t* con_outputBarColor = nullptr;
	game::dvar_t* con_outputSliderColor = nullptr;
	game::dvar_t* con_outputWindowColor = nullptr;
	game::dvar_t* con_inputDvarMatchColor = nullptr;
	game::dvar_t* con_inputDvarValueColor = nullptr;
	game::dvar_t* con_inputDvarInactiveValueColor = nullptr;
	game::dvar_t* con_inputCmdMatchColor = nullptr;

	game::dvar_t* jump_enableFallDamage;

	game::dvar_t* r_fullbright;
	game::dvar_t* r_chams;

	game::dvar_t* cg_legacyCrashHandling;

	std::string dvar_get_vector_domain(const int components, const game::dvar_limits& domain)
	{
		if (domain.vector.min == -FLT_MAX)
		{
			if (domain.vector.max == FLT_MAX)
			{
				return utils::string::va("Domain is any %iD vector", components);
			}
			else
			{
				return utils::string::va("Domain is any %iD vector with components %g or smaller", components,
					domain.vector.max);
			}
		}
		else if (domain.vector.max == FLT_MAX)
		{
			return utils::string::va("Domain is any %iD vector with components %g or bigger", components,
				domain.vector.min);
		}
		else
		{
			return utils::string::va("Domain is any %iD vector with components from %g to %g", components,
				domain.vector.min, domain.vector.max);
		}
	}

	std::string dvar_get_domain(const game::dvar_type type, const game::dvar_limits& domain)
	{
		std::string str;

		switch (type)
		{
		case game::dvar_type::boolean:
			return "Domain is 0 or 1"s;

		case game::dvar_type::value:
			if (domain.value.min == -FLT_MAX)
			{
				if (domain.value.max == FLT_MAX)
				{
					return "Domain is any number"s;
				}
				else
				{
					return utils::string::va("Domain is any number %g or smaller", domain.value.max);
				}
			}
			else if (domain.value.max == FLT_MAX)
			{
				return utils::string::va("Domain is any number %g or bigger", domain.value.min);
			}
			else
			{
				return utils::string::va("Domain is any number from %g to %g", domain.value.min, domain.value.max);
			}

		case game::dvar_type::vec2:
			return dvar_get_vector_domain(2, domain);

		case game::dvar_type::rgb:
		case game::dvar_type::vec3:
			return dvar_get_vector_domain(3, domain);

		case game::dvar_type::vec4:
			return dvar_get_vector_domain(4, domain);

		case game::dvar_type::integer:
			if (domain.enumeration.stringCount == INT_MIN)
			{
				if (domain.integer.max == INT_MAX)
				{
					return "Domain is any integer"s;
				}
				else
				{
					return utils::string::va("Domain is any integer %i or smaller", domain.integer.max);
				}
			}
			else if (domain.integer.max == INT_MAX)
			{
				return utils::string::va("Domain is any integer %i or bigger", domain.integer.min);
			}
			else
			{
				return utils::string::va("Domain is any integer from %i to %i", domain.integer.min, domain.integer.max);
			}

		case game::dvar_type::color:
			return "Domain is any 4-component color, in RGBA format"s;

		case game::dvar_type::enumeration:
			str = "Domain is one of the following:"s;

			for (auto string_index = 0; string_index < domain.enumeration.stringCount; ++string_index)
			{
				str += utils::string::va("\n  %2i: %s", string_index, domain.enumeration.strings[string_index]);
			}

			return str;

		case game::dvar_type::string:
			return "Domain is any text"s;

		default:
			return utils::string::va("unhandled dvar type '%i'", type);
		}
	}

	namespace
	{
		template <typename T>
		T* find_dvar(std::unordered_map<std::string, T>& map, const std::string& name)
		{
			auto i = map.find(name);
			if (i != map.end())
			{
				return &i->second;
			}

			return nullptr;
		}

		bool find_dvar(std::unordered_set<std::string>& set, const std::string& name)
		{
			return set.find(name) != set.end();
		}
	}

	std::vector<std::string> dvar_list =
	{
		{"abilities_active"},
		{"accessToSubscriberContent"},
		{"aci"},
		{"actionSlotsHide"},
		{"agent_jumpGravity"},
		{"agent_jumpSpeed"},
		{"agent_jumpWallGravity"},
		{"agent_jumpWallSpeed"},
		{"aim_autoaim_enabled"},
		{"aim_target_sentient_radius"},
		{"aimassist_enabled"},
		{"allow_cod_anywhere"},
		{"allow_online_squads"},
		{"allow_secondscreen"},
		{"allow_secondscreen_ingame_recv"},
		{"allow_secondscreen_ingame_send"},
		{"allowKillStreaks"},
		{"ammoCounterHide"},
		{"badHost_detectMinServerTime"},
		{"badhost_maxDoISuckFrames"},
		{"band_12players"},
		{"band_18players"},
		{"band_2players"},
		{"band_4players"},
		{"band_8players"},
		{"bg_alienBulletExplRadius"},
		{"bg_bulletExplDmgFactor"},
		{"bg_bulletExplRadius"},
		{"bg_compassShowEnemies"},
		{"bg_idleSwingSpeed"},
		{"bg_shieldHitEncodeHeightVM"},
		{"bg_shieldHitEncodeHeightWorld"},
		{"bg_shieldHitEncodeWidthVM"},
		{"bg_shieldHitEncodeWidthWorld"},
		{"bg_shock_lookControl"},
		{"bg_shock_lookControl_fadeTime"},
		{"bg_shock_lookControl_maxpitchspeed"},
		{"bg_shock_lookControl_maxyawspeed"},
		{"bg_shock_lookControl_mousesensitivityscale"},
		{"bg_shock_movement"},
		{"bg_shock_screenBlurBlendFadeTime"},
		{"bg_shock_screenBlurBlendTime"},
		{"bg_shock_screenFlashShotFadeTime"},
		{"bg_shock_screenFlashWhiteFadeTime"},
		{"bg_shock_screenType"},
		{"bg_shock_sound"},
		{"bg_shock_soundDryLevel"},
		{"bg_shock_soundEnd"},
		{"bg_shock_soundEndAbort"},
		{"bg_shock_soundFadeInTime"},
		{"bg_shock_soundFadeOutTime"},
		{"bg_shock_soundLoop"},
		{"bg_shock_soundLoopEndDelay"},
		{"bg_shock_soundLoopFadeTime"},
		{"bg_shock_soundLoopSilent"},
		{"bg_shock_soundModEndDelay"},
		{"bg_shock_soundRoomType"},
		{"bg_shock_soundWetLevel"},
		{"bg_shock_viewKickFadeTime"},
		{"bg_shock_viewKickPeriod"},
		{"bg_shock_viewKickRadius"},
		{"bg_shock_volume_aircraft"},
		{"bg_shock_volume_alarm"},
		{"bg_shock_volume_ambdist1"},
		{"bg_shock_volume_ambdist2"},
		{"bg_shock_volume_ambient"},
		{"bg_shock_volume_announcer"},
		{"bg_shock_volume_auto"},
		{"bg_shock_volume_auto2"},
		{"bg_shock_volume_auto2d"},
		{"bg_shock_volume_autodog"},
		{"bg_shock_volume_body"},
		{"bg_shock_volume_body2d"},
		{"bg_shock_volume_bulletflesh1"},
		{"bg_shock_volume_bulletflesh1npc"},
		{"bg_shock_volume_bulletflesh1npc_npc"},
		{"bg_shock_volume_bulletflesh2"},
		{"bg_shock_volume_bulletflesh2npc"},
		{"bg_shock_volume_bulletflesh2npc_npc"},
		{"bg_shock_volume_bulletimpact"},
		{"bg_shock_volume_bulletwhizbyin"},
		{"bg_shock_volume_bulletwhizbyout"},
		{"bg_shock_volume_effects1"},
		{"bg_shock_volume_effects2"},
		{"bg_shock_volume_effects2d1"},
		{"bg_shock_volume_effects2d2"},
		{"bg_shock_volume_effects2dlim"},
		{"bg_shock_volume_effects3"},
		{"bg_shock_volume_element"},
		{"bg_shock_volume_element2d"},
		{"bg_shock_volume_element_ext"},
		{"bg_shock_volume_element_int"},
		{"bg_shock_volume_element_lim"},
		{"bg_shock_volume_explosion1"},
		{"bg_shock_volume_explosion2"},
		{"bg_shock_volume_explosion3"},
		{"bg_shock_volume_explosion4"},
		{"bg_shock_volume_explosion5"},
		{"bg_shock_volume_explosiondist1"},
		{"bg_shock_volume_explosiondist2"},
		{"bg_shock_volume_explosiveimpact"},
		{"bg_shock_volume_foley_dog_mvmt"},
		{"bg_shock_volume_foley_dog_step"},
		{"bg_shock_volume_foley_npc_mvmt"},
		{"bg_shock_volume_foley_npc_step"},
		{"bg_shock_volume_foley_npc_weap"},
		{"bg_shock_volume_foley_plr_mvmt"},
		{"bg_shock_volume_foley_plr_step"},
		{"bg_shock_volume_foley_plr_step_unres"},
		{"bg_shock_volume_foley_plr_weap"},
		{"bg_shock_volume_hurt"},
		{"bg_shock_volume_item"},
		{"bg_shock_volume_local"},
		{"bg_shock_volume_local2"},
		{"bg_shock_volume_local3"},
		{"bg_shock_volume_menu"},
		{"bg_shock_volume_menulim1"},
		{"bg_shock_volume_menulim2"},
		{"bg_shock_volume_mission"},
		{"bg_shock_volume_missionfx"},
		{"bg_shock_volume_music"},
		{"bg_shock_volume_music_emitter"},
		{"bg_shock_volume_musicnopause"},
		{"bg_shock_volume_nonshock"},
		{"bg_shock_volume_nonshock2"},
		{"bg_shock_volume_norestrict"},
		{"bg_shock_volume_norestrict2d"},
		{"bg_shock_volume_physics"},
		{"bg_shock_volume_player1"},
		{"bg_shock_volume_player2"},
		{"bg_shock_volume_plr_weap_fire_2d"},
		{"bg_shock_volume_plr_weap_mech_2d"},
		{"bg_shock_volume_reload"},
		{"bg_shock_volume_reload2d"},
		{"bg_shock_volume_shellshock"},
		{"bg_shock_volume_vehicle"},
		{"bg_shock_volume_vehicle2d"},
		{"bg_shock_volume_vehiclelimited"},
		{"bg_shock_volume_voice"},
		{"bg_shock_volume_voice_dog"},
		{"bg_shock_volume_voice_dog_attack"},
		{"bg_shock_volume_voice_dog_dist"},
		{"bg_shock_volume_weapon"},
		{"bg_shock_volume_weapon2d"},
		{"bg_shock_volume_weapon_dist"},
		{"bg_shock_volume_weapon_drone"},
		{"bg_shock_volume_weapon_mid"},
		{"bg_swingSpeed"},
		{"bg_torsoSwingSpeed"},
		{"bg_underbarrelWeaponEnabled"},
		{"bot_AutoConnectDefault"},
		{"bot_DifficultyDefault"},
		{"ca_do_mlc"},
		{"ca_intra_only"},
		{"camera_thirdPerson"},
		{"cameraShakeRemoteHelo_Angles"},
		{"cameraShakeRemoteHelo_Freqs"},
		{"cameraShakeRemoteHelo_SpeedRange"},
		{"cameraShakeRemoteMissile_Angles"},
		{"cameraShakeRemoteMissile_Freqs"},
		{"cameraShakeRemoteMissile_SpeedRange"},
		{"cg_airstrikeKillCamFarBlur"},
		{"cg_airstrikeKillCamFarBlurDist"},
		{"cg_airstrikeKillCamFarBlurStart"},
		{"cg_airstrikeKillCamFov"},
		{"cg_airstrikeKillCamNearBlur"},
		{"cg_airstrikeKillCamNearBlurEnd"},
		{"cg_airstrikeKillCamNearBlurStart"},
		{"cg_blood"},
		{"cg_brass"},
		{"cg_centertime"},
		{"cg_chatHeight"},
		{"cg_chatTime"},
		{"cg_ColorBlind_EnemyTeam"},
		{"cg_ColorBlind_MyParty"},
		{"cg_ColorBlind_MyTeam"},
		{"cg_connectionIconSize"},
		{"cg_constantSizeHeadIcons"},
		{"cg_crosshairAlpha"},
		{"cg_crosshairAlphaMin"},
		{"cg_crosshairDynamic"},
		{"cg_crosshairEnemyColor"},
		{"cg_crosshairVerticalOffset"},
		{"cg_cullBulletAngle"},
		{"cg_cullBullets"},
		{"cg_cursorHints"},
		{"cg_deadChatWithDead"},
		{"cg_deadChatWithTeam"},
		{"cg_deadHearAllLiving"},
		{"cg_deadHearTeamLiving"},
		{"cg_descriptiveText"},
		{"cg_draw2D"},
		{"cg_drawBreathHint"},
		{"cg_drawBuildName"},
		{"cg_drawCrosshair"},
		{"cg_drawCrosshairNames"},
		{"cg_drawCrosshairNamesPosX"},
		{"cg_drawCrosshairNamesPosY"},
		{"cg_drawDamageDirection"},
		{"cg_drawDamageFlash"},
		{"cg_drawEffectNum"},
		{"cg_drawFPS"},
		{"cg_drawFPSLabels"},
		{"cg_drawFriendlyHUDGrenades"},
		{"cg_drawFriendlyNames"},
		{"cg_drawFriendlyNamesAlways"},
		{"cg_drawGun"},
		{"cg_drawHealth"},
		{"cg_drawMantleHint"},
		{"cg_drawMaterial"},
		{"cg_drawpaused"},
		{"cg_drawPing"},
		{"cg_drawScriptUsage"},
		{"cg_drawSnapshot"},
		{"cg_drawSpectatorMessages"},
		{"cg_drawStatsSource"},
		{"cg_drawTalk"},
		{"cg_drawTechset"},
		{"cg_drawTurretCrosshair"},
		{"cg_drawViewpos"},
		{"cg_equipmentSounds"},
		{"cg_errordecay"},
		{"cg_everyoneHearsEveryone"},
		{"cg_explosiveKillCamBackDist"},
		{"cg_explosiveKillCamGroundBackDist"},
		{"cg_explosiveKillCamGroundUpDist"},
		{"cg_explosiveKillCamStopDecelDist"},
		{"cg_explosiveKillCamStopDist"},
		{"cg_explosiveKillCamUpDist"},
		{"cg_explosiveKillCamWallOutDist"},
		{"cg_explosiveKillCamWallSideDist"},
		{"cg_flashbangNameFadeIn"},
		{"cg_flashbangNameFadeOut"},
		{"cg_foliagesnd_alias"},
		{"cg_footsteps"},
		{"cg_footstepsSprint"},
		{"cg_fov"},
		{"cg_fovMin"},
		{"cg_fovScale"},
		{"cg_friendlyNameFadeIn"},
		{"cg_friendlyNameFadeOut"},
		{"cg_gameBoldMessageWidth"},
		{"cg_gameMessageWidth"},
		{"cg_gun_x"},
		{"cg_gun_y"},
		{"cg_gun_z"},
		{"cg_headIconMinScreenRadius"},
		{"cg_hearKillerTime"},
		{"cg_hearVictimEnabled"},
		{"cg_hearVictimTime"},
		{"cg_heliKillCamFarBlur"},
		{"cg_heliKillCamFarBlurDist"},
		{"cg_heliKillCamFarBlurStart"},
		{"cg_heliKillCamFov"},
		{"cg_heliKillCamNearBlur"},
		{"cg_heliKillCamNearBlurEnd"},
		{"cg_heliKillCamNearBlurStart"},
		{"cg_hintFadeTime"},
		{"cg_hudChatIntermissionPosition"},
		{"cg_hudChatPosition"},
		{"cg_hudDamageIconHeight"},
		{"cg_hudDamageIconInScope"},
		{"cg_hudDamageIconOffset"},
		{"cg_hudDamageIconTime"},
		{"cg_hudDamageIconWidth"},
		{"cg_hudGrenadeIconEnabledFlash"},
		{"cg_hudGrenadeIconHeight"},
		{"cg_hudGrenadeIconInScope"},
		{"cg_hudGrenadeIconMaxHeight"},
		{"cg_hudGrenadeIconMaxRangeFlash"},
		{"cg_hudGrenadeIconMaxRangeFrag"},
		{"cg_hudGrenadeIconOffset"},
		{"cg_hudGrenadeIconWidth"},
		{"cg_hudGrenadePointerHeight"},
		{"cg_hudGrenadePointerPivot"},
		{"cg_hudGrenadePointerPulseFreq"},
		{"cg_hudGrenadePointerPulseMax"},
		{"cg_hudGrenadePointerPulseMin"},
		{"cg_hudGrenadePointerWidth"},
		{"cg_hudlegacysplitscreenscale"},
		{"cg_hudLighting_basic_additiveLumOffset"},
		{"cg_hudLighting_basic_additiveLumScale"},
		{"cg_hudLighting_basic_additiveOffset"},
		{"cg_hudLighting_basic_additiveScale"},
		{"cg_hudLighting_basic_ambientLumOffset"},
		{"cg_hudLighting_basic_ambientLumScale"},
		{"cg_hudLighting_basic_ambientOffset"},
		{"cg_hudLighting_basic_ambientScale"},
		{"cg_hudLighting_basic_diffuseLumOffset"},
		{"cg_hudLighting_basic_diffuseLumScale"},
		{"cg_hudLighting_basic_diffuseOffset"},
		{"cg_hudLighting_basic_diffuseScale"},
		{"cg_hudLighting_basic_specExponent"},
		{"cg_hudLighting_basic_specLumOffset"},
		{"cg_hudLighting_basic_specLumScale"},
		{"cg_hudLighting_basic_specOffset"},
		{"cg_hudLighting_basic_specScale"},
		{"cg_hudLighting_blood_additiveLumOffset"},
		{"cg_hudLighting_blood_additiveLumScale"},
		{"cg_hudLighting_blood_additiveOffset"},
		{"cg_hudLighting_blood_additiveScale"},
		{"cg_hudLighting_blood_ambientLumOffset"},
		{"cg_hudLighting_blood_ambientLumScale"},
		{"cg_hudLighting_blood_ambientOffset"},
		{"cg_hudLighting_blood_ambientScale"},
		{"cg_hudLighting_blood_diffuseLumOffset"},
		{"cg_hudLighting_blood_diffuseLumScale"},
		{"cg_hudLighting_blood_diffuseOffset"},
		{"cg_hudLighting_blood_diffuseScale"},
		{"cg_hudLighting_blood_specExponent"},
		{"cg_hudLighting_blood_specLumOffset"},
		{"cg_hudLighting_blood_specLumScale"},
		{"cg_hudLighting_blood_specOffset"},
		{"cg_hudLighting_blood_specScale"},
		{"cg_hudLighting_fadeSharpness"},
		{"cg_hudMapBorderWidth"},
		{"cg_hudMapFriendlyHeight"},
		{"cg_hudMapFriendlyWidth"},
		{"cg_hudMapPlayerHeight"},
		{"cg_hudMapPlayerWidth"},
		{"cg_hudMapRadarLineThickness"},
		{"cg_hudObjectiveTextScale"},
		{"cg_hudProneY"},
		{"cg_hudSayPosition"},
		{"cg_hudSplitscreenCompassElementScale"},
		{"cg_hudsplitscreencompassscale"},
		{"cg_hudsplitscreenstancescale"},
		{"cg_hudStanceFlash"},
		{"cg_hudVotePosition"},
		{"cg_invalidCmdHintBlinkInterval"},
		{"cg_invalidCmdHintDuration"},
		{"cg_javelinKillCamCloseZDist"},
		{"cg_javelinKillCamDownDist"},
		{"cg_javelinKillCamFov"},
		{"cg_javelinKillCamLookLerpDist"},
		{"cg_javelinKillCamPassDist"},
		{"cg_javelinKillCamPassTime"},
		{"cg_javelinKillCamUpDist"},
		{"cg_killCamDefaultLerpTime"},
		{"cg_killCamTurretLerpTime"},
		{"cg_landingSounds"},
		{"cg_legacyCrashHandling"},
		{"cg_mapLocationSelectionCursorSpeed"},
		{"cg_marks_ents_player_only"},
		{"cg_minCullBulletDist"},
		{"cg_objectiveText"},
		{"cg_overheadIconSize"},
		{"cg_overheadNamesFarDist"},
		{"cg_overheadNamesFarScale"},
		{"cg_overheadNamesFont"},
		{"cg_overheadNamesGlow"},
		{"cg_overheadNamesMaxDist"},
		{"cg_overheadNamesNearDist"},
		{"cg_overheadNamesSize"},
		{"cg_overheadRankSize"},
		{"cg_remoteMissileKillCamBackDist"},
		{"cg_remoteMissileKillCamUpDist"},
		{"cg_rocketKillCamBackDist"},
		{"cg_rocketKillCamUpDist"},
		{"cg_scoreboardBannerHeight"},
		{"cg_scoreboardFont"},
		{"cg_scoreboardHeaderFontScale"},
		{"cg_scoreboardHeight"},
		{"cg_scoreboardItemHeight"},
		{"cg_scoreboardMyColor"},
		{"cg_scoreboardMyPartyColor"},
		{"cg_scoreboardPingGraph"},
		{"cg_scoreboardPingHeight"},
		{"cg_scoreboardPingText"},
		{"cg_scoreboardPingWidth"},
		{"cg_scoreboardRankFontScale"},
		{"cg_scoreboardScrollStep"},
		{"cg_scoreboardTextOffset"},
		{"cg_scoreboardWidth"},
		{"cg_ScoresPing_BgColor"},
		{"cg_ScoresPing_HighColor"},
		{"cg_ScoresPing_LowColor"},
		{"cg_ScoresPing_MedColor"},
		{"cg_scriptIconSize"},
		{"cg_showmiss"},
		{"cg_sprintMeterDisabledColor"},
		{"cg_sprintMeterEmptyColor"},
		{"cg_sprintMeterFullColor"},
		{"cg_subtitleMinTime"},
		{"cg_subtitleWidthStandard"},
		{"cg_subtitleWidthWidescreen"},
		{"cg_teamChatsOnly"},
		{"cg_TeamColor_Allies"},
		{"cg_TeamColor_Axis"},
		{"cg_TeamColor_EnemyTeam"},
		{"cg_TeamColor_Free"},
		{"cg_TeamColor_MyParty"},
		{"cg_TeamColor_MyTeam"},
		{"cg_TeamColor_Spectator"},
		{"cg_turretKillCamBackDist"},
		{"cg_turretKillCamFov"},
		{"cg_turretKillCamUpDist"},
		{"cg_turretRemoteKillCamBackDist"},
		{"cg_turretRemoteKillCamFov"},
		{"cg_turretRemoteKillCamUpDist"},
		{"cg_vectorFieldsForceUniform"},
		{"cg_viewVehicleInfluence"},
		{"cg_viewZSmoothingMax"},
		{"cg_viewZSmoothingMin"},
		{"cg_viewZSmoothingTime"},
		{"cg_voiceIconSize"},
		{"cg_waterSheeting_distortionScaleFactor"},
		{"cg_waterSheeting_magnitude"},
		{"cg_waterSheeting_radius"},
		{"cg_weapHitCullAngle"},
		{"cg_weapHitCullEnable"},
		{"cg_weaponCycleDelay"},
		{"cg_weaponHintsCoD1Style"},
		{"cg_weaponVisInterval"},
		{"cg_youInKillCamSize"},
		{"cl_anglespeedkey"},
		{"cl_bypassMouseInput"},
		{"cl_connectionAttempts"},
		{"cl_connectTimeout"},
		{"cl_demo_uploadfb"},
		{"cl_dirSelConvergenceTime"},
		{"cl_freelook"},
		{"cl_hudDrawsBehindUI"},
		{"cl_ingame"},
		{"cl_inhibit_stats_upload"},
		{"cl_lessprint"},
		{"cl_loadApexDLL"},
		{"cl_loadHairDLL"},
		{"cl_loadHBAODLL"},
		{"cl_loadNVMRDLL"},
		{"cl_loadNVPSMDLL"},
		{"cl_loadTXAADLL"},
		{"cl_maxpackets"},
		{"cl_maxPing"},
		{"cl_migrationTimeout"},
		{"cl_modifiedDebugPlacement"},
		{"cl_motdString"},
		{"cl_mouseAccel"},
		{"cl_noprint"},
		{"cl_packetdup"},
		{"cl_paused"},
		{"cl_pitchspeed"},
		{"cl_pushToTalk"},
		{"cl_serverStatusResendTime"},
		{"cl_showmouserate"},
		{"cl_textChatEnabled"},
		{"cl_timeout"},
		{"cl_voice"},
		{"cl_yawspeed"},
		{"clientSideEffects"},
		{"cod_anywhere_errorMessage"},
		{"cod_anywhere_showPopup"},
		{"cod_anywhere_single_task_popup_text"},
		{"com_animCheck"},
		{"com_cinematicEndInWhite"},
		{"com_completionResolveCommand"},
		{"com_errorMessage"},
		{"com_errorResolveCommand"},
		{"com_filter_output"},
		{"com_maxfps"},
		{"com_maxFrameTime"},
		{"com_playerProfile"},
		{"com_recommendedSet"},
		{"commerce_dl_retry_step"},
		{"commerce_manifest_file_max_retry_time"},
		{"commerce_manifest_file_retry_step"},
		{"commerce_max_dl_retry_time"},
		{"commerce_max_retry_time"},
		{"commerce_retry_step"},
		{"compass"},
		{"compassClampIcons"},
		{"compassCoords"},
		{"compassECoordCutoff"},
		{"compassFriendlyHeight"},
		{"compassFriendlyWidth"},
		{"compassHideSansObjectivePointer"},
		{"compassHideVehicles"},
		{"compassMaxRange"},
		{"compassMinRadius"},
		{"compassMinRange"},
		{"compassObjectiveArrowHeight"},
		{"compassObjectiveArrowOffset"},
		{"compassObjectiveArrowRotateDist"},
		{"compassObjectiveArrowWidth"},
		{"compassObjectiveDetailDist"},
		{"compassObjectiveDrawLines"},
		{"compassObjectiveHeight"},
		{"compassObjectiveIconHeight"},
		{"compassObjectiveIconWidth"},
		{"compassObjectiveMaxHeight"},
		{"compassObjectiveMaxRange"},
		{"compassObjectiveMinAlpha"},
		{"compassObjectiveMinDistRange"},
		{"compassObjectiveMinHeight"},
		{"compassObjectiveNearbyDist"},
		{"compassObjectiveNumRings"},
		{"compassObjectiveRingSize"},
		{"compassObjectiveRingTime"},
		{"compassObjectiveTextHeight"},
		{"compassObjectiveTextScale"},
		{"compassObjectiveWidth"},
		{"compassPlayerHeight"},
		{"compassPlayerWidth"},
		{"compassPrototypeElevation"},
		{"compassPrototypeFiring"},
		{"compassRadarLineThickness"},
		{"compassRadarPingFadeTime"},
		{"compassRotation"},
		{"compassSize"},
		{"compassSoundPingFadeTime"},
		{"compassTickertapeStretch"},
		{"con_gameMsgWindow0FadeInTime"},
		{"con_gameMsgWindow0FadeOutTime"},
		{"con_gameMsgWindow0Filter"},
		{"con_gameMsgWindow0LineCount"},
		{"con_gameMsgWindow0MsgTime"},
		{"con_gameMsgWindow0ScrollTime"},
		{"con_gameMsgWindow0SplitscreenScale"},
		{"con_gameMsgWindow1FadeInTime"},
		{"con_gameMsgWindow1FadeOutTime"},
		{"con_gameMsgWindow1Filter"},
		{"con_gameMsgWindow1LineCount"},
		{"con_gameMsgWindow1MsgTime"},
		{"con_gameMsgWindow1ScrollTime"},
		{"con_gameMsgWindow1SplitscreenScale"},
		{"con_gameMsgWindow2FadeInTime"},
		{"con_gameMsgWindow2FadeOutTime"},
		{"con_gameMsgWindow2Filter"},
		{"con_gameMsgWindow2LineCount"},
		{"con_gameMsgWindow2MsgTime"},
		{"con_gameMsgWindow2ScrollTime"},
		{"con_gameMsgWindow2SplitscreenScale"},
		{"con_gameMsgWindow3FadeInTime"},
		{"con_gameMsgWindow3FadeOutTime"},
		{"con_gameMsgWindow3Filter"},
		{"con_gameMsgWindow3LineCount"},
		{"con_gameMsgWindow3MsgTime"},
		{"con_gameMsgWindow3ScrollTime"},
		{"con_gameMsgWindow3SplitscreenScale"},
		{"con_inputBoxColor"},
		{"con_inputCmdMatchColor"},
		{"con_inputDvarInactiveValueColor"},
		{"con_inputDvarMatchColor"},
		{"con_inputDvarValueColor"},
		{"con_inputHintBoxColor"},
		{"con_outputBarColor"},
		{"con_outputSliderColor"},
		{"con_outputWindowColor"},
		{"con_typewriterColorBase"},
		{"con_typewriterColorGlowCheckpoint"},
		{"con_typewriterColorGlowCompleted"},
		{"con_typewriterColorGlowFailed"},
		{"con_typewriterColorGlowUpdated"},
		{"con_typewriterDecayDuration"},
		{"con_typewriterDecayStartTime"},
		{"con_typewriterPrintSpeed"},
		{"counterDownloadInterval"},
		{"counterUploadInterval"},
		{"cpu_speed_12players"},
		{"cpu_speed_18players"},
		{"cpu_speed_8players"},
		{"cSplineDebugRender"},
		{"cSplineDebugRenderCorridor"},
		{"cSplineDebugRenderData"},
		{"cSplineDebugRenderSplineId"},
		{"dc_lobbymerge"},
		{"dedicated_dhclient"},
		{"demonwareConsideredConnectedTime"},
		{"developer"},
		{"didyouknow"},
		{"discard_playerstats_on_suspend"},
		{"drawEntityCount"},
		{"drawEntityCountPos"},
		{"drawEntityCountSize"},
		{"drawKillcamData"},
		{"drawKillcamDataPos"},
		{"drawKillcamDataSize"},
		{"drawServerBandwidth"},
		{"drawServerBandwidthPos"},
		{"ds_dcid"},
		{"ds_dcid_override"},
		{"ds_info"},
		{"ds_info_enable"},
		{"ds_introRequestTimeout"},
		{"ds_keepaliveInterval"},
		{"ds_keepaliveTimeout"},
		{"ds_parklist"},
		{"ds_pingclient_maxpings"},
		{"ds_pingclient_maxpings_per_tick"},
		{"ds_pingclient_minpings"},
		{"ds_pingclient_nowaitonline"},
		{"ds_pingclient_odsf"},
		{"ds_pingclient_resend_ms"},
		{"ds_reacquireAfterDisconnect"},
		{"ds_serverAcquireTimeout"},
		{"ds_serverAcquisitionPeriod"},
		{"ds_serverConnectTimeout"},
		{"ds_serverListExpiryPeriod"},
		{"dsping_dc_0"},
		{"dsping_dc_1"},
		{"dsping_dc_10"},
		{"dsping_dc_11"},
		{"dsping_dc_12"},
		{"dsping_dc_13"},
		{"dsping_dc_14"},
		{"dsping_dc_15"},
		{"dsping_dc_16"},
		{"dsping_dc_17"},
		{"dsping_dc_18"},
		{"dsping_dc_19"},
		{"dsping_dc_2"},
		{"dsping_dc_20"},
		{"dsping_dc_21"},
		{"dsping_dc_22"},
		{"dsping_dc_23"},
		{"dsping_dc_24"},
		{"dsping_dc_25"},
		{"dsping_dc_26"},
		{"dsping_dc_27"},
		{"dsping_dc_28"},
		{"dsping_dc_29"},
		{"dsping_dc_3"},
		{"dsping_dc_30"},
		{"dsping_dc_31"},
		{"dsping_dc_32"},
		{"dsping_dc_33"},
		{"dsping_dc_34"},
		{"dsping_dc_35"},
		{"dsping_dc_36"},
		{"dsping_dc_37"},
		{"dsping_dc_38"},
		{"dsping_dc_39"},
		{"dsping_dc_4"},
		{"dsping_dc_40"},
		{"dsping_dc_41"},
		{"dsping_dc_42"},
		{"dsping_dc_43"},
		{"dsping_dc_44"},
		{"dsping_dc_45"},
		{"dsping_dc_46"},
		{"dsping_dc_47"},
		{"dsping_dc_48"},
		{"dsping_dc_49"},
		{"dsping_dc_5"},
		{"dsping_dc_50"},
		{"dsping_dc_51"},
		{"dsping_dc_52"},
		{"dsping_dc_53"},
		{"dsping_dc_54"},
		{"dsping_dc_55"},
		{"dsping_dc_56"},
		{"dsping_dc_57"},
		{"dsping_dc_58"},
		{"dsping_dc_59"},
		{"dsping_dc_6"},
		{"dsping_dc_60"},
		{"dsping_dc_61"},
		{"dsping_dc_62"},
		{"dsping_dc_63"},
		{"dsping_dc_7"},
		{"dsping_dc_8"},
		{"dsping_dc_9"},
		{"dvl"},
		{"dw_addrHandleTimeout"},
		{"dw_ignore_hack"},
		{"dw_leaderboard_write_active"},
		{"dw_matchmaking_fall_off"},
		{"dw_presence_active"},
		{"dw_presence_coop_join_active"},
		{"dw_presence_get_delay"},
		{"dw_presence_get_rate"},
		{"dw_presence_put_delay"},
		{"dw_presence_put_rate"},
		{"dw_region_lookup_timeout"},
		{"dw_shared_presence_active"},
		{"dw_shared_presence_get_delay"},
		{"dw_shared_presence_get_rate"},
		{"dw_shared_presence_put_delay"},
		{"dw_shared_presence_put_rate"},
		{"dynEnt_active"},
		{"elite_clan_active"},
		{"elite_clan_cool_off_time"},
		{"elite_clan_delay"},
		{"elite_clan_division_icon_active"},
		{"elite_clan_get_clan_max_retry_time"},
		{"elite_clan_get_clan_retry_step"},
		{"elite_clan_get_members_max_retry_time"},
		{"elite_clan_get_members_retry_step"},
		{"elite_clan_get_private_member_profile_max_retry_time"},
		{"elite_clan_get_private_member_profile_retry_step"},
		{"elite_clan_get_private_profile_max_retry_time"},
		{"elite_clan_get_private_profile_retry_step"},
		{"elite_clan_get_public_profile_max_retry_time"},
		{"elite_clan_get_public_profile_retry_step"},
		{"elite_clan_get_team_stats_max_retry_time"},
		{"elite_clan_get_team_stats_retry_step"},
		{"elite_clan_motd_throttle_time"},
		{"elite_clan_remote_view_active"},
		{"elite_clan_remote_view_max_retry_time"},
		{"elite_clan_remote_view_retry_step"},
		{"elite_clan_send_message_to_members_max_retry_time"},
		{"elite_clan_send_message_to_members_retry_step"},
		{"elite_clan_set_private_member_profile_max_retry_time"},
		{"elite_clan_set_private_member_profile_retry_step"},
		{"elite_clan_single_task_popup_text"},
		{"elite_clan_using_title"},
		{"elite_edl"},
		{"elite_edl_xl"},
		{"enable_eliteCACDownload"},
		{"enable_eliteCACDownloadInGameLobby"},
		{"enable_recordRecentActivity"},
		{"enableAntilagReporting"},
		{"enableReportingRegisteredParties"},
		{"enableServerReporting"},
		{"entitlements_active"},
		{"entitlements_config_file_max_retry_time"},
		{"entitlements_config_file_retry_step"},
		{"entitlements_cool_off_time"},
		{"entitlements_delay"},
		{"entitlements_key_archive_max_retry_time"},
		{"entitlements_key_archive_retry_step"},
		{"entitlementSystemOk"},
		{"extendedLoadoutsEnable"},
		{"extinction_cac_enabled"},
		{"extinction_hardcore_enabled"},
		{"extinction_intel_enabled"},
		{"extinction_map_selection_enabled"},
		{"extinction_tokens_enabled"},
		{"extinctionBonus_period"},
		{"facebook_active"},
		{"facebook_delay"},
		{"facebook_friends_active"},
		{"facebook_friends_max_retry_time"},
		{"facebook_friends_refresh_time"},
		{"facebook_friends_retry_step"},
		{"facebook_friends_showing_count"},
		{"facebook_friends_throttle_time"},
		{"facebook_max_retry_time"},
		{"facebook_password"},
		{"facebook_password_asterisk"},
		{"facebook_popup_text"},
		{"facebook_retry_step"},
		{"facebook_upload_photo_active"},
		{"facebook_upload_video_active"},
		{"facebook_username"},
		{"fixedtime"},
		{"FoFIconMaxSize"},
		{"FoFIconMinSize"},
		{"FoFIconScale"},
		{"FoFIconSpawnTimeDelay"},
		{"FoFIconSpawnTimeFade"},
		{"friendsCacheSteamFriends"},
		{"friendsMaxSteamLookupsPerFrame"},
		{"friendsWidgetMinimumRefreshTimer"},
		{"fs_basegame"},
		{"fs_basepath"},
		{"fs_basepath_output"},
		{"fs_cdpath"},
		{"fs_copyfiles"},
		{"fs_debug"},
		{"fs_game"},
		{"fs_homepath"},
		{"fs_ignoreLocalized"},
		{"fx_alphaThreshold"},
		{"fx_count"},
		{"fx_cull_elem_draw"},
		{"fx_cull_elem_spawn"},
		{"fx_debugBolt"},
		{"fx_deferelem"},
		{"fx_draw"},
		{"fx_draw_omniLight"},
		{"fx_draw_simd"},
		{"fx_draw_spotLight"},
		{"fx_drawClouds"},
		{"fx_enable"},
		{"fx_freeze"},
		{"fx_killEffectOnRewind"},
		{"fx_mark_profile"},
		{"fx_marks"},
		{"fx_marks_ents"},
		{"fx_marks_nearlimit"},
		{"fx_marks_smodels"},
		{"fx_maxNumApexFx"},
		{"fx_profile"},
		{"fx_profileFilter"},
		{"fx_profileFilterElemCountZero"},
		{"fx_profileSkip"},
		{"fx_profileSort"},
		{"fx_visMinTraceDist"},
		{"g_allowvote"},
		{"g_banIPs"},
		{"g_clonePlayerMaxVelocity"},
		{"g_deadChat"},
		{"g_dropForwardSpeed"},
		{"g_dropHorzSpeedRand"},
		{"g_dropUpSpeedBase"},
		{"g_dropUpSpeedRand"},
		{"g_earthquakeEnable"},
		{"g_enableElevators"},
		{"g_fogColorIntensityReadOnly"},
		{"g_fogColorReadOnly"},
		{"g_fogHalfDistReadOnly"},
		{"g_fogMaxOpacityReadOnly"},
		{"g_fogStartDistReadOnly"},
		{"g_friendlyfireDist"},
		{"g_friendlyNameDist"},
		{"g_gametype"},
		{"g_giveAll"},
		{"g_gravity"},
		{"g_hardcore"},
		{"g_inactivity"},
		{"g_keyboarduseholdtime"},
		{"g_knockback"},
		{"g_listEntity"},
		{"g_mantleBlockTimeBuffer"},
		{"g_maxDroppedWeapons"},
		{"g_minGrenadeDamageSpeed"},
		{"g_password"},
		{"g_playerCollision"},
		{"g_playerCollisionEjectSpeed"},
		{"g_playerEjection"},
		{"g_ScoresColor_Allies"},
		{"g_ScoresColor_Axis"},
		{"g_ScoresColor_EnemyTeam"},
		{"g_ScoresColor_Free"},
		{"g_ScoresColor_MyParty"},
		{"g_ScoresColor_MyTeam"},
		{"g_ScoresColor_Spectator"},
		{"g_scriptMainMenu"},
		{"g_speed"},
		{"g_sunFogBeginFadeAngleReadOnly"},
		{"g_sunFogColorIntensityReadOnly"},
		{"g_sunFogColorReadOnly"},
		{"g_sunFogDirReadOnly"},
		{"g_sunFogEnabledReadOnly"},
		{"g_sunFogEndFadeAngleReadOnly"},
		{"g_sunFogScaleReadOnly"},
		{"g_TeamIcon_Allies"},
		{"g_TeamIcon_Axis"},
		{"g_TeamIcon_EnemyAllies"},
		{"g_TeamIcon_EnemyAxis"},
		{"g_TeamIcon_Free"},
		{"g_TeamIcon_MyAllies"},
		{"g_TeamIcon_MyAxis"},
		{"g_TeamIcon_Spectator"},
		{"g_TeamName_Allies"},
		{"g_TeamName_Axis"},
		{"g_TeamTitleColor_EnemyTeam"},
		{"g_TeamTitleColor_MyTeam"},
		{"g_TeamTitleColor_Spectator"},
		{"g_useholdspawndelay"},
		{"g_useholdtime"},
		{"g_voiceChatTalkingDuration"},
		{"gamedate"},
		{"gamedvr_active"},
		{"gameMode"},
		{"gamename"},
		{"glass_angular_vel"},
		{"glass_break"},
		{"glass_crack_pattern_scale"},
		{"glass_damageToDestroy"},
		{"glass_damageToWeaken"},
		{"glass_edge_angle"},
		{"glass_fall_delay"},
		{"glass_fall_gravity"},
		{"glass_fall_ratio"},
		{"glass_fringe_maxcoverage"},
		{"glass_fringe_maxsize"},
		{"glass_fx_chance"},
		{"glass_hinge_friction"},
		{"glass_linear_vel"},
		{"glass_max_pieces_per_frame"},
		{"glass_max_shatter_fx_per_frame"},
		{"glass_meleeDamage"},
		{"glass_physics_chance"},
		{"glass_physics_maxdist"},
		{"glass_radiusDamageMultiplier"},
		{"glass_shard_maxsize"},
		{"glass_shattered_scale"},
		{"glass_trace_interval"},
		{"gpad_button_deadzone"},
		{"gpad_dpadDebounceTime"},
		{"gpad_menu_scroll_delay_first"},
		{"gpad_menu_scroll_delay_rest_accel"},
		{"gpad_menu_scroll_delay_rest_end"},
		{"gpad_menu_scroll_delay_rest_start"},
		{"gpad_stick_deadzone_max"},
		{"gpad_stick_deadzone_min"},
		{"gpad_stick_pressed"},
		{"gpad_stick_pressed_hysteresis"},
		{"groupDownloadInterval"},
		{"groupUploadInterval"},
		{"heli_barrelMaxVelocity"},
		{"heli_barrelRotation"},
		{"heli_barrelSlowdown"},
		{"hiDef"},
		{"hud_bloodOverlayLerpRate"},
		{"hud_deathQuoteFadeTime"},
		{"hud_drawHud"},
		{"hud_enable"},
		{"hud_fade_ammodisplay"},
		{"hud_fade_compass"},
		{"hud_fade_healthbar"},
		{"hud_fade_offhand"},
		{"hud_fade_sprint"},
		{"hud_flash_period_offhand"},
		{"hud_flash_time_offhand"},
		{"hud_health_pulserate_critical"},
		{"hud_health_pulserate_injured"},
		{"hud_health_startpulse_critical"},
		{"hud_health_startpulse_injured"},
		{"hudElemPausedBrightness"},
		{"igs_announcer"},
		{"igs_crossgame"},
		{"igs_fo"},
		{"igs_s1"},
		{"igs_shp"},
		{"igs_smappacks"},
		{"igs_sosp"},
		{"igs_sripper"},
		{"igs_sve"},
		{"igs_svp"},
		{"igs_svr"},
		{"igs_svs"},
		{"igs_swap"},
		{"igs_swp"},
		{"igs_td"},
		{"in_mouse"},
		{"intro"},
		{"iotd_active"},
		{"iotd_retry"},
		{"isMatchMakingGame"},
		{"jump_enableFallDamage"},
		{"jump_height"},
		{"jump_ladderPushVel"},
		{"jump_slowDownEnable"},
		{"jump_stepSize"},
		{"laserDebug"},
		{"laserEndOffset"},
		{"laserFlarePct"},
		{"laserFlarePct_alt"},
		{"laserLight"},
		{"laserLightBeginOffset"},
		{"laserLightBodyTweak"},
		{"laserLightEndOffset"},
		{"laserLightRadius"},
		{"laserLightRadius_alt"},
		{"laserLightWithoutNightvision"},
		{"laserRadius"},
		{"laserRadius_alt"},
		{"laserRange"},
		{"laserRange_alt"},
		{"laserRangePlayer"},
		{"lb_filter"},
		{"lb_maxrows"},
		{"lb_minrefresh"},
		{"lb_readDelay"},
		{"lb_throttle_time"},
		{"lb_times_in_window"},
		{"lb_window"},
		{"live_displayLogOnErrorReason"},
		{"live_qosec_firstupdatems"},
		{"live_qosec_lastupdatems"},
		{"live_qosec_maxtime"},
		{"live_qosec_minpercent"},
		{"live_qosec_minprobes"},
		{"livestreaming_active"},
		{"loading_sre_fatal"},
		{"lobby_animationSpeed"},
		{"lobby_animationTilesHigh"},
		{"lobby_animationTilesWide"},
		{"lobby_numAnimationFrames"},
		{"lobby_searchingPartyColor"},
		{"loc_language"},
		{"loc_translate"},
		{"log_host_migration_chance"},
		{"log_mapvote_chance"},
		{"log_party_state"},
		{"log_teambalance_chance"},
		{"logger_dev"},
		{"lowAmmoWarningColor1"},
		{"lowAmmoWarningColor2"},
		{"lowAmmoWarningNoAmmoColor1"},
		{"lowAmmoWarningNoAmmoColor2"},
		{"lowAmmoWarningNoReloadColor1"},
		{"lowAmmoWarningNoReloadColor2"},
		{"lowAmmoWarningPulseFreq"},
		{"lowAmmoWarningPulseMax"},
		{"lowAmmoWarningPulseMin"},
		{"lsp_enumertion_max_retry_time"},
		{"lsp_enumertion_retry_step"},
		{"lui_FFotDSupportEnabled"},
		{"LUI_MemErrorsFatal"},
		{"lui_menuFlowEnabled"},
		{"lui_splitscreensignin_menu"},
		{"lui_splitscreenupscaling"},
		{"lui_systemlink_menu"},
		{"LUI_WorkerCmdGC"},
		{"lui_xboxlive_menu"},
		{"m_filter"},
		{"m_forward"},
		{"m_pitch"},
		{"m_side"},
		{"m_yaw"},
		{"mapname"},
		{"mapPackMPGroupFourFlags"},
		{"mapPackMPGroupFreeFlags"},
		{"mapPackMPGroupOneFlags"},
		{"mapPackMPGroupThreeFlags"},
		{"mapPackMPGroupTwoFlags"},
		{"mapvote_logging"},
		{"match_making_telemetry_chance"},
		{"matchdata_active"},
		{"matchdata_maxcompressionbuffer"},
		{"matchmaking_debug"},
		{"max_xp_per_match"},
		{"maxVoicePacketsPerSec"},
		{"maxVoicePacketsPerSecForServer"},
		{"mdsd"},
		{"melee_debug"},
		{"migration_dvarErrors"},
		{"min_wait_for_players"},
		{"missileRemoteFOV"},
		{"missileRemoteSteerPitchRange"},
		{"missileRemoteSteerPitchRate"},
		{"missileRemoteSteerYawRate"},
		{"mm_country_code"},
		{"mm_skill_calculation_type"},
		{"mm_skill_enforcement"},
		{"mm_skill_lower_bucket"},
		{"mm_skill_strict_enforcement"},
		{"mm_skill_type"},
		{"mm_skill_upper_bucket"},
		{"mm_sph_1"},
		{"mm_sph_10"},
		{"mm_sph_11"},
		{"mm_sph_12"},
		{"mm_sph_13"},
		{"mm_sph_14"},
		{"mm_sph_15"},
		{"mm_sph_16"},
		{"mm_sph_17"},
		{"mm_sph_18"},
		{"mm_sph_2"},
		{"mm_sph_3"},
		{"mm_sph_4"},
		{"mm_sph_5"},
		{"mm_sph_6"},
		{"mm_sph_7"},
		{"mm_sph_8"},
		{"mm_sph_9"},
		{"mm_split_population"},
		{"mm_test_type"},
		{"monkeytoy"},
		{"motd"},
		{"motd_store_link"},
		{"motionTrackerBlurDuration"},
		{"motionTrackerCenterX"},
		{"motionTrackerCenterY"},
		{"motionTrackerPingFadeTime"},
		{"motionTrackerPingPitchAddPerEnemy"},
		{"motionTrackerPingPitchBase"},
		{"motionTrackerPingPitchNearby"},
		{"motionTrackerPingSize"},
		{"name"},
		{"net_authPort"},
		{"net_ip"},
		{"net_masterServerPort"},
		{"net_noudp"},
		{"net_port"},
		{"net_socksEnabled"},
		{"net_socksPassword"},
		{"net_socksPort"},
		{"net_socksServer"},
		{"net_socksUsername"},
		{"netinfo_logging"},
		{"nextmap"},
		{"nightVisionDisableEffects"},
		{"nightVisionFadeInOutTime"},
		{"nightVisionPowerOnTime"},
		{"num_available_map_packs"},
		{"objectiveFontSize"},
		{"objectiveTextOffsetY"},
		{"onlinegame"},
		{"overrideNVGModelWithKnife"},
		{"overtimeTimeLimit"},
		{"p2pAuth_allow_kick"},
		{"p2pAuth_allow_steam_p2p"},
		{"p2pAuth_disable"},
		{"painVisionLerpOutRate"},
		{"painVisionTriggerHealth"},
		{"party_aliensUseDedicatedServer"},
		{"party_alternateMapVoteStatus"},
		{"party_dlc_only_intended_mappacks"},
		{"party_firstSubpartyIndex"},
		{"party_followPartyHostOutOfGames"},
		{"party_gamesize"},
		{"party_gametype"},
		{"party_inactiveHeartbeatPeriod"},
		{"party_initial_dlc_search_timer"},
		{"party_IsLocalClientSelected"},
		{"party_joinInProgressPingBias"},
		{"party_kickplayerquestion"},
		{"party_listFocus"},
		{"party_lobbyPlayerCount"},
		{"party_mapname"},
		{"party_mapvote_entrya_mapname"},
		{"party_mapvote_entryb_mapname"},
		{"party_matchedPlayerCount"},
		{"party_maxplayers"},
		{"party_maxPrivatePartyPlayers"},
		{"party_maxTeamDiff"},
		{"party_membersMissingMapPack"},
		{"party_minLobbyTime"},
		{"party_minplayers"},
		{"party_nextMapVoteStatus"},
		{"party_oneSlotOpenPingBias"},
		{"party_over25FullPingBias"},
		{"party_over50FullPingBias"},
		{"party_over75FullPingBias"},
		{"party_partyPlayerCount"},
		{"party_partyPlayerCountNum"},
		{"party_playervisible"},
		{"party_resume_dlc_search_timer"},
		{"party_search_for_dlc_content"},
		{"party_selectedIndex"},
		{"party_selectedIndexChangedTime"},
		{"party_statusString"},
		{"party_teambased"},
		{"party_teamsVisible"},
		{"party_timer"},
		{"partyChatDisallowed"},
		{"partymigrate_broadcast_interval"},
		{"partymigrate_cpuBonusPing"},
		{"partymigrate_cpuBonusThreshold"},
		{"partymigrate_logResults"},
		{"partymigrate_makeHostTimeout"},
		{"partymigrate_pingtest_active"},
		{"partymigrate_pingtest_filterThreshold"},
		{"partymigrate_pingtest_minThreshold"},
		{"partymigrate_pingtest_retry"},
		{"partymigrate_pingtest_timeout"},
		{"partymigrate_preferSameHost"},
		{"partymigrate_selectiontime"},
		{"partymigrate_timeout"},
		{"partymigrate_timeoutmax"},
		{"partymigrate_uploadtest_minThreshold"},
		{"password"},
		{"past_title_data_active"},
		{"past_title_data_read_failure_interval_hours"},
		{"past_title_data_read_success_interval_hours"},
		{"perk_armorPiercingDamage"},
		{"perk_blastShieldClampHP"},
		{"perk_blastShieldClampHP_HC"},
		{"perk_blastShieldScale"},
		{"perk_blastShieldScale_HC"},
		{"perk_bulletPenetrationMultiplier"},
		{"perk_extendedMagsMGAmmo"},
		{"perk_extendedMagsPistolAmmo"},
		{"perk_extendedMagsRifleAmmo"},
		{"perk_extendedMagsSMGAmmo"},
		{"perk_extendedMagsSpreadAmmo"},
		{"perk_extraBreath"},
		{"perk_fastRegenRate"},
		{"perk_fastRegenWaitMS"},
		{"perk_fastSnipeScale"},
		{"perk_footstepVolumeAlly"},
		{"perk_footstepVolumeEnemy"},
		{"perk_footstepVolumePlayer"},
		{"perk_footstepVolumeSelectiveHearingMin"},
		{"perk_grenadeDeath"},
		{"perk_improvedExtraBreath"},
		{"perk_lightWeightViewBobScale"},
		{"perk_parabolicAngle"},
		{"perk_parabolicIcon"},
		{"perk_parabolicRadius"},
		{"perk_quickDrawSpeedScale"},
		{"perk_quickDrawSpeedScaleSniper"},
		{"perk_scavengerMode"},
		{"perk_sprintMultiplier"},
		{"perk_sprintRecoveryMultiplierActual"},
		{"perk_sprintRecoveryMultiplierVisual"},
		{"perk_weapRateMultiplier"},
		{"perk_weapReloadMultiplier"},
		{"perk_weapSpreadMultiplier"},
		{"phys_autoDisableAngular"},
		{"phys_autoDisableFastAngular"},
		{"phys_autoDisableFastLinear"},
		{"phys_autoDisableFastTime"},
		{"phys_autoDisableLinear"},
		{"phys_autoDisableTime"},
		{"phys_bulletSpinScale"},
		{"phys_bulletUpBias"},
		{"phys_cfm"},
		{"phys_collUseEntities"},
		{"phys_contact_cfm"},
		{"phys_contact_cfm_ragdoll"},
		{"phys_contact_cfm_vehicle"},
		{"phys_contact_cfm_vehicleSoft"},
		{"phys_contact_erp"},
		{"phys_contact_erp_ragdoll"},
		{"phys_contact_erp_vehicle"},
		{"phys_contact_erp_vehicleSoft"},
		{"phys_csl"},
		{"phys_dragAngular"},
		{"phys_dragLinear"},
		{"phys_erp"},
		{"phys_frictionScale"},
		{"phys_gravity"},
		{"phys_gravity_ragdoll"},
		{"phys_gravityChangeWakeupRadius"},
		{"phys_jitterMaxMass"},
		{"phys_joint_cfm"},
		{"phys_joint_stop_cfm"},
		{"phys_joint_stop_erp"},
		{"phys_jointPullThreshold"},
		{"phys_mcv"},
		{"phys_mcv_ragdoll"},
		{"phys_mcv_vehicle"},
		{"phys_noIslands"},
		{"phys_qsi"},
		{"phys_reorderConst"},
		{"physVeh_collideWithClipOnly"},
		{"physVeh_explodeForce"},
		{"physVeh_explodeSpinScale"},
		{"physVeh_jump"},
		{"physVeh_minImpactMomentum"},
		{"physVeh_pathConstraintCfm"},
		{"physVeh_pathConstraintErp"},
		{"physVeh_slideReductionForHighSpeed"},
		{"physVeh_StepsPerFrame"},
		{"pickupPrints"},
		{"player_breath_snd_delay"},
		{"player_breath_snd_lerp"},
		{"player_current_floor"},
		{"player_MGUseRadius"},
		{"player_stunWhiteFlash"},
		{"player_throwbackInnerRadius"},
		{"player_throwbackOuterRadius"},
		{"player_useRadius"},
		{"playercard_cache_download_max_retry_time"},
		{"playercard_cache_download_retry_step"},
		{"playercard_cache_upload_max_retry_time"},
		{"playercard_cache_upload_retry_step"},
		{"playercard_cache_validity_life"},
		{"playerPositionRecordSampleTime"},
		{"playlist"},
		{"playlistAggrFilename"},
		{"playlistFilename"},
		{"playListUpdateCheckMinutes"},
		{"pm_bouncing"},
		{"pm_bouncingAllAngles"},
		{"pm_gamesetup_mode_altmodes"},
		{"pm_gamesetup_mode_altmodes_dropzone"},
		{"pm_gamesetup_mode_altmodes_gungame"},
		{"pm_gamesetup_mode_altmodes_infected"},
		{"pm_gamesetup_mode_altmodes_jug"},
		{"pm_gamesetup_mode_altmodes_mugger"},
		{"pm_gamesetup_mode_altmodes_oneinthechamber"},
		{"pm_gamesetup_mode_altmodes_teamjug"},
		{"pm_gamesetup_options_createdefaultclass"},
		{"pm_gamesetup_options_customclassrestrictions"},
		{"prestige_shop_active"},
		{"privateMatch_joinPassword"},
		{"privateMatch_serverPassword"},
		{"profileMenuOption_blacklevel"},
		{"profileMenuOption_offensiveContentMode"},
		{"profileMenuOption_safeAreaHorz"},
		{"profileMenuOption_safeAreaVert"},
		{"profileMenuOption_sensitivity"},
		{"profileMenuOption_volume"},
		{"protocol"},
		{"pt_AliensReadyUpPrivateInUse"},
		{"pt_AliensReadyUpPublicInUse"},
		{"pt_AliensReadyUpPublicStartTimerLength"},
		{"pt_allMembersDoQoS"},
		{"pt_allMembersDoQoSTimeout"},
		{"pt_backoutOnClientPresence"},
		{"pt_connectAttempts"},
		{"pt_connectTimeout"},
		{"pt_currentSearchTier"},
		{"pt_defaultSearchTier"},
		{"pt_gameStartTimerLength"},
		{"pt_logHostSelectionChance"},
		{"pt_maxSearchTier"},
		{"pt_memberTimeout"},
		{"pt_migrateBeforeAdvertise"},
		{"pt_migrationBandwidthBonusPing"},
		{"pt_migrationBandwidthBonusThreshold"},
		{"pt_migrationCPUWeight"},
		{"pt_migrationNotInstalledWeight"},
		{"pt_migrationPingBad"},
		{"pt_migrationPingWeight"},
		{"pt_migrationQuitsBad"},
		{"pt_migrationQuitsWeight"},
		{"pt_migrationRAMWeight"},
		{"pt_migrationThreshold"},
		{"pt_migrationUploadBad"},
		{"pt_migrationUploadWeight"},
		{"pt_migrationWifiPenalty"},
		{"pt_msPerTier"},
		{"pt_percentUnacceptableQoS"},
		{"pt_pregameStartTimerLength"},
		{"pt_rejoin"},
		{"pt_reservedAnonymousSlotTime"},
		{"pt_reservedCommittedSlotTime"},
		{"pt_reservedJoiningSlotTime"},
		{"pt_searchConnectAttempts"},
		{"pt_searchPauseTime"},
		{"pt_searchRandomDelay"},
		{"pt_searchResultsLifetime"},
		{"pt_searchResultsMin"},
		{"pt_startAllowingUnacceptableQos"},
		{"pt_stillConnectingWaitTime"},
		{"pt_useHostPingForDesirability"},
		{"pt_useMigrationWeights"},
		{"r_aaMode"},
		{"r_adaptiveSubdiv"},
		{"r_adaptiveSubdivBaseFactor"},
		{"r_adaptiveSubdivPatchFactor"},
		{"r_altModelLightingUpdate"},
		{"r_amdGPU"},
		{"r_amdGPUVideoMemoryScale"},
		{"r_apex_turbulence"},
		{"r_apexTurbulence_LOD_MaxDist"},
		{"r_apexTurbulence_LOD_MinDist"},
		{"r_apexTurbulence_LOD_MinPercent"},
		{"r_artUseTweaks"},
		{"r_aspectRatio"},
		{"r_aspectRatioCustom"},
		{"r_asyncCompute"},
		{"r_atlasAnimFPS"},
		{"r_autopriority"},
		{"r_blacklevel"},
		{"r_blur"},
		{"r_brightness"},
		{"r_cacheModelLighting"},
		{"r_cacheSModelLighting"},
		{"r_cc_contrastPow1"},
		{"r_cc_contrastPow2"},
		{"r_cc_contrastScale1"},
		{"r_cc_contrastScale2"},
		{"r_cc_desaturation1"},
		{"r_cc_desaturation2"},
		{"r_cc_lerp1"},
		{"r_cc_lerp2"},
		{"r_cc_mode"},
		{"r_cc_toneBias1"},
		{"r_cc_toneBias2"},
		{"r_charLightAmbient"},
		{"r_charLightAmbient_NG"},
		{"r_clampLodScale"},
		{"r_clear"},
		{"r_clearColor"},
		{"r_clearColor2"},
		{"r_cmdbuf_worker"},
		{"r_colorGradingEnable"},
		{"r_colorMap"},
		{"r_combinePostOpaqueFx"},
		{"r_contrast"},
		{"r_debugLineWidth"},
		{"r_defaultPatchCount"},
		{"r_depthPrepass"},
		{"r_desaturation"},
		{"r_detailMap"},
		{"r_diffuseColorScale"},
		{"r_displacementMap"},
		{"r_displacementPatchCount"},
		{"r_displayMaxHeight"},
		{"r_displayMaxWidth"},
		{"r_displayMode"},
		{"r_displayRefresh"},
		{"r_distortion"},
		{"r_dlightLimit"},
		{"r_dof_bias"},
		{"r_dof_enable"},
		{"r_dof_farBlur"},
		{"r_dof_farEnd"},
		{"r_dof_farStart"},
		{"r_dof_hq"},
		{"r_dof_nearBlur"},
		{"r_dof_nearEnd"},
		{"r_dof_nearStart"},
		{"r_dof_tweak"},
		{"r_dof_viewModelEnd"},
		{"r_dof_viewModelStart"},
		{"r_drawSun"},
		{"r_drawWater"},
		{"r_elevatedPriority"},
		{"r_envMapExponent"},
		{"r_envMapMaxIntensity"},
		{"r_envMapMinIntensity"},
		{"r_envMapOverride"},
		{"r_envMapSunIntensity"},
		{"r_fastModelPrimaryLightCheck"},
		{"r_fastModelPrimaryLightLink"},
		{"r_filmAltShader"},
		{"r_filmTweakBrightness"},
		{"r_filmTweakContrast"},
		{"r_filmTweakDarkTint"},
		{"r_filmTweakDesaturation"},
		{"r_filmTweakDesaturationDark"},
		{"r_filmTweakEnable"},
		{"r_filmTweakInvert"},
		{"r_filmTweakLightTint"},
		{"r_filmTweakMediumTint"},
		{"r_filmUseTweaks"},
		{"r_flushAfterExecute"},
		{"r_fog"},
		{"r_fog_depthhack_scale"},
		{"r_forceLetterbox4x3"},
		{"r_forceLod"},
		{"r_fullbright"},
		{"r_fur_shader"},
		{"r_fxaaSubpixel"},
		{"r_FXAverageColorFunc"},
		{"r_glare_amountMin"},
		{"r_glare_enable"},
		{"r_glare_mergeWithBloom"},
		{"r_glare_mirrorAmount"},
		{"r_glare_mirrorEnd"},
		{"r_glare_mirrorPower"},
		{"r_glare_mirrorStart"},
		{"r_glare_normalAmount"},
		{"r_glare_normalEnd"},
		{"r_glare_normalPower"},
		{"r_glare_normalStart"},
		{"r_glare_useTweaks"},
		{"r_globalGenericMaterialScale"},
		{"r_glow_allowed"},
		{"r_glow_allowed_script_forced"},
		{"r_hbaoBias"},
		{"r_hbaoBlurEnable"},
		{"r_hbaoBlurSharpness"},
		{"r_hbaoCoarseAO"},
		{"r_hbaoDebug"},
		{"r_hbaoDetailAO"},
		{"r_hbaoPowerExponent"},
		{"r_hbaoRadius"},
		{"r_hbaoSceneScale"},
		{"r_hbaoStrengthBlend"},
		{"r_hbaoStrengthFixed"},
		{"r_hbaoStrengthScale"},
		{"r_hbaoUseScriptScale"},
		{"r_hdrColorizationBeforeEmissive"},
		{"r_hdrSkyColorTint"},
		{"r_hdrSkyIntensity"},
		{"r_hdrSkyIntensityUseTweaks"},
		{"r_heroLighting"},
		{"r_highLodDist"},
		{"r_hudOutlineAlpha0"},
		{"r_hudOutlineAlpha1"},
		{"r_hudOutlineCurvyBlurRadius"},
		{"r_hudOutlineCurvyDarkenScale"},
		{"r_hudOutlineCurvyDepth"},
		{"r_hudOutlineCurvyLumScale"},
		{"r_hudOutlineCurvyWhen"},
		{"r_hudOutlineCurvyWidth"},
		{"r_hudOutlineEnable"},
		{"r_hudOutlineHaloBlurRadius"},
		{"r_hudOutlineHaloDarkenScale"},
		{"r_hudOutlineHaloLumScale"},
		{"r_hudOutlineHaloWhen"},
		{"r_hudOutlinePostMode"},
		{"r_hudOutlineWhen"},
		{"r_hudOutlineWidth"},
		{"r_ignore"},
		{"r_ignoref"},
		{"r_imageQuality"},
		{"r_lateAllocParamCacheAllowed"},
		{"r_lateAllocParamCacheDefault"},
		{"r_lateAllocParamCacheDisplacement"},
		{"r_lateAllocParamCacheSubdiv"},
		{"r_letterbox4x3"},
		{"r_lightCacheLessFrequentMaxDistance"},
		{"r_lightCacheLessFrequentPeriod"},
		{"r_lightGridContrast"},
		{"r_lightGridEnableTweaks"},
		{"r_lightGridIntensity"},
		{"r_lightGridSHBands"},
		{"r_lightGridUseTweakedValues"},
		{"r_lightMap"},
		{"r_litSurfaceHDRScalar"},
		{"r_loadForRenderer"},
		{"r_lockPvs"},
		{"r_lod4Dist"},
		{"r_lod5Dist"},
		{"r_lodBiasRigid"},
		{"r_lodBiasSkinned"},
		{"r_lodScaleRigid"},
		{"r_lodScaleSkinned"},
		{"r_lowestLodDist"},
		{"r_lowLodDist"},
		{"r_materialBloomDesaturation"},
		{"r_materialBloomHQDesaturation"},
		{"r_materialBloomHQEnable"},
		{"r_materialBloomHQFalloffScale1"},
		{"r_materialBloomHQFalloffScale2"},
		{"r_materialBloomHQFalloffWeight1"},
		{"r_materialBloomHQFalloffWeight2"},
		{"r_materialBloomHQGamma"},
		{"r_materialBloomHQHaziness"},
		{"r_materialBloomHQRadius"},
		{"r_materialBloomHQScriptMasterEnable"},
		{"r_materialBloomHQSensitivity"},
		{"r_materialBloomIntensity"},
		{"r_materialBloomLuminanceCutoff"},
		{"r_materialBloomPinch"},
		{"r_materialBloomRadius"},
		{"r_materialBloomUseTweaks"},
		{"r_mbCameraRotationInfluence"},
		{"r_mbCameraTranslationInfluence"},
		{"r_mbEnable"},
		{"r_mbEnableA"},
		{"r_mbFastEnable"},
		{"r_mbFastEnableA"},
		{"r_mbFastPreset"},
		{"r_mbModelVelocityScalar"},
		{"r_mbPostfxMaxNumSamples"},
		{"r_mbStaticVelocityScalar"},
		{"r_mbViewModelEnable"},
		{"r_mbViewModelVelocityScalar"},
		{"r_mediumLodDist"},
		{"r_mode"},
		{"r_monitor"},
		{"r_msaaEnable"},
		{"r_msaaResolveMode"},
		{"r_multiGPU"},
		{"r_normalMap"},
		{"r_nvidiaGPU"},
		{"r_nvidiaGPUCount"},
		{"r_offchipTessellationAllowed"},
		{"r_offchipTessellationTfThreshold"},
		{"r_offchipTessellationWaveThreshold"},
		{"r_omitUnusedRenderTargets"},
		{"r_outdoor"},
		{"r_outdoorFeather"},
		{"r_patchCountAllowed"},
		{"r_picmip"},
		{"r_picmip_bump"},
		{"r_picmip_manual"},
		{"r_picmip_spec"},
		{"r_picmip_water"},
		{"r_polygonOffsetBias"},
		{"r_polygonOffsetClamp"},
		{"r_polygonOffsetScale"},
		{"r_portalBevels"},
		{"r_portalBevelsOnly"},
		{"r_portalMinClipArea"},
		{"r_portalMinRecurseDepth"},
		{"r_portalWalkLimit"},
		{"r_postAA"},
		{"r_postfxMacroclutEnable"},
		{"r_postfxMacroclutWorker"},
		{"r_predatorAllyBrightness"},
		{"r_predatorAllyContrast"},
		{"r_predatorAllyHueRot"},
		{"r_predatorAllyOutputColorBias"},
		{"r_predatorAllyOutputColorScale"},
		{"r_predatorAllyPostBrightness"},
		{"r_predatorAllyPostContrast"},
		{"r_predatorAllyPosterHardness"},
		{"r_predatorAllySaturation"},
		{"r_predatorColdBrightness"},
		{"r_predatorColdContrast"},
		{"r_predatorColdCycleFreq"},
		{"r_predatorColdCycleMax"},
		{"r_predatorColdCycleMin"},
		{"r_predatorColdCyclePhase"},
		{"r_predatorColdHueRot"},
		{"r_predatorColdOutputColorBias"},
		{"r_predatorColdOutputColorScale"},
		{"r_predatorColdPostBrightness"},
		{"r_predatorColdPostContrast"},
		{"r_predatorColdPosterBias"},
		{"r_predatorColdPosterBiasSpeed"},
		{"r_predatorColdPosterColorCount"},
		{"r_predatorColdPosterHardness"},
		{"r_predatorColdSaturation"},
		{"r_predatorDisable"},
		{"r_predatorEnemyBrightness"},
		{"r_predatorEnemyContrast"},
		{"r_predatorEnemyHueRot"},
		{"r_predatorEnemyOutputColorBias"},
		{"r_predatorEnemyOutputColorScale"},
		{"r_predatorEnemyPostBrightness"},
		{"r_predatorEnemyPostContrast"},
		{"r_predatorEnemyPosterHardness"},
		{"r_predatorEnemySaturation"},
		{"r_predatorForce"},
		{"r_predatorHotCycleFreq"},
		{"r_predatorHotCycleMax"},
		{"r_predatorHotCycleMin"},
		{"r_predatorHotCyclePhase"},
		{"r_predatorHotPosterBias"},
		{"r_predatorHotPosterBiasSpeed"},
		{"r_predatorHotPosterColorCount"},
		{"r_preloadShaders"},
		{"r_primaryLightTweakDiffuseStrength"},
		{"r_primaryLightTweakDiffuseStrength_NG"},
		{"r_primaryLightTweakSpecularStrength"},
		{"r_primaryLightTweakSpecularStrength_NG"},
		{"r_primaryLightUseTweaks"},
		{"r_primaryLightUseTweaks_NG"},
		{"r_reactiveMotionActorRadius"},
		{"r_reactiveMotionActorVelocityMax"},
		{"r_reactiveMotionEffectorStrengthScale"},
		{"r_reactiveMotionHelicopterLimit"},
		{"r_reactiveMotionHelicopterRadius"},
		{"r_reactiveMotionHelicopterStrength"},
		{"r_reactiveMotionPlayerHeightAdjust"},
		{"r_reactiveMotionPlayerRadius"},
		{"r_reactiveMotionVelocityTailScale"},
		{"r_reactiveMotionWindAmplitudeScale"},
		{"r_reactiveMotionWindAreaScale"},
		{"r_reactiveMotionWindDir"},
		{"r_reactiveMotionWindFrequencyScale"},
		{"r_reactiveMotionWindStrength"},
		{"r_reactiveTurbulenceEnable"},
		{"r_reactiveTurbulenceVelocityClamp"},
		{"r_rendererInUse"},
		{"r_rimLight0Color"},
		{"r_rimLight0Heading"},
		{"r_rimLight0Pitch"},
		{"r_rimLightBias"},
		{"r_rimLightDiffuseIntensity"},
		{"r_rimLightPower"},
		{"r_rimLightSpecIntensity"},
		{"r_rimLightUseTweaks"},
		{"r_scaleViewport"},
		{"r_showBlurScene"},
		{"r_showBlurSceneScissor"},
		{"r_showCharacterSceneTexture"},
		{"r_showLightGrid"},
		{"r_showMissingLightGrid"},
		{"r_showModelLightingLowWaterMark"},
		{"r_showPIPTexture"},
		{"r_showPortals"},
		{"r_showPortalsOverview"},
		{"r_showReflectionProbeSelection"},
		{"r_singleCell"},
		{"r_SkinnedCacheSize"},
		{"r_SkinnedCacheThreshold"},
		{"r_skipPvs"},
		{"r_sky_fog_intensity"},
		{"r_sky_fog_max_angle"},
		{"r_sky_fog_min_angle"},
		{"r_skyFogUseTweaks"},
		{"r_smaaThreshold"},
		{"r_smodelInstancedRenderer"},
		{"r_smodelInstancedThreshold"},
		{"r_smp_backend"},
		{"r_smp_worker"},
		{"r_smp_worker_thread0"},
		{"r_smp_worker_thread1"},
		{"r_smp_worker_thread2"},
		{"r_smp_worker_thread3"},
		{"r_smp_worker_thread4"},
		{"r_smp_worker_thread5"},
		{"r_smp_worker_thread6"},
		{"r_smp_worker_thread7"},
		{"r_specularColorScale"},
		{"r_specularMap"},
		{"r_spotLightEntityShadows"},
		{"r_spotLightShadows"},
		{"r_ssao"},
		{"r_ssaoBlurSharpness"},
		{"r_ssaoBlurStep"},
		{"r_ssaoDepthScale"},
		{"r_ssaoDepthScaleViewModel"},
		{"r_ssaoDiminish"},
		{"r_ssaoFadeDepth"},
		{"r_ssaoGapFalloff"},
		{"r_ssaoGradientFalloff"},
		{"r_ssaoMinPixelWidth"},
		{"r_ssaoPower"},
		{"r_ssaoRejectDepth"},
		{"r_ssaoScriptScale"},
		{"r_ssaoStrength"},
		{"r_ssaoUseScriptScale"},
		{"r_ssaoUseTweaks"},
		{"r_ssaoWidth"},
		{"r_sse_skinning"},
		{"r_ssrFadeInDuration"},
		{"r_ssrPositionCorrection"},
		{"r_subdiv"},
		{"r_subdivLimit"},
		{"r_subdivPatchCount"},
		{"r_subdomainLimit"},
		{"r_subdomainScale"},
		{"r_subwindow"},
		{"r_sun_from_dvars"},
		{"r_sun_fx_position"},
		{"r_sunblind_fadein"},
		{"r_sunblind_fadeout"},
		{"r_sunblind_max_angle"},
		{"r_sunblind_max_darken"},
		{"r_sunblind_min_angle"},
		{"r_sunflare_fadein"},
		{"r_sunflare_fadeout"},
		{"r_sunflare_max_alpha"},
		{"r_sunflare_max_angle"},
		{"r_sunflare_max_size"},
		{"r_sunflare_min_angle"},
		{"r_sunflare_min_size"},
		{"r_sunflare_shader"},
		{"r_sunglare_fadein"},
		{"r_sunglare_fadeout"},
		{"r_sunglare_max_angle"},
		{"r_sunglare_max_lighten"},
		{"r_sunglare_min_angle"},
		{"r_sunshadowmap_cmdbuf_worker"},
		{"r_sunsprite_shader"},
		{"r_sunsprite_size"},
		{"r_surfaceHDRScalarUseTweaks"},
		{"r_tessellation"},
		{"r_tessellationCutoffDistance"},
		{"r_tessellationCutoffDistanceBase"},
		{"r_tessellationCutoffFalloff"},
		{"r_tessellationCutoffFalloffBase"},
		{"r_tessellationEyeScale"},
		{"r_tessellationFactor"},
		{"r_tessellationHeightAuto"},
		{"r_tessellationHeightScale"},
		{"r_tessellationHybrid"},
		{"r_tessellationLodBias"},
		{"r_texFilterAnisoMax"},
		{"r_texFilterAnisoMin"},
		{"r_texFilterDisable"},
		{"r_texFilterMipBias"},
		{"r_texFilterMipMode"},
		{"r_texFilterProbeBilinear"},
		{"r_texShowMipMode"},
		{"r_thermalColorOffset"},
		{"r_thermalColorScale"},
		{"r_thermalDetailScale"},
		{"r_thermalFadeColor"},
		{"r_thermalFadeControl"},
		{"r_thermalFadeMax"},
		{"r_thermalFadeMin"},
		{"r_txaa"},
		{"r_txaaDebug"},
		{"r_txaaDepthRange"},
		{"r_txaaLimitPixels1"},
		{"r_txaaLimitPixels2"},
		{"r_umbra"},
		{"r_umbraAccurateOcclusionThreshold"},
		{"r_umbraDistanceReference"},
		{"r_umbraExclusive"},
		{"r_umbraQueryParts"},
		{"r_umbraShadowCasters"},
		{"r_umbraUseDpvsCullDist"},
		{"r_unlitSurfaceHDRScalar"},
		{"r_useComputeSkinning"},
		{"r_useLayeredMaterials"},
		{"r_usePrebuiltSpotShadow"},
		{"r_usePrebuiltSunShadow"},
		{"r_useShadowGeomOpt"},
		{"r_vc_makelog"},
		{"r_vc_showlog"},
		{"r_viewModelLightAmbient"},
		{"r_viewModelLightAmbient_NG"},
		{"r_viewModelPrimaryLightTweakDiffuseStrength"},
		{"r_viewModelPrimaryLightTweakDiffuseStrength_NG"},
		{"r_viewModelPrimaryLightTweakSpecularStrength"},
		{"r_viewModelPrimaryLightTweakSpecularStrength_NG"},
		{"r_viewModelPrimaryLightUseTweaks"},
		{"r_viewModelPrimaryLightUseTweaks_NG"},
		{"r_volumeLightScatter"},
		{"r_volumeLightScatterAngularAtten"},
		{"r_volumeLightScatterBackgroundDistance"},
		{"r_volumeLightScatterColor"},
		{"r_volumeLightScatterDepthAttenFar"},
		{"r_volumeLightScatterDepthAttenNear"},
		{"r_volumeLightScatterLinearAtten"},
		{"r_volumeLightScatterQuadraticAtten"},
		{"r_volumeLightScatterUseTweaks"},
		{"r_vsync"},
		{"r_warningRepeatDelay"},
		{"r_zfar"},
		{"r_znear"},
		{"radarjamDistMax"},
		{"radarjamDistMin"},
		{"radarjamSinCurve"},
		{"radius_damage_debug"},
		{"ragdoll_baselerp_time"},
		{"ragdoll_bullet_force"},
		{"ragdoll_bullet_upbias"},
		{"ragdoll_debug"},
		{"ragdoll_debug_axisid"},
		{"ragdoll_debug_bodyid"},
		{"ragdoll_debug_boneid"},
		{"ragdoll_debug_jointid"},
		{"ragdoll_dump_anims"},
		{"ragdoll_enable"},
		{"ragdoll_explode_force"},
		{"ragdoll_explode_upbias"},
		{"ragdoll_exploding_bullet_force"},
		{"ragdoll_exploding_bullet_upbias"},
		{"ragdoll_fps"},
		{"ragdoll_idle_min_velsq"},
		{"ragdoll_jitter_scale"},
		{"ragdoll_jointlerp_time"},
		{"ragdoll_max_life"},
		{"ragdoll_max_simulating"},
		{"ragdoll_max_stretch_pct"},
		{"ragdoll_mp_limit"},
		{"ragdoll_mp_resume_share_after_killcam"},
		{"ragdoll_rotvel_scale"},
		{"ragdoll_self_collision_scale"},
		{"ragdoll_stretch_iters"},
		{"rate"},
		{"rcon_password"},
		{"relay_backoffTime"},
		{"relay_disconnectOnFailedRetries"},
		{"relay_handshakeWindow"},
		{"relay_isEnabled"},
		{"relay_sendRetryAttempts"},
		{"relay_sendThrottle"},
		{"relay_timeout"},
		{"RemoteCameraSounds_DryLevel"},
		{"RemoteCameraSounds_RoomType"},
		{"RemoteCameraSounds_WetLevel"},
		{"requireOpenNat"},
		{"reset_mm_data"},
		{"restrictMapPacksToGroups"},
		{"safeArea_adjusted_horizontal"},
		{"safeArea_adjusted_vertical"},
		{"safeArea_horizontal"},
		{"safeArea_vertical"},
		{"scr_aliens_casual"},
		{"scr_aliens_hardcore"},
		{"scr_aliens_infinite"},
		{"scr_aliens_maxagents"},
		{"scr_aliens_numlives"},
		{"scr_aliens_playerrespawndelay"},
		{"scr_aliens_promode"},
		{"scr_aliens_ricochet"},
		{"scr_aliens_roundlimit"},
		{"scr_aliens_scorelimit"},
		{"scr_aliens_timelimit"},
		{"scr_aliens_waverespawndelay"},
		{"scr_aliens_winlimit"},
		{"scr_aliens_xpscale"},
		{"scr_altBlitzSpawns"},
		{"scr_altFFASpawns"},
		{"scr_anchorSpawns"},
		{"scr_blitz_numlives"},
		{"scr_blitz_playerrespawndelay"},
		{"scr_blitz_promode"},
		{"scr_blitz_roundlimit"},
		{"scr_blitz_roundswitch"},
		{"scr_blitz_scoredelay"},
		{"scr_blitz_scorelimit"},
		{"scr_blitz_timelimit"},
		{"scr_blitz_waverespawndelay"},
		{"scr_blitz_winlimit"},
		{"scr_chaos_mode"},
		{"scr_conf_numlives"},
		{"scr_conf_playerrespawndelay"},
		{"scr_conf_promode"},
		{"scr_conf_roundlimit"},
		{"scr_conf_scorelimit"},
		{"scr_conf_timelimit"},
		{"scr_conf_waverespawndelay"},
		{"scr_conf_winlimit"},
		{"scr_cranked_numlives"},
		{"scr_cranked_playerrespawndelay"},
		{"scr_cranked_promode"},
		{"scr_cranked_roundlimit"},
		{"scr_cranked_scorelimit"},
		{"scr_cranked_scorelimit_ffa"},
		{"scr_cranked_teambased"},
		{"scr_cranked_timelimit"},
		{"scr_cranked_waverespawndelay"},
		{"scr_cranked_winlimit"},
		{"scr_default_maxagents"},
		{"scr_defcon"},
		{"scr_diehard"},
		{"scr_disableClientSpawnTraces"},
		{"scr_dm_numlives"},
		{"scr_dm_playerrespawndelay"},
		{"scr_dm_promode"},
		{"scr_dm_roundlimit"},
		{"scr_dm_scorelimit"},
		{"scr_dm_timelimit"},
		{"scr_dm_waverespawndelay"},
		{"scr_dm_winlimit"},
		{"scr_dom_numlives"},
		{"scr_dom_playerrespawndelay"},
		{"scr_dom_promode"},
		{"scr_dom_roundlimit"},
		{"scr_dom_scorelimit"},
		{"scr_dom_timelimit"},
		{"scr_dom_waverespawndelay"},
		{"scr_dom_winlimit"},
		{"scr_explBulletMod"},
		{"scr_frontlineSpawns"},
		{"scr_game_allowkillcam"},
		{"scr_game_deathpointloss"},
		{"scr_game_forceuav"},
		{"scr_game_graceperiod"},
		{"scr_game_hardpoints"},
		{"scr_game_killstreakdelay"},
		{"scr_game_onlyheadshots"},
		{"scr_game_perks"},
		{"scr_game_spectatetype"},
		{"scr_game_suicidepointloss"},
		{"scr_gameended"},
		{"scr_grind_numlives"},
		{"scr_grind_playerrespawndelay"},
		{"scr_grind_promode"},
		{"scr_grind_roundlimit"},
		{"scr_grind_scorelimit"},
		{"scr_grind_timelimit"},
		{"scr_grind_waverespawndelay"},
		{"scr_grind_winlimit"},
		{"scr_grnd_dropTime"},
		{"scr_grnd_numlives"},
		{"scr_grnd_playerrespawndelay"},
		{"scr_grnd_promode"},
		{"scr_grnd_roundlimit"},
		{"scr_grnd_scorelimit"},
		{"scr_grnd_timelimit"},
		{"scr_grnd_waverespawndelay"},
		{"scr_grnd_winlimit"},
		{"scr_grnd_zoneSwitchTime"},
		{"scr_hardcore"},
		{"scr_hardpoint_allowartillery"},
		{"scr_hardpoint_allowhelicopter"},
		{"scr_hardpoint_allowuav"},
		{"scr_horde_difficulty"},
		{"scr_horde_maxagents"},
		{"scr_horde_numlives"},
		{"scr_horde_playerrespawndelay"},
		{"scr_horde_promode"},
		{"scr_horde_roundlimit"},
		{"scr_horde_scorelimit"},
		{"scr_horde_timelimit"},
		{"scr_horde_waverespawndelay"},
		{"scr_horde_winlimit"},
		{"scr_infect_numlives"},
		{"scr_infect_playerrespawndelay"},
		{"scr_infect_promode"},
		{"scr_infect_roundlimit"},
		{"scr_infect_timelimit"},
		{"scr_infect_waverespawndelay"},
		{"scr_infect_winlimit"},
		{"scr_maxPerPlayerExplosives"},
		{"scr_mugger_numlives"},
		{"scr_mugger_playerrespawndelay"},
		{"scr_mugger_promode"},
		{"scr_mugger_roundlimit"},
		{"scr_mugger_scorelimit"},
		{"scr_mugger_timelimit"},
		{"scr_mugger_waverespawndelay"},
		{"scr_mugger_winlimit"},
		{"scr_nukeCancelMode"},
		{"scr_nukeTimer"},
		{"scr_objectivetext"},
		{"scr_oldschool"},
		{"scr_patientZero"},
		{"scr_player_forcerespawn"},
		{"scr_player_healthregentime"},
		{"scr_player_maxhealth"},
		{"scr_player_numlives"},
		{"scr_player_respawndelay"},
		{"scr_player_sprinttime"},
		{"scr_player_suicidespawndelay"},
		{"scr_playlist_type"},
		{"scr_RequiredMapAspectratio"},
		{"scr_restxp_cap"},
		{"scr_restxp_enable"},
		{"scr_restxp_levelsPerDay"},
		{"scr_restxp_minRestTime"},
		{"scr_restxp_restedAwardScale"},
		{"scr_restxp_timescale"},
		{"scr_riotShieldXPBullets"},
		{"scr_sd_bombtimer"},
		{"scr_sd_defusetime"},
		{"scr_sd_multibomb"},
		{"scr_sd_numlives"},
		{"scr_sd_planttime"},
		{"scr_sd_playerrespawndelay"},
		{"scr_sd_promode"},
		{"scr_sd_roundlimit"},
		{"scr_sd_roundswitch"},
		{"scr_sd_scorelimit"},
		{"scr_sd_timelimit"},
		{"scr_sd_waverespawndelay"},
		{"scr_sd_winlimit"},
		{"scr_siege_caprate"},
		{"scr_siege_numlives"},
		{"scr_siege_playerrespawndelay"},
		{"scr_siege_precap"},
		{"scr_siege_promode"},
		{"scr_siege_roundlimit"},
		{"scr_siege_roundswitch"},
		{"scr_siege_rushtimer"},
		{"scr_siege_rushtimeramount"},
		{"scr_siege_scorelimit"},
		{"scr_siege_timelimit"},
		{"scr_siege_waverespawndelay"},
		{"scr_siege_winlimit"},
		{"scr_sotf_crateamount"},
		{"scr_sotf_crategunamount"},
		{"scr_sotf_cratetimer"},
		{"scr_sotf_ffa_crateamount"},
		{"scr_sotf_ffa_crategunamount"},
		{"scr_sotf_ffa_cratetimer"},
		{"scr_sotf_ffa_numlives"},
		{"scr_sotf_ffa_playerrespawndelay"},
		{"scr_sotf_ffa_promode"},
		{"scr_sotf_ffa_roundlimit"},
		{"scr_sotf_ffa_scorelimit"},
		{"scr_sotf_ffa_timelimit"},
		{"scr_sotf_ffa_waverespawndelay"},
		{"scr_sotf_ffa_winlimit"},
		{"scr_sotf_numlives"},
		{"scr_sotf_playerrespawndelay"},
		{"scr_sotf_promode"},
		{"scr_sotf_roundlimit"},
		{"scr_sotf_scorelimit"},
		{"scr_sotf_timelimit"},
		{"scr_sotf_waverespawndelay"},
		{"scr_sotf_winlimit"},
		{"scr_sr_bombtimer"},
		{"scr_sr_defusetime"},
		{"scr_sr_multibomb"},
		{"scr_sr_numlives"},
		{"scr_sr_planttime"},
		{"scr_sr_playerrespawndelay"},
		{"scr_sr_promode"},
		{"scr_sr_roundlimit"},
		{"scr_sr_roundswitch"},
		{"scr_sr_scorelimit"},
		{"scr_sr_timelimit"},
		{"scr_sr_waverespawndelay"},
		{"scr_sr_winlimit"},
		{"scr_team_fftype"},
		{"scr_team_kickteamkillers"},
		{"scr_team_respawntime"},
		{"scr_team_teamkillpointloss"},
		{"scr_team_teamkillspawndelay"},
		{"scr_thirdPerson"},
		{"scr_tispawndelay"},
		{"scr_trackPlayerAbilities"},
		{"scr_war_halftime"},
		{"scr_war_numlives"},
		{"scr_war_playerrespawndelay"},
		{"scr_war_promode"},
		{"scr_war_roundlimit"},
		{"scr_war_roundswitch"},
		{"scr_war_scorelimit"},
		{"scr_war_timelimit"},
		{"scr_war_waverespawndelay"},
		{"scr_war_winlimit"},
		{"scr_xpscale"},
		{"screenshots_active"},
		{"search_weight_asn"},
		{"search_weight_country_code"},
		{"search_weight_lat_long"},
		{"sensitivity"},
		{"sentry_placement_debug"},
		{"sentry_placement_feet_offset"},
		{"sentry_placement_feet_trace_dist_z"},
		{"sentry_placement_trace_dist"},
		{"sentry_placement_trace_min_normal"},
		{"sentry_placement_trace_pitch"},
		{"sentry_placement_trace_radius"},
		{"sentry_placement_trace_radius_canon_safety"},
		{"server1"},
		{"server10"},
		{"server11"},
		{"server12"},
		{"server13"},
		{"server14"},
		{"server15"},
		{"server16"},
		{"server2"},
		{"server3"},
		{"server4"},
		{"server5"},
		{"server6"},
		{"server7"},
		{"server8"},
		{"server9"},
		{"session_immediateDeleteTinySessions"},
		{"session_modify_retry_on_failure"},
		{"session_nonblocking"},
		{"shieldBlastDamageProtection_120"},
		{"shieldBlastDamageProtection_180"},
		{"shieldBlastDamageProtection_30"},
		{"shieldBlastDamageProtection_60"},
		{"shieldImpactBulletShakeDuration"},
		{"shieldImpactBulletShakeScale"},
		{"shieldImpactExplosionHighShakeDuration"},
		{"shieldImpactExplosionHighShakeScale"},
		{"shieldImpactExplosionLowShakeDuration"},
		{"shieldImpactExplosionLowShakeScale"},
		{"shieldImpactExplosionThreshold"},
		{"shieldImpactMissileShakeDuration"},
		{"shieldImpactMissileShakeScale"},
		{"shortversion"},
		{"slide_enable"},
		{"sm_cameraOffset"},
		{"sm_dynlightAllSModels"},
		{"sm_enable"},
		{"sm_fastSunShadow"},
		{"sm_lightScore_eyeProjectDist"},
		{"sm_lightScore_spotProjectFrac"},
		{"sm_maxLightsWithShadows"},
		{"sm_minSpotLightScore"},
		{"sm_polygonOffsetBias"},
		{"sm_polygonOffsetClamp"},
		{"sm_polygonOffsetScale"},
		{"sm_qualitySpotShadow"},
		{"sm_spotDistCull"},
		{"sm_spotEnable"},
		{"sm_spotLightScoreModelScale"},
		{"sm_spotLimit"},
		{"sm_spotShadowFadeTime"},
		{"sm_strictCull"},
		{"sm_sunEnable"},
		{"sm_sunSampleSizeNear"},
		{"sm_sunShadowCenter"},
		{"sm_sunShadowCenterMode"},
		{"sm_sunShadowScale"},
		{"sm_sunShadowScaleLocked"},
		{"snd_cinematicVolumeScale"},
		{"snd_dopplerAuditionEnable"},
		{"snd_dopplerBaseSpeedOfSound"},
		{"snd_dopplerEnable"},
		{"snd_dopplerPitchMax"},
		{"snd_dopplerPitchMin"},
		{"snd_dopplerPlayerVelocityScale"},
		{"snd_dopplerSmoothing"},
		{"snd_draw3D"},
		{"snd_drawInfo"},
		{"snd_enable2D"},
		{"snd_enable3D"},
		{"snd_enableEq"},
		{"snd_enableReverb"},
		{"snd_enableStream"},
		{"snd_errorOnMissing"},
		{"snd_levelFadeTime"},
		{"snd_loadFadeTime"},
		{"snd_newWhizby"},
		{"snd_occlusionDelay"},
		{"snd_occlusionLerpTime"},
		{"snd_omnidirectionalPercentage"},
		{"snd_slaveFadeTime"},
		{"snd_touchStreamFilesOnLoad"},
		{"snd_useHardOuterEntchannelPriorities"},
		{"snd_volume"},
		{"social_feed_clans_active"},
		{"social_feed_motd_active"},
		{"social_feed_news_active"},
		{"social_feed_social_active"},
		{"social_feed_squads_active"},
		{"speech_active"},
		{"splitscreen"},
		{"squad_can_host_server"},
		{"squad_cile"},
		{"squad_dont_advertise"},
		{"squad_find_match"},
		{"squad_find_match_max_retry_time"},
		{"squad_find_match_retry_step"},
		{"squad_lobby_type"},
		{"squad_match"},
		{"squad_min_human_players"},
		{"squad_no_migrations"},
		{"squad_report_text"},
		{"squad_rxb"},
		{"squad_rxbm"},
		{"squad_send_results"},
		{"squad_team_balance"},
		{"squad_use_hosts_squad"},
		{"squad_vs_squad"},
		{"steam_ingame_p2p_throttle"},
		{"stringtable_debug"},
		{"sv_allowClientConsole"},
		{"sv_allowedClan1"},
		{"sv_allowedClan2"},
		{"sv_archiveClientsPositions"},
		{"sv_cheats"},
		{"sv_checkMinPlayers"},
		{"sv_clientArchive"},
		{"sv_connectTimeout"},
		{"sv_cumulThinkTime"},
		{"sv_error_on_baseline_failure"},
		{"sv_hostname"},
		{"sv_hugeSnapshotDelay"},
		{"sv_hugeSnapshotSize"},
		{"sv_kickBanTime"},
		{"sv_local_client_snapshot_msec"},
		{"sv_maxclients"},
		{"sv_minPingClamp"},
		{"sv_network_fps"},
		{"sv_paused"},
		{"sv_privateClients"},
		{"sv_privateClientsForClients"},
		{"sv_privatePassword"},
		{"sv_reconnectlimit"},
		{"sv_rejoinTimeout"},
		{"sv_remote_client_snapshot_msec"},
		{"sv_running"},
		{"sv_sayName"},
		{"sv_showAverageBPS"},
		{"sv_testValue"},
		{"sv_timeout"},
		{"sv_trackFrameMsecThreshold"},
		{"sv_useExtraCompress"},
		{"sv_zlib_threshold"},
		{"sv_zombietime"},
		{"svwp"},
		{"sys_configSum"},
		{"sys_configureGHz"},
		{"sys_cpuGHz"},
		{"sys_cpuName"},
		{"sys_gpu"},
		{"sys_lockThreads"},
		{"sys_quitMigrateTime"},
		{"sys_smp_allowed"},
		{"sys_SSE"},
		{"sys_sysMB"},
		{"systemlink"},
		{"tb_report"},
		{"team_rebalance"},
		{"theater_active"},
		{"thermal_playerModel"},
		{"thermalBlurFactorNoScope"},
		{"thermalBlurFactorScope"},
		{"tracer_explosiveColor1"},
		{"tracer_explosiveColor2"},
		{"tracer_explosiveColor3"},
		{"tracer_explosiveColor4"},
		{"tracer_explosiveColor5"},
		{"tracer_explosiveOverride"},
		{"tracer_explosiveWidth"},
		{"tracer_firstPersonMaxWidth"},
		{"tracer_stoppingPowerColor1"},
		{"tracer_stoppingPowerColor2"},
		{"tracer_stoppingPowerColor3"},
		{"tracer_stoppingPowerColor4"},
		{"tracer_stoppingPowerColor5"},
		{"tracer_stoppingPowerOverride"},
		{"tracer_stoppingPowerWidth"},
		{"tracer_thermalWidthMult"},
		{"transients_verbose"},
		{"ui_ability_end_milliseconds"},
		{"ui_ability_recharging"},
		{"ui_ability_timer"},
		{"ui_ac130"},
		{"ui_ac130_105mm_ammo"},
		{"ui_ac130_25mm_ammo"},
		{"ui_ac130_40mm_ammo"},
		{"ui_ac130_coord1_posx"},
		{"ui_ac130_coord1_posy"},
		{"ui_ac130_coord1_posz"},
		{"ui_ac130_coord2_posx"},
		{"ui_ac130_coord2_posy"},
		{"ui_ac130_coord2_posz"},
		{"ui_ac130_coord3_posx"},
		{"ui_ac130_coord3_posy"},
		{"ui_ac130_coord3_posz"},
		{"ui_ac130_darken"},
		{"ui_ac130_thermal"},
		{"ui_ac130_use_time"},
		{"ui_ac130_weapon"},
		{"ui_ac130usetime"},
		{"ui_activeAbility_name"},
		{"ui_adrenaline"},
		{"ui_allow_classchange"},
		{"ui_allow_controlschange"},
		{"ui_allow_teamchange"},
		{"ui_allowvote"},
		{"ui_altscene"},
		{"ui_autodetectGamepad"},
		{"ui_autodetectGamepadDone"},
		{"ui_bigFont"},
		{"ui_borderLowLightScale"},
		{"ui_browserFriendlyfire"},
		{"ui_browserKillcam"},
		{"ui_browserMod"},
		{"ui_browserShowDedicated"},
		{"ui_browserShowEmpty"},
		{"ui_browserShowFull"},
		{"ui_browserShowPassword"},
		{"ui_browserShowPure"},
		{"ui_buildLocation"},
		{"ui_buildSize"},
		{"ui_challenge_1_ref"},
		{"ui_challenge_2_ref"},
		{"ui_challenge_3_ref"},
		{"ui_challenge_4_ref"},
		{"ui_challenge_5_ref"},
		{"ui_challenge_6_ref"},
		{"ui_challenge_7_ref"},
		{"ui_changeclass_menu_open"},
		{"ui_changeteam_menu_open"},
		{"ui_cinematicsTimestamp"},
		{"ui_class_menu_open"},
		{"ui_connectScreenTextGlowColor"},
		{"ui_contextualMenuLocation"},
		{"ui_controls_menu_open"},
		{"ui_currentFeederMapIndex"},
		{"ui_currentMap"},
		{"ui_customClassName"},
		{"ui_customModeEditName"},
		{"ui_customModeName"},
		{"ui_danger_team"},
		{"ui_debugMode"},
		{"ui_disableInGameStore"},
		{"ui_disableTokenRedemption"},
		{"ui_drawCrosshair"},
		{"ui_editSquadMemberIndex"},
		{"ui_extraBigFont"},
		{"ui_eyes_on_end_milliseconds"},
		{"ui_friendlyfire"},
		{"ui_game_state"},
		{"ui_gametype"},
		{"ui_halftime"},
		{"ui_hitloc_0"},
		{"ui_hitloc_1"},
		{"ui_hitloc_2"},
		{"ui_hitloc_3"},
		{"ui_hitloc_4"},
		{"ui_hitloc_5"},
		{"ui_hitloc_damage_0"},
		{"ui_hitloc_damage_1"},
		{"ui_hitloc_damage_2"},
		{"ui_hitloc_damage_3"},
		{"ui_hitloc_damage_4"},
		{"ui_hitloc_damage_5"},
		{"ui_hud_hardcore"},
		{"ui_hud_obituaries"},
		{"ui_hud_showobjicons"},
		{"ui_inactiveBaseColor"},
		{"ui_inactivePartyColor"},
		{"ui_inhostmigration"},
		{"ui_joinGametype"},
		{"ui_juiced_end_milliseconds"},
		{"ui_killstreak_show_selections"},
		{"ui_killstreak_show_selections_icon_1"},
		{"ui_killstreak_show_selections_icon_2"},
		{"ui_killstreak_show_selections_icon_3"},
		{"ui_mapname"},
		{"ui_mapvote_entrya_gametype"},
		{"ui_mapvote_entrya_mapname"},
		{"ui_mapvote_entryb_gametype"},
		{"ui_mapvote_entryb_mapname"},
		{"ui_maxclients"},
		{"ui_missingMapName"},
		{"ui_mousePitch"},
		{"ui_multiplayer"},
		{"ui_myPartyColor"},
		{"ui_netGametype"},
		{"ui_netGametypeName"},
		{"ui_netSource"},
		{"ui_numteams"},
		{"ui_oldmapname"},
		{"ui_onlineRequired"},
		{"ui_opensummary"},
		{"ui_override_halftime"},
		{"ui_overtime"},
		{"ui_partyFull"},
		{"ui_passiveAbility_name"},
		{"ui_player_blue_eggs"},
		{"ui_player_green_eggs"},
		{"ui_player_money"},
		{"ui_player_perks"},
		{"ui_player_purple_eggs"},
		{"ui_player_red_eggs"},
		{"ui_player_weap1"},
		{"ui_player_weap2"},
		{"ui_player_yellow_eggs"},
		{"ui_playerPartyColor"},
		{"ui_playlistActionButtonAlpha"},
		{"ui_playlistCategoryDisabledColor"},
		{"ui_playlistCategoryEnabledColor"},
		{"ui_playlistPopulationRefreshTime"},
		{"ui_promotion"},
		{"ui_reaper_ammocount"},
		{"ui_reaper_targetdistance"},
		{"ui_regen_faster_end_milliseconds"},
		{"ui_remoteTankUseTime"},
		{"ui_scorelimit"},
		{"ui_selectedFeederMap"},
		{"ui_serverStatusTimeOut"},
		{"ui_showDLCMaps"},
		{"ui_showInfo"},
		{"ui_showList"},
		{"ui_showmap"},
		{"ui_showMenuOnly"},
		{"ui_showMinimap"},
		{"ui_sliderSteps"},
		{"ui_smallFont"},
		{"ui_squad_mode"},
		{"ui_textScrollFadeTime"},
		{"ui_textScrollPauseEnd"},
		{"ui_textScrollPauseStart"},
		{"ui_textScrollSpeed"},
		{"ui_timelimit"},
		{"uiscript_debug"},
		{"use_filtered_query_pass"},
		{"use_weighted_dlc_exactmatch_pass"},
		{"use_weighted_pass"},
		{"useonlinestats"},
		{"useRelativeTeamColors"},
		{"userGroup_active"},
		{"userGroup_cool_off_time"},
		{"userGroup_coop_delay"},
		{"userGroup_max_retry_time"},
		{"userGroup_refresh_time_secs"},
		{"userGroup_retry_step"},
		{"userGroup_RetryTime"},
		{"useStatsGroups"},
		{"useTagFlashSilenced"},
		{"using_mlg"},
		{"validate_apply_clamps"},
		{"validate_apply_revert"},
		{"validate_apply_revert_full"},
		{"validate_clamp_assists"},
		{"validate_clamp_experience"},
		{"validate_clamp_headshots"},
		{"validate_clamp_hits"},
		{"validate_clamp_kills"},
		{"validate_clamp_losses"},
		{"validate_clamp_misses"},
		{"validate_clamp_ties"},
		{"validate_clamp_totalshots"},
		{"validate_clamp_weaponXP"},
		{"validate_clamp_wins"},
		{"validate_drop_on_fail"},
		{"veh_aiOverSteerScale"},
		{"veh_boneControllerLodDist"},
		{"vehAudio_inAirPitchDownLerp"},
		{"vehAudio_inAirPitchUpLerp"},
		{"vehAudio_spawnVolumeTime"},
		{"vehCam_freeLook"},
		{"vehCam_mode"},
		{"vehDroneDebugDrawPath"},
		{"vehHelicopterBoundsRadius"},
		{"vehHelicopterDecelerationFwd"},
		{"vehHelicopterDecelerationSide"},
		{"vehHelicopterDecelerationUp"},
		{"vehHelicopterHeadSwayDontSwayTheTurret"},
		{"vehHelicopterHoverSpeedThreshold"},
		{"vehHelicopterInvertUpDown"},
		{"vehHelicopterJitterJerkyness"},
		{"vehHelicopterLookaheadTime"},
		{"vehHelicopterMaxAccel"},
		{"vehHelicopterMaxAccelVertical"},
		{"vehHelicopterMaxPitch"},
		{"vehHelicopterMaxRoll"},
		{"vehHelicopterMaxSpeed"},
		{"vehHelicopterMaxSpeedVertical"},
		{"vehHelicopterMaxYawAccel"},
		{"vehHelicopterMaxYawRate"},
		{"vehHelicopterPitchOffset"},
		{"vehHelicopterRightStickDeadzone"},
		{"vehHelicopterScaleMovement"},
		{"vehHelicopterSoftCollisions"},
		{"vehHelicopterStrafeDeadzone"},
		{"vehHelicopterTiltFromAcceleration"},
		{"vehHelicopterTiltFromControllerAxes"},
		{"vehHelicopterTiltFromDeceleration"},
		{"vehHelicopterTiltFromFwdAndYaw"},
		{"vehHelicopterTiltFromFwdAndYaw_VelAtMaxTilt"},
		{"vehHelicopterTiltFromVelocity"},
		{"vehHelicopterTiltMomentum"},
		{"vehHelicopterTiltSpeed"},
		{"vehHelicopterYawOnLeftStick"},
		{"vehicle_debug_render_spline_plane"},
		{"vehUGVPitchTrack"},
		{"vehUGVRollTrack"},
		{"vehUGVWheelInfluence"},
		{"version"},
		{"vid_xpos"},
		{"vid_ypos"},
		{"viewangNow"},
		{"viewModelDebugNotetracks"},
		{"viewModelHacks"},
		{"viewposNow"},
		{"waypointDebugDraw"},
		{"waypointDistScaleRangeMax"},
		{"waypointDistScaleRangeMin"},
		{"waypointDistScaleSmallest"},
		{"waypointIconHeight"},
		{"waypointIconWidth"},
		{"waypointOffscreenCornerRadius"},
		{"waypointOffscreenDistanceThresholdAlpha"},
		{"waypointOffscreenPadBottom"},
		{"waypointOffscreenPadLeft"},
		{"waypointOffscreenPadRight"},
		{"waypointOffscreenPadTop"},
		{"waypointOffscreenPointerDistance"},
		{"waypointOffscreenPointerHeight"},
		{"waypointOffscreenPointerWidth"},
		{"waypointOffscreenRoundedCorners"},
		{"waypointOffscreenScaleLength"},
		{"waypointOffscreenScaleSmallest"},
		{"waypointPlayerOffsetCrouch"},
		{"waypointPlayerOffsetProne"},
		{"waypointPlayerOffsetStand"},
		{"waypointScreenCenterFadeAdsMin"},
		{"waypointScreenCenterFadeHipMin"},
		{"waypointScreenCenterFadeRadius"},
		{"waypointSplitscreenScale"},
		{"waypointTweakY"},
		{"weap_thermoDebuffMod"},
		{"wideScreen"},
		{"winvoice_loopback"},
		{"winvoice_mic_mute"},
		{"winvoice_mic_outTime"},
		{"winvoice_mic_reclevel"},
		{"winvoice_mic_scaler"},
		{"winvoice_mic_threshold"},
		{"winvoice_save_voice"},
		{"xblive_competitionmatch"},
		{"xblive_hostingprivateparty"},
		{"xblive_loggedin"},
		{"xblive_privatematch"},
		{"xblive_privatematch_solo"},
		{"current_class_location"},
	};

	bool can_add_dvar_to_list(std::string name)
	{
		for (std::uint32_t i = 0; i < dvar_list.size(); i++)
		{
			if (dvar_list[i] == name)
			{
				return false;
			}
		}
		return true;
	}

	game::dvar_t* register_int(const std::string& name, int value, int min, int max,
		game::DvarFlags flags, bool add_to_list)
	{
		const auto hash = game::generateHashValue(name.data());

		if (add_to_list && can_add_dvar_to_list(name))
		{
			dvar_list.push_back(name);
		}

		return game::Dvar_RegisterInt(hash, "", value, min, max, flags);
	}

	game::dvar_t* register_bool(const std::string& name, bool value,
		game::DvarFlags flags, bool add_to_list)
	{
		const auto hash = game::generateHashValue(name.data());

		if (add_to_list && can_add_dvar_to_list(name))
		{
			dvar_list.push_back(name);
		}

		return game::Dvar_RegisterBool(hash, "", value, flags);
	}

	game::dvar_t* register_string(const std::string& name, const char* value,
		game::DvarFlags flags, bool add_to_list)
	{
		const auto hash = game::generateHashValue(name.data());

		if (add_to_list && can_add_dvar_to_list(name))
		{
			dvar_list.push_back(name);
		}

		return game::Dvar_RegisterString(hash, "", value, flags);
	}

	game::dvar_t* register_float(const std::string& name, float value, float min,
		float max, game::DvarFlags flags, bool add_to_list)
	{
		const auto hash = game::generateHashValue(name.data());

		if (add_to_list && can_add_dvar_to_list(name))
		{
			dvar_list.push_back(name);
		}

		return game::Dvar_RegisterFloat(hash, "", value, min, max, flags);
	}

	game::dvar_t* register_vec4(const std::string& name, float x, float y, float z,
		float w, float min, float max, game::DvarFlags flags, bool add_to_list)
	{
		const auto hash = game::generateHashValue(name.data());

		if (add_to_list && can_add_dvar_to_list(name))
		{
			dvar_list.push_back(name);
		}

		return game::Dvar_RegisterVec4(hash, "", x, y, z, w, min, max, flags);
	}
}
