function defaultArray(d) 
	local t = {}
	local mt = {__index = function (table, key)
	    local v = d()
	    table[key] = v
	    return v
	end}
	setmetatable(t, mt)
	return t
end

function stringConcat(x, y) 
	if x then
	    if y then return x .. y else return x end
	else
	    return y
	end
end

function isInstanceOf(x, A) 
	return x ~= nil and x.__wurst_supertypes[A]
end

__wurst_objectIndexMap = ({counter=0, })
__wurst_number_wrapper_map = ({counter=0, })

function objectToIndex(x) 
	if x == nil then
	    return 0
	end
	if type(x) == "number" then
	    if __wurst_number_wrapper_map[x] then
	        x = __wurst_number_wrapper_map[x]
	    else
	        local obj = {__wurst_boxed_number = x}
	        __wurst_number_wrapper_map[x] = obj
	        x = obj
	    end
	end
	if __wurst_objectIndexMap[x] then
	    return __wurst_objectIndexMap[x]
	else
	   local r = __wurst_objectIndexMap.counter + 1
	   __wurst_objectIndexMap.counter = r
	   __wurst_objectIndexMap[r] = x
	   __wurst_objectIndexMap[x] = r
	   return r
	end
end

function objectFromIndex(x) 
	if type(x) == "number" then
	    x = __wurst_objectIndexMap[x]
	end
	if type(x) == "table" and x.__wurst_boxed_number then
	    return x.__wurst_boxed_number
	end
	return x
end

function intEnsure(x) 
	if x == nil then
	    return 0
	else
	    return math.tointeger(x)
	end
end

function boolEnsure(x) 
	if x == nil then
	    return false
	else
	    return x
	end
end

function realEnsure(x) 
	if x == nil then
	    return 0.0
	else
	    return x
	end
end

function stringEnsure(x) 
	if x == nil then
	    return ""
	else
	    return x
	end
end

Basics_ANIMATION_PERIOD = 0.
Colors_hexs = defaultArray(function () 
		return nil
	end)
Colors_decs = nil
Colors_COLOR_WHITE = ({0, 0, 0, 0, })
Colors_COLOR_BLACK = ({0, 0, 0, 0, })
Colors_COLOR_GOLD = ({0, 0, 0, 0, })
ErrorHandling_MUTE_ERROR_DURATION = 0
ErrorHandling_PRIMARY_ERROR_KEY = 0
ErrorHandling_HT = nil
ErrorHandling_suppressErrorMessages = false
Framehandle_GAME_UI = nil
Framehandle_BLZ_FRAMENAME_MAXLENGTH = 0
GameTimer_currentTime = 0.
MagicFunctions_compiletime = false
Player_localPlayer = nil
Printing_DEBUG_LEVEL = 0
Printing_DEBUG_MSG_DURATION = 0.
String_charset = nil
String_numberset = nil
Table_ht = nil
TypeCasting_typecastdata = nil
hashtable_compiletime = nil
hashtable_compiletime1 = nil
HashMap = ({})
Table = ({})

function HashMap:create() 
	local new_inst = ({})
	setmetatable(new_inst, ({__index=HashMap, }))
	return new_inst
end

function HashMap_HashMap_init(this) 
end

function HashMap_new_HashMap() 
	local this1 = nil
	this1 = HashMap:create()
	HashMap_construct_HashMap(this1)
	return this1
end

function HashMap_construct_HashMap(this2) 
	Table_construct_Table(this2)
	HashMap_HashMap_init(this2)
end

function Table:create1() 
	local new_inst = ({})
	setmetatable(new_inst, ({__index=Table, }))
	return new_inst
end

function Table_Table_saveInt1(this4, parentKey, value) 
	hashtable_saveInt(Table_ht, objectToIndex(this4), parentKey, value)
end

function Table_Table_saveString1(this6, parentKey2, value2) 
	hashtable_saveString(Table_ht, objectToIndex(this6), parentKey2, value2)
end

function Table_Table_init(this8) 
end

function Table_new_Table() 
	local this9 = nil
	this9 = Table:create1()
	Table_construct_Table(this9)
	return this9
end

function Table_construct_Table(this3) 
	Table_Table_init(this3)
end

function initGlobals() 
end

function main() 
	local initTrig = nil
	initGlobals()
	initCompiletimeState()
	initTrig = CreateTrigger()
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_AbilityIds(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package AbilityIds.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Real(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Real.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Integer(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Integer.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Angle(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Angle.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_String(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package String.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Vectors(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Vectors.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Destructable(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Destructable.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Player(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Player.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Basics(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Basics.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_MagicFunctions(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package MagicFunctions.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Table(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Table.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Playercolor(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Playercolor.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Maths(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Maths.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Colors(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Colors.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Printing(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Printing.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_GameTimer(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package GameTimer.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_ErrorHandling(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package ErrorHandling.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_HashList(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package HashList.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Matrices(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Matrices.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Quaternion(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Quaternion.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Framehandle(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Framehandle.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Group(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Group.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Lightning(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Lightning.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_WeatherEffects(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package WeatherEffects.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_TypeCasting(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package TypeCasting.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_EventHelper(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package EventHelper.")
	end
	TriggerClearConditions(initTrig)
	TriggerAddCondition(initTrig, Condition(function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = init_Test(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end))
	if not(TriggerEvaluate(initTrig)) then
		error1("Could not initialize package Test.")
	end
	TriggerClearConditions(initTrig)
	DestroyTrigger(initTrig)
end

function config() 
end

function init_AbilityIds() 
	return true
end

function init_Angle() 
	return true
end

function init_Basics() 
	Basics_ANIMATION_PERIOD = 0.030
	return true
end

function init_Colors() 
	Colors_hexs[0] = "0"
	Colors_hexs[1] = "1"
	Colors_hexs[2] = "2"
	Colors_hexs[3] = "3"
	Colors_hexs[4] = "4"
	Colors_hexs[5] = "5"
	Colors_hexs[6] = "6"
	Colors_hexs[7] = "7"
	Colors_hexs[8] = "8"
	Colors_hexs[9] = "9"
	Colors_hexs[10] = "A"
	Colors_hexs[11] = "B"
	Colors_hexs[12] = "C"
	Colors_hexs[13] = "D"
	Colors_hexs[14] = "E"
	Colors_hexs[15] = "F"
	Colors_decs = Table_new_Table()
	Colors_COLOR_WHITE = ({255, 255, 255, 255, })
	Colors_COLOR_BLACK = ({0, 0, 0, 0, })
	Colors_COLOR_GOLD = ({255, 204, 0, 255, })
	colorA_toColorString(Colors_COLOR_WHITE)
	colorA_toColorString(Colors_COLOR_BLACK)
	colorA_toColorString(Colors_COLOR_GOLD)
	initializeTable()
	return true
end

function colorA_toColorString(this10) 
	return stringConcat(stringConcat(stringConcat(stringConcat("|c", toHex(this10[4])), toHex(this10[1])), toHex(this10[2])), toHex(this10[3]))
end

function toHex(number) 
	local firstpart = nil
	local secondpart = nil
	firstpart = (number // 16)
	secondpart = (number - (firstpart * 16))
	return stringConcat(Colors_hexs[firstpart], Colors_hexs[secondpart])
end

function initializeTable() 
	local i = nil
	i = 0
	while true do
		if (i > 15) then
			break
		end
		Colors_decs:Table_Table_saveInt(string_getHash(Colors_hexs[i]), i)
		i = (i + 1)
	end
end

function init_Destructable() 
	return true
end

function init_ErrorHandling() 
	ErrorHandling_MUTE_ERROR_DURATION = 60
	ErrorHandling_PRIMARY_ERROR_KEY = -1
	ErrorHandling_HT = hashtable_compiletime
	ErrorHandling_suppressErrorMessages = false
	return true
end

function error1(msg) 
	local hash = nil
	if MagicFunctions_compiletime then
		compileError(stringConcat("ERROR: ", msg))
	else
		if not(ErrorHandling_suppressErrorMessages) then
			hash = string_getHash(msg)
			if hashtable_hasInt(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash) then
				if ((hashtable_loadInt(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash) + ErrorHandling_MUTE_ERROR_DURATION) < GameTimer_currentTime) then
					Log_error(stringConcat(msg, "$Stacktrace$"))
					hashtable_saveInt(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash, real_toInt(GameTimer_currentTime))
					hashtable_saveBoolean(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash, false)
				elseif hashtable_hasBoolean(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash) then
					if not(hashtable_loadBoolean(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash)) then
						Log_error("|cffFF3A29Excessive repeating errors are being omitted")
						hashtable_saveBoolean(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash, true)
					end
				else
					Log_error("|cffFF3A29Excessive repeating errors are being omitted")
					hashtable_saveBoolean(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash, true)
				end
			else
				hashtable_saveInt(ErrorHandling_HT, ErrorHandling_PRIMARY_ERROR_KEY, hash, real_toInt(GameTimer_currentTime))
				Log_error(stringConcat(stringConcat("Message: ", msg), "$Stacktrace$"))
			end
		end
		tostring((1 // 0))
	end
end

function init_EventHelper() 
	HashMap_new_HashMap()
	HashMap_new_HashMap()
	Table_new_Table()
	return true
end

function init_Framehandle() 
	local receiver = nil
	Framehandle_GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
	BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
	Framehandle_BLZ_FRAMENAME_MAXLENGTH = 560
	receiver = createFrame("FRAME", "SetMousePositionCage", Framehandle_GAME_UI, "", 0)
	framehandle_setSize(receiver, 0.0001, 0.0001)
	return true
end

function verifyFrameNameLength(name1) 
	if (string_length(name1) > Framehandle_BLZ_FRAMENAME_MAXLENGTH) then
		error1(stringConcat(stringConcat(stringConcat("Trying to address frame with exceeding maximum frame name length (", int_toString(Framehandle_BLZ_FRAMENAME_MAXLENGTH)), ") for: "), name1))
		return false
	end
	return true
end

function createFrame(typeName, name, owner, inherits, createContext) 
	verifyFrameNameLength(name)
	return BlzCreateFrameByType(typeName, name, owner, inherits, createContext)
end

function framehandle_setSize(this18, width, height) 
	BlzFrameSetSize(this18, width, height)
end

function init_GameTimer() 
	local receiver1 = nil
	receiver1 = CreateTimer()
	timer_start(receiver1, 100000., nil)
	timer_startPeriodic(CreateTimer(), Basics_ANIMATION_PERIOD, function (...) 
			local temp = ...
			local tempRes = nil
			xpcall(function () 
					tempRes = code__startPeriodic_GameTimer(temp)
				end, function(err) xpcall(function() error1(tostring(err)) end, function(err2) BJDebugMsg("error reporting error: " .. tostring(err2)) BJDebugMsg("while reporting: " .. tostring(err))  end) end)
			return tempRes
		end)
	return true
end

function code__startPeriodic_GameTimer() 
	GameTimer_currentTime = (GameTimer_currentTime + Basics_ANIMATION_PERIOD)
end

function init_Group() 
	CreateGroup()
	return true
end

function init_HashList() 
	return true
end

function hashtable_hasBoolean(this16, parentKey7, childKey5) 
	return HaveSavedBoolean(this16, parentKey7, childKey5)
end

function hashtable_hasInt(this12, parentKey4, childKey2) 
	return HaveSavedInteger(this12, parentKey4, childKey2)
end

function hashtable_loadBoolean(this17, parentKey8, childKey6) 
	return LoadBoolean(this17, parentKey8, childKey6)
end

function hashtable_loadInt(this13, parentKey5, childKey3) 
	return LoadInteger(this13, parentKey5, childKey3)
end

function hashtable_saveBoolean(this15, parentKey6, childKey4, value4) 
	SaveBoolean(this15, parentKey6, childKey4, value4)
end

function hashtable_saveInt(this5, parentKey1, childKey, value1) 
	SaveInteger(this5, parentKey1, childKey, value1)
end

function hashtable_saveString(this7, parentKey3, childKey1, value3) 
	SaveStr(this7, parentKey3, childKey1, value3)
end

function init_Integer() 
	return true
end

function int_toString(this20) 
	return tostring(this20)
end

function init_Lightning() 
	return true
end

function init_MagicFunctions() 
	MagicFunctions_compiletime = false
	return true
end

function compileError(msg1) 
end

function init_Maths() 
	return true
end

function init_Matrices() 
	return true
end

function init_Player() 
	Player_localPlayer = GetLocalPlayer()
	initPlayerArray()
	return true
end

function initPlayerArray() 
	local i1 = nil
	local temp = nil
	i1 = 0
	temp = (bj_MAX_PLAYER_SLOTS - 1)
	while true do
		if (i1 > temp) then
			break
		end
		Player(i1)
		i1 = (i1 + 1)
	end
end

function init_Playercolor() 
	ConvertPlayerColor(24)
	ConvertPlayerColor(25)
	ConvertPlayerColor(26)
	ConvertPlayerColor(27)
	return true
end

function init_Printing() 
	Printing_DEBUG_LEVEL = 2
	Printing_DEBUG_MSG_DURATION = 45.
	return true
end

function Loglevel_getTag(this23) 
	local temp1 = nil
	temp1 = this23
	if (temp1 == 0) then
		return "|cffADADADtrace|r"
	elseif (temp1 == 1) then
		return "|cff2685DCdebug|r"
	elseif (temp1 == 2) then
		return "|cffFFCC00info|r"
	elseif (temp1 == 3) then
		return "|cffF47E3Ewarning|r"
	else
		return "|cffFB2700error|r"
	end
end

function printLog(showTo, loglvl, msg3) 
	local compositeMsg = nil
	if (Printing_DEBUG_LEVEL <= loglvl) then
		compositeMsg = stringConcat(stringConcat(Loglevel_getTag(loglvl), " - "), msg3)
		DisplayTimedTextToPlayer(showTo, 0., 0., Printing_DEBUG_MSG_DURATION, compositeMsg)
	end
end

function print1(msg4) 
	DisplayTimedTextToPlayer(Player_localPlayer, 0., 0., Printing_DEBUG_MSG_DURATION, msg4)
end

function print2(msg5) 
	local msgString = nil
	msgString = "False"
	if msg5 then
		msgString = "True"
	end
	print1(msgString)
end

function Log_error(msg2) 
	printLog(Player_localPlayer, 4, msg2)
end

function init_Quaternion() 
	return true
end

function init_Real() 
	return true
end

function real_toInt(this14) 
	return R2I(this14)
end

function init_String() 
	String_charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	String_numberset = "0123456789"
	string_length(String_numberset)
	string_length(String_charset)
	return true
end

function string_length(this19) 
	return StringLength(this19)
end

function string_getHash(this11) 
	return StringHash(this11)
end

function init_Table() 
	Table_ht = hashtable_compiletime1
	return true
end

function init_Test() 
	print2(MagicFunctions_compiletime)
	return true
end

function timer_start(this21, time, timerCallBack) 
	TimerStart(this21, time, false, timerCallBack)
end

function timer_startPeriodic(this22, time1, timerCallBack1) 
	TimerStart(this22, time1, true, timerCallBack1)
end

function init_TypeCasting() 
	TypeCasting_typecastdata = Table_new_Table()
	initTypecastData()
	return true
end

function initTypecastData() 
	TypeCasting_typecastdata:Table_Table_saveString(0, "")
end

function init_Vectors() 
	Location(0., 0.)
	return true
end

function init_WeatherEffects() 
	return true
end

function initCompiletimeState() 
	initCompiletimeState_0()
end

function initCompiletimeState_0() 
	InitHashtable()
	InitHashtable()
	hashtable_compiletime1 = InitHashtable()
	hashtable_compiletime = InitHashtable()
	SaveInteger(hashtable_compiletime1, 1, -242600650, 0)
	SaveInteger(hashtable_compiletime1, 1, 1132341824, 1)
	SaveInteger(hashtable_compiletime1, 1, -647782241, 2)
	SaveInteger(hashtable_compiletime1, 1, -854572045, 3)
	SaveInteger(hashtable_compiletime1, 1, -680649701, 4)
	SaveInteger(hashtable_compiletime1, 1, -943650483, 5)
	SaveInteger(hashtable_compiletime1, 1, -671760605, 6)
	SaveInteger(hashtable_compiletime1, 1, 349230650, 7)
	SaveInteger(hashtable_compiletime1, 1, -1894922563, 8)
	SaveInteger(hashtable_compiletime1, 1, -1474492777, 9)
	SaveInteger(hashtable_compiletime1, 1, -1587459251, 10)
	SaveInteger(hashtable_compiletime1, 1, -1676716706, 11)
	SaveInteger(hashtable_compiletime1, 1, -1559655710, 12)
	SaveInteger(hashtable_compiletime1, 1, -1663695754, 13)
	SaveInteger(hashtable_compiletime1, 1, 597637742, 14)
	SaveInteger(hashtable_compiletime1, 1, 789744696, 15)
	SaveStr(hashtable_compiletime1, 2, 0, "")
end

HashMap.Table_Table_saveInt = Table_Table_saveInt1
HashMap.Table_Table_saveString = Table_Table_saveString1
HashMap.__wurst_supertypes = ({[HashMap] = true, [Table] = true, })
HashMap.__typeId__ = 2
Table.Table_Table_saveInt = Table_Table_saveInt1
Table.Table_Table_saveString = Table_Table_saveString1
Table.__wurst_supertypes = ({[Table] = true, })
Table.__typeId__ = 1