local o=math.rad(-80)local S=math.rad(80)local T=math.rad(30)local i=math.rad(-15)local k=2.1 local W=.5 local m=math.rad(15)local D=Vector2.new(math.rad(15),0)local y=Vector2.new(math.rad(45),0)local G=.1 local g=.4 local R=Vector2.new(0,0)local X=Vector3.new(0,0,0)local B,I=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\084\111\117\099\104\083\101\110\115\105\116\105\118\105\116\121\065\100\106\117\115\116")end)local Z=B and I local J=Vector2.new(.0045*math.pi,.003375*math.pi)if Z then J=Vector2.new(.00945*math.pi,.003375*math.pi)end local e=Vector2.new(.002*math.pi,.0015*math.pi)local u=Vector3.new(0,5,0)local n=Vector3.new(0,4,0)local L=Vector3.new(0,1.5,0)local j=Vector3.new(0,1.5,0)local C=Vector3.new(0,2,0)local r=Vector3.new(2,2,1)local d=0 local q=10 local a=20 local l=20 local U=.5 local M=math.abs local b=math.sign local N,K=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\084\104\105\114\100\071\097\109\101\112\097\100\090\111\111\109\083\116\101\112")end)local p=N and K local c do local o,S=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\080\111\105\110\116\101\114\065\099\116\105\111\110\115\073\110\080\108\097\121\101\114\083\099\114\105\112\116\115")end)c=o and S end local f do local o,S=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\078\111\077\111\114\101\075\101\121\098\111\097\114\100\080\097\110")end)f=o and S end local O,x=pcall(function()return(UserSettings()):IsUserFeatureEnabled("\085\115\101\114\070\105\120\090\111\111\109\067\108\097\109\112\105\110\103\073\115\115\117\101\115")end)local v=O and x local F=require(script.Parent:WaitForChild("\067\097\109\101\114\097\085\116\105\108\115"))local V=require(script.Parent:WaitForChild("\090\111\111\109\067\111\110\116\114\111\108\108\101\114"))

local MIN_Y = math.rad(-80)
local MAX_Y = math.rad(80)

local TOUCH_ADJUST_AREA_UP = math.rad(30)
local TOUCH_ADJUST_AREA_DOWN = math.rad(-15)

local TOUCH_SENSITIVTY_ADJUST_MAX_Y = 2.1
local TOUCH_SENSITIVTY_ADJUST_MIN_Y = 0.5

local VR_ANGLE = math.rad(15)
local VR_LOW_INTENSITY_ROTATION = Vector2.new(math.rad(15), 0)
local VR_HIGH_INTENSITY_ROTATION = Vector2.new(math.rad(45), 0)
local VR_LOW_INTENSITY_REPEAT = 0.1
local VR_HIGH_INTENSITY_REPEAT = 0.4

local ZERO_VECTOR2 = Vector2.new(0,0)
local ZERO_VECTOR3 = Vector3.new(0,0,0)

local touchSensitivityFlagExists, touchSensitivityFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserTouchSensitivityAdjust")
end)
local FFlagUserTouchSensitivityAdjust = touchSensitivityFlagExists and touchSensitivityFlagEnabled

local TOUCH_SENSITIVTY = Vector2.new(0.0045 * math.pi, 0.003375 * math.pi)
if FFlagUserTouchSensitivityAdjust then
	TOUCH_SENSITIVTY = Vector2.new(0.00945 * math.pi, 0.003375 * math.pi)
end
local MOUSE_SENSITIVITY = Vector2.new( 0.002 * math.pi, 0.0015 * math.pi )

local SEAT_OFFSET = Vector3.new(0,5,0)
local VR_SEAT_OFFSET = Vector3.new(0,4,0)
local HEAD_OFFSET = Vector3.new(0,1.5,0)
local R15_HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET_NO_SCALING = Vector3.new(0, 2, 0)
local HUMANOID_ROOT_PART_SIZE = Vector3.new(2, 2, 1)

local GAMEPAD_ZOOM_STEP_1 = 0
local GAMEPAD_ZOOM_STEP_2 = 10
local GAMEPAD_ZOOM_STEP_3 = 20

local PAN_SENSITIVITY = 20
local ZOOM_SENSITIVITY_CURVATURE = 0.5

local abs = math.abs
local sign = math.sign

local thirdGamepadZoomStepFlagExists, thirdGamepadZoomStepFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserThirdGamepadZoomStep")
end)
local FFlagUserThirdGamepadZoomStep = thirdGamepadZoomStepFlagExists and thirdGamepadZoomStepFlagEnabled

local FFlagUserPointerActionsInPlayerScripts do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserPointerActionsInPlayerScripts")
	end)
	FFlagUserPointerActionsInPlayerScripts = success and result
end

local FFlagUserNoMoreKeyboardPan do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserNoMoreKeyboardPan")
	end)
	FFlagUserNoMoreKeyboardPan = success and result
end

local fixZoomIssuesFlagExists, fixZoomIssuesFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserFixZoomClampingIssues")
end)
local FFlagUserFixZoomClampingIssues = fixZoomIssuesFlagExists and fixZoomIssuesFlagEnabled

local Util = require(script.Parent:WaitForChild("CameraUtils"))
local ZoomController = require(script.Parent:WaitForChild("ZoomController"))
