function DataStoreStage.Load(Z,c,g)if not Z._loadParent then error("\091\068\097\116\097\083\116\111\114\101\083\116\097\103\101\046\076\111\097\100\093 - \070\097\105\108\101\100 \116\111 \108\111\097\100\044 \110\111 \108\111\097\100\080\097\114\101\110\116\033")end if not Z._loadName then error("\091\068\097\116\097\083\116\111\114\101\083\116\097\103\101\046\076\111\097\100\093 - \070\097\105\108\101\100 \116\111 \108\111\097\100\044 \110\111 \108\111\097\100\078\097\109\101\033")end if Z._dataToSave and Z._dataToSave[c]~=nil then if Z._dataToSave[c]==DataStoreDeleteToken then return Promise.resolved(g)else return Promise.resolved(Z._dataToSave[c])end end return(Z._loadParent:Load(Z._loadName,{})):Then(function(e)return Z:_afterLoadGetAndApplyStagedData(c,e,g)end)end

function DataStoreStage:Load(name, defaultValue)
	if not self._loadParent then
		error("[DataStoreStage.Load] - Failed to load, no loadParent!")
	end
	if not self._loadName then
		error("[DataStoreStage.Load] - Failed to load, no loadName!")
	end

	if self._dataToSave and self._dataToSave[name] ~= nil then
		if self._dataToSave[name] == DataStoreDeleteToken then
			return Promise.resolved(defaultValue)
		else
			return Promise.resolved(self._dataToSave[name])
		end
	end

	return self._loadParent:Load(self._loadName, {}):Then(function(data)
		return self:_afterLoadGetAndApplyStagedData(name, data, defaultValue)
	end)
end
