function ServiceBag.Init(S)assert(not S._initializing,"\065\108\114\101\097\100\121 \105\110\105\116\105\097\108\105\122\105\110\103")assert(S._serviceTypesToInitializeSet,"\065\108\114\101\097\100\121 \105\110\105\116\105\097\108\105\122\101\100")S._initializing=true while next(S._serviceTypesToInitializeSet)do local b=next(S._serviceTypesToInitializeSet)S._serviceTypesToInitializeSet[b]=nil S:_ensureInitialization(b)end S._serviceTypesToInitializeSet=nil S._initializing=false end

function ServiceBag:Init()
	assert(not self._initializing, "Already initializing")
	assert(self._serviceTypesToInitializeSet, "Already initialized")
	self._initializing = true

	while next(self._serviceTypesToInitializeSet) do
		local serviceType = next(self._serviceTypesToInitializeSet)
		self._serviceTypesToInitializeSet[serviceType] = nil

		self:_ensureInitialization(serviceType)
	end

	self._serviceTypesToInitializeSet = nil
	self._initializing = false
end
