public void RemoveGroupsFromParent(AudioMixerGroupController[] groups, bool storeUndoState)
		{
			List<AudioMixerGroupController> list = groups.ToList<AudioMixerGroupController>();
			this.RemoveAncestorGroups(list);
			if (storeUndoState)
			{
				Undo.RecordObject(this, "Remove group");
			}
			foreach (AudioMixerGroupController current in list)
			{
				List<AudioMixerGroupController> allAudioGroupsSlow = this.GetAllAudioGroupsSlow();
				foreach (AudioMixerGroupController current2 in allAudioGroupsSlow)
				{
					List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>(current2.children);
					if (list2.Contains(current))
					{
						list2.Remove(current);
					}
					if (current2.children.Length != list2.Count)
					{
						current2.children = list2.ToArray();
					}
				}
			}
		}
		public List<AudioMixerGroupController> DuplicateGroups(AudioMixerGroupController[] sourceGroups)
		{
			List<AudioMixerGroupController> list = sourceGroups.ToList<AudioMixerGroupController>();
			this.RemoveAncestorGroups(list);
			List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>();
			foreach (AudioMixerGroupController current in list)
			{
				AudioMixerGroupController audioMixerGroupController = this.FindParentGroup(this.masterGroup, current);
				if (audioMixerGroupController != null && current != null)
				{
					AudioMixerGroupController item = this.DuplicateGroupRecurse(current);
					audioMixerGroupController.children = new List<AudioMixerGroupController>(audioMixerGroupController.children)
					{
						item
					}.ToArray();
					list2.Add(item);
				}
			}
			return list2;
		}
		public void DeleteGroups(AudioMixerGroupController[] groups)
		{
			List<AudioMixerGroupController> list = groups.ToList<AudioMixerGroupController>();
			this.RemoveAncestorGroups(list);
			this.DeleteGroupsInternal(list, this.GetAllAudioGroupsSlow());
			this.OnUnitySelectionChanged();
		}