function module.new()local V=setmetatable({},methods)V.MessageIdCounter=0 V.ChatChannels={}V.Speakers={}V.FilterMessageFunctions=Util:NewSortedFunctionContainer()V.ProcessCommandsFunctions=Util:NewSortedFunctionContainer()V.eChannelAdded=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")V.eChannelRemoved=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")V.eSpeakerAdded=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")V.eSpeakerRemoved=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")V.ChannelAdded=V.eChannelAdded.Event V.ChannelRemoved=V.eChannelRemoved.Event V.SpeakerAdded=V.eSpeakerAdded.Event V.SpeakerRemoved=V.eSpeakerRemoved.Event V.ChatServiceMajorVersion=0 V.ChatServiceMinorVersion=5 return V end return module.new()
--///////////////////////// Constructors
--//////////////////////////////////////

function module.new()
	local obj = setmetatable({}, methods)

	obj.MessageIdCounter = 0

	obj.ChatChannels = {}
	obj.Speakers = {}

	obj.FilterMessageFunctions = Util:NewSortedFunctionContainer()
	obj.ProcessCommandsFunctions = Util:NewSortedFunctionContainer()

	obj.eChannelAdded = Instance.new("BindableEvent")
	obj.eChannelRemoved = Instance.new("BindableEvent")
	obj.eSpeakerAdded = Instance.new("BindableEvent")
	obj.eSpeakerRemoved = Instance.new("BindableEvent")

	obj.ChannelAdded = obj.eChannelAdded.Event
	obj.ChannelRemoved = obj.eChannelRemoved.Event
	obj.SpeakerAdded = obj.eSpeakerAdded.Event
	obj.SpeakerRemoved = obj.eSpeakerRemoved.Event

	obj.ChatServiceMajorVersion = 0
	obj.ChatServiceMinorVersion = 5

	return obj
end

return module.new()
