Revert "Improved polling and Session handling"
This reverts commit 5a1bdc578bf8440cf5ea59555f6ad3ca707768e3.
This commit is contained in:
parent
6bbf2d115e
commit
d6d1c3839a
File diff suppressed because it is too large
Load Diff
|
@ -1,489 +1,481 @@
|
||||||
using MediaBrowser.Common.Net;
|
using MediaBrowser.Common.Net;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Persistence;
|
using MediaBrowser.Controller.Persistence;
|
||||||
using MediaBrowser.Controller.Session;
|
using MediaBrowser.Controller.Session;
|
||||||
using MediaBrowser.Dlna.PlayTo.Configuration;
|
using MediaBrowser.Dlna.PlayTo.Configuration;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Logging;
|
using MediaBrowser.Model.Logging;
|
||||||
using MediaBrowser.Model.Session;
|
using MediaBrowser.Model.Session;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using Timer = System.Timers.Timer;
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
namespace MediaBrowser.Dlna.PlayTo
|
namespace MediaBrowser.Dlna.PlayTo
|
||||||
{
|
{
|
||||||
public class PlayToController : ISessionController, IDisposable
|
public class PlayToController : ISessionController, IDisposable
|
||||||
{
|
{
|
||||||
private Device _device;
|
private Device _device;
|
||||||
private BaseItem _currentItem = null;
|
private BaseItem _currentItem = null;
|
||||||
private TranscodeSettings[] _transcodeSettings;
|
private TranscodeSettings[] _transcodeSettings;
|
||||||
private readonly SessionInfo _session;
|
private readonly SessionInfo _session;
|
||||||
private readonly ISessionManager _sessionManager;
|
private readonly ISessionManager _sessionManager;
|
||||||
private readonly IItemRepository _itemRepository;
|
private readonly IItemRepository _itemRepository;
|
||||||
private readonly ILibraryManager _libraryManager;
|
private readonly ILibraryManager _libraryManager;
|
||||||
private readonly INetworkManager _networkManager;
|
private readonly INetworkManager _networkManager;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private bool _playbackStarted = false;
|
private bool _playbackStarted = false;
|
||||||
|
|
||||||
public bool SupportsMediaRemoteControl
|
public bool SupportsMediaRemoteControl
|
||||||
{
|
{
|
||||||
get { return true; }
|
get { return true; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsSessionActive
|
public bool IsSessionActive
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_device == null || _device.UpdateTime == default(DateTime))
|
if (_device == null || _device.UpdateTime == default(DateTime))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return DateTime.UtcNow <= _device.UpdateTime.AddSeconds(30);
|
return DateTime.UtcNow <= _device.UpdateTime.AddSeconds(30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, INetworkManager networkManager)
|
public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, INetworkManager networkManager)
|
||||||
{
|
{
|
||||||
_session = session;
|
_session = session;
|
||||||
_itemRepository = itemRepository;
|
_itemRepository = itemRepository;
|
||||||
_sessionManager = sessionManager;
|
_sessionManager = sessionManager;
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
_networkManager = networkManager;
|
_networkManager = networkManager;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(Device device, TranscodeSettings[] transcodeSettings)
|
public void Init(Device device, TranscodeSettings[] transcodeSettings)
|
||||||
{
|
{
|
||||||
_transcodeSettings = transcodeSettings;
|
_transcodeSettings = transcodeSettings;
|
||||||
_device = device;
|
_device = device;
|
||||||
_device.PlaybackChanged += Device_PlaybackChanged;
|
_device.PlaybackChanged += Device_PlaybackChanged;
|
||||||
_device.CurrentIdChanged += Device_CurrentIdChanged;
|
_device.CurrentIdChanged += Device_CurrentIdChanged;
|
||||||
_device.Start();
|
_device.Start();
|
||||||
|
|
||||||
_updateTimer = new Timer(1000);
|
_updateTimer = new Timer(1000);
|
||||||
_updateTimer.Elapsed += updateTimer_Elapsed;
|
_updateTimer.Elapsed += updateTimer_Elapsed;
|
||||||
_updateTimer.Start();
|
_updateTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Device EventHandlers & Update Timer
|
#region Device EventHandlers & Update Timer
|
||||||
|
|
||||||
Timer _updateTimer;
|
Timer _updateTimer;
|
||||||
|
|
||||||
async void Device_PlaybackChanged(object sender, TransportStateEventArgs e)
|
async void Device_PlaybackChanged(object sender, TransportStateEventArgs e)
|
||||||
{
|
{
|
||||||
if (_currentItem == null)
|
if (_currentItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (e.Stopped == false)
|
if (e.Stopped == false)
|
||||||
await ReportProgress().ConfigureAwait(false);
|
await ReportProgress().ConfigureAwait(false);
|
||||||
|
|
||||||
else if (e.Stopped && _playbackStarted)
|
else if (e.Stopped && _playbackStarted)
|
||||||
{
|
{
|
||||||
_playbackStarted = false;
|
_playbackStarted = false;
|
||||||
|
|
||||||
await _sessionManager.OnPlaybackStopped(new PlaybackStopInfo
|
await _sessionManager.OnPlaybackStopped(new PlaybackStopInfo
|
||||||
{
|
{
|
||||||
Item = _currentItem,
|
Item = _currentItem,
|
||||||
SessionId = _session.Id,
|
SessionId = _session.Id,
|
||||||
PositionTicks = _device.Position.Ticks
|
PositionTicks = _device.Position.Ticks
|
||||||
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
|
|
||||||
await SetNext().ConfigureAwait(false);
|
await SetNext().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async void Device_CurrentIdChanged(object sender, CurrentIdEventArgs e)
|
async void Device_CurrentIdChanged(object sender, CurrentIdEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Id != Guid.Empty)
|
if (e.Id != Guid.Empty)
|
||||||
{
|
{
|
||||||
if (_currentItem != null && _currentItem.Id == e.Id)
|
if (_currentItem != null && _currentItem.Id == e.Id)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var item = _libraryManager.GetItemById(e.Id);
|
var item = _libraryManager.GetItemById(e.Id);
|
||||||
|
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
_logger.Debug("{0} - CurrentId {1}", _session.DeviceName, item.Id);
|
_logger.Debug("{0} - CurrentId {1}", _session.DeviceName, item.Id);
|
||||||
_currentItem = item;
|
_currentItem = item;
|
||||||
_playbackStarted = false;
|
_playbackStarted = false;
|
||||||
|
|
||||||
await ReportProgress().ConfigureAwait(false);
|
await ReportProgress().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles the Elapsed event of the updateTimer control.
|
/// Handles the Elapsed event of the updateTimer control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender">The source of the event.</param>
|
/// <param name="sender">The source of the event.</param>
|
||||||
/// <param name="e">The <see cref="ElapsedEventArgs"/> instance containing the event data.</param>
|
/// <param name="e">The <see cref="ElapsedEventArgs"/> instance containing the event data.</param>
|
||||||
async void updateTimer_Elapsed(object sender, ElapsedEventArgs e)
|
async void updateTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_disposed)
|
if (_disposed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
((Timer)sender).Stop();
|
((Timer)sender).Stop();
|
||||||
|
|
||||||
|
await ReportProgress().ConfigureAwait(false);
|
||||||
if(!IsSessionActive)
|
|
||||||
{
|
if (!_disposed && IsSessionActive)
|
||||||
//Session is inactive, mark it for Disposal and don't start the elapsed timer.
|
((Timer)sender).Start();
|
||||||
await _sessionManager.ReportSessionEnded(this._session.Id);
|
}
|
||||||
return;
|
|
||||||
}
|
/// <summary>
|
||||||
|
/// Reports the playback progress.
|
||||||
await ReportProgress().ConfigureAwait(false);
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
if (!_disposed && IsSessionActive)
|
private async Task ReportProgress()
|
||||||
((Timer)sender).Start();
|
{
|
||||||
}
|
if (_currentItem == null || _device.IsStopped)
|
||||||
|
return;
|
||||||
/// <summary>
|
|
||||||
/// Reports the playback progress.
|
if (!_playbackStarted)
|
||||||
/// </summary>
|
{
|
||||||
/// <returns></returns>
|
await _sessionManager.OnPlaybackStart(new PlaybackInfo { Item = _currentItem, SessionId = _session.Id, CanSeek = true, QueueableMediaTypes = new List<string> { "Audio", "Video" } }).ConfigureAwait(false);
|
||||||
private async Task ReportProgress()
|
_playbackStarted = true;
|
||||||
{
|
}
|
||||||
if (_currentItem == null || _device.IsStopped)
|
|
||||||
return;
|
if ((_device.IsPlaying || _device.IsPaused))
|
||||||
|
{
|
||||||
if (!_playbackStarted)
|
var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
|
||||||
{
|
if (playlistItem != null && playlistItem.Transcode)
|
||||||
await _sessionManager.OnPlaybackStart(new PlaybackInfo { Item = _currentItem, SessionId = _session.Id, CanSeek = true, QueueableMediaTypes = new List<string> { "Audio", "Video" } }).ConfigureAwait(false);
|
{
|
||||||
_playbackStarted = true;
|
await _sessionManager.OnPlaybackProgress(new PlaybackProgressInfo
|
||||||
}
|
{
|
||||||
|
Item = _currentItem,
|
||||||
if ((_device.IsPlaying || _device.IsPaused))
|
SessionId = _session.Id,
|
||||||
{
|
PositionTicks = _device.Position.Ticks + playlistItem.StartPositionTicks,
|
||||||
var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
|
IsMuted = _device.IsMuted,
|
||||||
if (playlistItem != null && playlistItem.Transcode)
|
IsPaused = _device.IsPaused
|
||||||
{
|
|
||||||
await _sessionManager.OnPlaybackProgress(new PlaybackProgressInfo
|
}).ConfigureAwait(false);
|
||||||
{
|
}
|
||||||
Item = _currentItem,
|
else if (_currentItem != null)
|
||||||
SessionId = _session.Id,
|
{
|
||||||
PositionTicks = _device.Position.Ticks + playlistItem.StartPositionTicks,
|
await _sessionManager.OnPlaybackProgress(new PlaybackProgressInfo
|
||||||
IsMuted = _device.IsMuted,
|
{
|
||||||
IsPaused = _device.IsPaused
|
Item = _currentItem,
|
||||||
|
SessionId = _session.Id,
|
||||||
}).ConfigureAwait(false);
|
PositionTicks = _device.Position.Ticks,
|
||||||
}
|
IsMuted = _device.IsMuted,
|
||||||
else if (_currentItem != null)
|
IsPaused = _device.IsPaused
|
||||||
{
|
|
||||||
await _sessionManager.OnPlaybackProgress(new PlaybackProgressInfo
|
}).ConfigureAwait(false);
|
||||||
{
|
}
|
||||||
Item = _currentItem,
|
}
|
||||||
SessionId = _session.Id,
|
}
|
||||||
PositionTicks = _device.Position.Ticks,
|
|
||||||
IsMuted = _device.IsMuted,
|
#endregion
|
||||||
IsPaused = _device.IsPaused
|
|
||||||
|
#region SendCommands
|
||||||
}).ConfigureAwait(false);
|
|
||||||
}
|
public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
}
|
_logger.Debug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);
|
||||||
|
|
||||||
#endregion
|
var items = new List<BaseItem>();
|
||||||
|
foreach (string id in command.ItemIds)
|
||||||
#region SendCommands
|
{
|
||||||
|
AddItemFromId(Guid.Parse(id), items);
|
||||||
public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
_logger.Debug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);
|
var playlist = new List<PlaylistItem>();
|
||||||
|
var isFirst = true;
|
||||||
var items = new List<BaseItem>();
|
|
||||||
foreach (string id in command.ItemIds)
|
var serverAddress = GetServerAddress();
|
||||||
{
|
|
||||||
AddItemFromId(Guid.Parse(id), items);
|
foreach (var item in items)
|
||||||
}
|
{
|
||||||
|
if (isFirst && command.StartPositionTicks.HasValue)
|
||||||
var playlist = new List<PlaylistItem>();
|
{
|
||||||
var isFirst = true;
|
playlist.Add(CreatePlaylistItem(item, command.StartPositionTicks.Value, serverAddress));
|
||||||
|
isFirst = false;
|
||||||
var serverAddress = GetServerAddress();
|
}
|
||||||
|
else
|
||||||
foreach (var item in items)
|
{
|
||||||
{
|
playlist.Add(CreatePlaylistItem(item, 0, serverAddress));
|
||||||
if (isFirst && command.StartPositionTicks.HasValue)
|
}
|
||||||
{
|
}
|
||||||
playlist.Add(CreatePlaylistItem(item, command.StartPositionTicks.Value, serverAddress));
|
|
||||||
isFirst = false;
|
_logger.Debug("{0} - Playlist created", _session.DeviceName);
|
||||||
}
|
|
||||||
else
|
if (command.PlayCommand == PlayCommand.PlayLast)
|
||||||
{
|
{
|
||||||
playlist.Add(CreatePlaylistItem(item, 0, serverAddress));
|
AddItemsToPlaylist(playlist);
|
||||||
}
|
return Task.FromResult(true);
|
||||||
}
|
}
|
||||||
|
if (command.PlayCommand == PlayCommand.PlayNext)
|
||||||
_logger.Debug("{0} - Playlist created", _session.DeviceName);
|
{
|
||||||
|
AddItemsToPlaylist(playlist);
|
||||||
if (command.PlayCommand == PlayCommand.PlayLast)
|
return Task.FromResult(true);
|
||||||
{
|
}
|
||||||
AddItemsToPlaylist(playlist);
|
|
||||||
return Task.FromResult(true);
|
_logger.Debug("{0} - Playing {1} items", _session.DeviceName, playlist.Count);
|
||||||
}
|
return PlayItems(playlist);
|
||||||
if (command.PlayCommand == PlayCommand.PlayNext)
|
}
|
||||||
{
|
|
||||||
AddItemsToPlaylist(playlist);
|
public Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken)
|
||||||
return Task.FromResult(true);
|
{
|
||||||
}
|
switch (command.Command)
|
||||||
|
{
|
||||||
_logger.Debug("{0} - Playing {1} items", _session.DeviceName, playlist.Count);
|
case PlaystateCommand.Stop:
|
||||||
return PlayItems(playlist);
|
Playlist.Clear();
|
||||||
}
|
return _device.SetStop();
|
||||||
|
|
||||||
public Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken)
|
case PlaystateCommand.Pause:
|
||||||
{
|
return _device.SetPause();
|
||||||
switch (command.Command)
|
|
||||||
{
|
case PlaystateCommand.Unpause:
|
||||||
case PlaystateCommand.Stop:
|
return _device.SetPlay();
|
||||||
Playlist.Clear();
|
|
||||||
return _device.SetStop();
|
case PlaystateCommand.Seek:
|
||||||
|
var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
|
||||||
case PlaystateCommand.Pause:
|
if (playlistItem != null && playlistItem.Transcode && playlistItem.IsVideo && _currentItem != null)
|
||||||
return _device.SetPause();
|
{
|
||||||
|
var newItem = CreatePlaylistItem(_currentItem, command.SeekPositionTicks ?? 0, GetServerAddress());
|
||||||
case PlaystateCommand.Unpause:
|
playlistItem.StartPositionTicks = newItem.StartPositionTicks;
|
||||||
return _device.SetPlay();
|
playlistItem.StreamUrl = newItem.StreamUrl;
|
||||||
|
playlistItem.Didl = newItem.Didl;
|
||||||
case PlaystateCommand.Seek:
|
return _device.SetAvTransport(playlistItem.StreamUrl, playlistItem.DlnaHeaders, playlistItem.Didl);
|
||||||
var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
|
|
||||||
if (playlistItem != null && playlistItem.Transcode && playlistItem.IsVideo && _currentItem != null)
|
}
|
||||||
{
|
return _device.Seek(TimeSpan.FromTicks(command.SeekPositionTicks ?? 0));
|
||||||
var newItem = CreatePlaylistItem(_currentItem, command.SeekPositionTicks ?? 0, GetServerAddress());
|
|
||||||
playlistItem.StartPositionTicks = newItem.StartPositionTicks;
|
|
||||||
playlistItem.StreamUrl = newItem.StreamUrl;
|
case PlaystateCommand.NextTrack:
|
||||||
playlistItem.Didl = newItem.Didl;
|
_currentItem = null;
|
||||||
return _device.SetAvTransport(playlistItem.StreamUrl, playlistItem.DlnaHeaders, playlistItem.Didl);
|
return SetNext();
|
||||||
|
|
||||||
}
|
case PlaystateCommand.PreviousTrack:
|
||||||
return _device.Seek(TimeSpan.FromTicks(command.SeekPositionTicks ?? 0));
|
_currentItem = null;
|
||||||
|
return SetPrevious();
|
||||||
|
}
|
||||||
case PlaystateCommand.NextTrack:
|
|
||||||
_currentItem = null;
|
return Task.FromResult(true);
|
||||||
return SetNext();
|
}
|
||||||
|
|
||||||
case PlaystateCommand.PreviousTrack:
|
public Task SendSystemCommand(SystemCommand command, CancellationToken cancellationToken)
|
||||||
_currentItem = null;
|
{
|
||||||
return SetPrevious();
|
switch (command)
|
||||||
}
|
{
|
||||||
|
case SystemCommand.VolumeDown:
|
||||||
return Task.FromResult(true);
|
return _device.VolumeDown();
|
||||||
}
|
case SystemCommand.VolumeUp:
|
||||||
|
return _device.VolumeUp();
|
||||||
public Task SendSystemCommand(SystemCommand command, CancellationToken cancellationToken)
|
case SystemCommand.Mute:
|
||||||
{
|
return _device.VolumeDown(true);
|
||||||
switch (command)
|
case SystemCommand.Unmute:
|
||||||
{
|
return _device.VolumeUp(true);
|
||||||
case SystemCommand.VolumeDown:
|
case SystemCommand.ToggleMute:
|
||||||
return _device.VolumeDown();
|
return _device.ToggleMute();
|
||||||
case SystemCommand.VolumeUp:
|
default:
|
||||||
return _device.VolumeUp();
|
return Task.FromResult(true);
|
||||||
case SystemCommand.Mute:
|
}
|
||||||
return _device.VolumeDown(true);
|
}
|
||||||
case SystemCommand.Unmute:
|
|
||||||
return _device.VolumeUp(true);
|
public Task SendUserDataChangeInfo(UserDataChangeInfo info, CancellationToken cancellationToken)
|
||||||
case SystemCommand.ToggleMute:
|
{
|
||||||
return _device.ToggleMute();
|
return Task.FromResult(true);
|
||||||
default:
|
}
|
||||||
return Task.FromResult(true);
|
|
||||||
}
|
public Task SendRestartRequiredNotification(CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendUserDataChangeInfo(UserDataChangeInfo info, CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
public Task SendServerRestartNotification(CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendRestartRequiredNotification(CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
public Task SendServerShutdownNotification(CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendServerRestartNotification(CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
public Task SendBrowseCommand(BrowseRequest command, CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendServerShutdownNotification(CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
public Task SendLibraryUpdateInfo(LibraryUpdateInfo info, CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendBrowseCommand(BrowseRequest command, CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
public Task SendMessageCommand(MessageCommand command, CancellationToken cancellationToken)
|
||||||
}
|
{
|
||||||
|
return Task.FromResult(true);
|
||||||
public Task SendLibraryUpdateInfo(LibraryUpdateInfo info, CancellationToken cancellationToken)
|
}
|
||||||
{
|
|
||||||
return Task.FromResult(true);
|
#endregion
|
||||||
}
|
|
||||||
|
#region Playlist
|
||||||
public Task SendMessageCommand(MessageCommand command, CancellationToken cancellationToken)
|
|
||||||
{
|
private List<PlaylistItem> _playlist = new List<PlaylistItem>();
|
||||||
return Task.FromResult(true);
|
|
||||||
}
|
private List<PlaylistItem> Playlist
|
||||||
|
{
|
||||||
#endregion
|
get
|
||||||
|
{
|
||||||
#region Playlist
|
return _playlist;
|
||||||
|
}
|
||||||
private List<PlaylistItem> _playlist = new List<PlaylistItem>();
|
set
|
||||||
|
{
|
||||||
private List<PlaylistItem> Playlist
|
_playlist = value;
|
||||||
{
|
}
|
||||||
get
|
}
|
||||||
{
|
|
||||||
return _playlist;
|
private void AddItemFromId(Guid id, List<BaseItem> list)
|
||||||
}
|
{
|
||||||
set
|
var item = _libraryManager.GetItemById(id);
|
||||||
{
|
if (item.IsFolder)
|
||||||
_playlist = value;
|
{
|
||||||
}
|
foreach (var childId in _itemRepository.GetChildren(item.Id))
|
||||||
}
|
{
|
||||||
|
AddItemFromId(childId, list);
|
||||||
private void AddItemFromId(Guid id, List<BaseItem> list)
|
}
|
||||||
{
|
}
|
||||||
var item = _libraryManager.GetItemById(id);
|
else
|
||||||
if (item.IsFolder)
|
{
|
||||||
{
|
if (item.MediaType == MediaType.Audio || item.MediaType == MediaType.Video)
|
||||||
foreach (var childId in _itemRepository.GetChildren(item.Id))
|
{
|
||||||
{
|
list.Add(item);
|
||||||
AddItemFromId(childId, list);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
private string GetServerAddress()
|
||||||
if (item.MediaType == MediaType.Audio || item.MediaType == MediaType.Video)
|
{
|
||||||
{
|
return string.Format("{0}://{1}:{2}/mediabrowser",
|
||||||
list.Add(item);
|
|
||||||
}
|
"http",
|
||||||
}
|
_networkManager.GetLocalIpAddresses().FirstOrDefault() ?? "localhost",
|
||||||
}
|
"8096"
|
||||||
|
);
|
||||||
private string GetServerAddress()
|
}
|
||||||
{
|
|
||||||
return string.Format("{0}://{1}:{2}/mediabrowser",
|
private PlaylistItem CreatePlaylistItem(BaseItem item, long startPostionTicks, string serverAddress)
|
||||||
|
{
|
||||||
"http",
|
var streams = _itemRepository.GetMediaStreams(new MediaStreamQuery { ItemId = item.Id }).ToList();
|
||||||
_networkManager.GetLocalIpAddresses().FirstOrDefault() ?? "localhost",
|
|
||||||
"8096"
|
var playlistItem = PlaylistItem.GetBasicConfig(item, _transcodeSettings);
|
||||||
);
|
playlistItem.StartPositionTicks = startPostionTicks;
|
||||||
}
|
|
||||||
|
if (playlistItem.IsAudio)
|
||||||
private PlaylistItem CreatePlaylistItem(BaseItem item, long startPostionTicks, string serverAddress)
|
playlistItem.StreamUrl = StreamHelper.GetAudioUrl(playlistItem, serverAddress);
|
||||||
{
|
else
|
||||||
var streams = _itemRepository.GetMediaStreams(new MediaStreamQuery { ItemId = item.Id }).ToList();
|
{
|
||||||
|
playlistItem.StreamUrl = StreamHelper.GetVideoUrl(_device.Properties, playlistItem, streams, serverAddress);
|
||||||
var playlistItem = PlaylistItem.GetBasicConfig(item, _transcodeSettings);
|
}
|
||||||
playlistItem.StartPositionTicks = startPostionTicks;
|
|
||||||
|
var didl = DidlBuilder.Build(item, _session.UserId.ToString(), serverAddress, playlistItem.StreamUrl, streams);
|
||||||
if (playlistItem.IsAudio)
|
playlistItem.Didl = didl;
|
||||||
playlistItem.StreamUrl = StreamHelper.GetAudioUrl(playlistItem, serverAddress);
|
|
||||||
else
|
var header = StreamHelper.GetDlnaHeaders(playlistItem);
|
||||||
{
|
playlistItem.DlnaHeaders = header;
|
||||||
playlistItem.StreamUrl = StreamHelper.GetVideoUrl(_device.Properties, playlistItem, streams, serverAddress);
|
return playlistItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
var didl = DidlBuilder.Build(item, _session.UserId.ToString(), serverAddress, playlistItem.StreamUrl, streams);
|
/// <summary>
|
||||||
playlistItem.Didl = didl;
|
/// Plays the items.
|
||||||
|
/// </summary>
|
||||||
var header = StreamHelper.GetDlnaHeaders(playlistItem);
|
/// <param name="items">The items.</param>
|
||||||
playlistItem.DlnaHeaders = header;
|
/// <returns></returns>
|
||||||
return playlistItem;
|
private async Task<bool> PlayItems(IEnumerable<PlaylistItem> items)
|
||||||
}
|
{
|
||||||
|
Playlist.Clear();
|
||||||
/// <summary>
|
Playlist.AddRange(items);
|
||||||
/// Plays the items.
|
await SetNext();
|
||||||
/// </summary>
|
return true;
|
||||||
/// <param name="items">The items.</param>
|
}
|
||||||
/// <returns></returns>
|
|
||||||
private async Task<bool> PlayItems(IEnumerable<PlaylistItem> items)
|
/// <summary>
|
||||||
{
|
/// Adds the items to playlist.
|
||||||
Playlist.Clear();
|
/// </summary>
|
||||||
Playlist.AddRange(items);
|
/// <param name="items">The items.</param>
|
||||||
await SetNext();
|
private void AddItemsToPlaylist(IEnumerable<PlaylistItem> items)
|
||||||
return true;
|
{
|
||||||
}
|
Playlist.AddRange(items);
|
||||||
|
}
|
||||||
/// <summary>
|
|
||||||
/// Adds the items to playlist.
|
private async Task<bool> SetNext()
|
||||||
/// </summary>
|
{
|
||||||
/// <param name="items">The items.</param>
|
if (!Playlist.Any() || Playlist.All(i => i.PlayState != 0))
|
||||||
private void AddItemsToPlaylist(IEnumerable<PlaylistItem> items)
|
{
|
||||||
{
|
return true;
|
||||||
Playlist.AddRange(items);
|
}
|
||||||
}
|
var currentitem = Playlist.FirstOrDefault(i => i.PlayState == 1);
|
||||||
|
|
||||||
private async Task<bool> SetNext()
|
if (currentitem != null)
|
||||||
{
|
{
|
||||||
if (!Playlist.Any() || Playlist.All(i => i.PlayState != 0))
|
currentitem.PlayState = 2;
|
||||||
{
|
}
|
||||||
return true;
|
|
||||||
}
|
var nextTrack = Playlist.FirstOrDefault(i => i.PlayState == 0);
|
||||||
var currentitem = Playlist.FirstOrDefault(i => i.PlayState == 1);
|
if (nextTrack == null)
|
||||||
|
{
|
||||||
if (currentitem != null)
|
await _device.SetStop();
|
||||||
{
|
return true;
|
||||||
currentitem.PlayState = 2;
|
}
|
||||||
}
|
nextTrack.PlayState = 1;
|
||||||
|
await _device.SetAvTransport(nextTrack.StreamUrl, nextTrack.DlnaHeaders, nextTrack.Didl);
|
||||||
var nextTrack = Playlist.FirstOrDefault(i => i.PlayState == 0);
|
if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
|
||||||
if (nextTrack == null)
|
await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
|
||||||
{
|
return true;
|
||||||
await _device.SetStop();
|
}
|
||||||
return true;
|
|
||||||
}
|
public Task<bool> SetPrevious()
|
||||||
nextTrack.PlayState = 1;
|
{
|
||||||
await _device.SetAvTransport(nextTrack.StreamUrl, nextTrack.DlnaHeaders, nextTrack.Didl);
|
if (!Playlist.Any() || Playlist.All(i => i.PlayState != 2))
|
||||||
if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
|
return Task.FromResult(false);
|
||||||
await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
|
|
||||||
return true;
|
var currentitem = Playlist.FirstOrDefault(i => i.PlayState == 1);
|
||||||
}
|
|
||||||
|
var prevTrack = Playlist.LastOrDefault(i => i.PlayState == 2);
|
||||||
public Task<bool> SetPrevious()
|
|
||||||
{
|
if (currentitem != null)
|
||||||
if (!Playlist.Any() || Playlist.All(i => i.PlayState != 2))
|
{
|
||||||
return Task.FromResult(false);
|
currentitem.PlayState = 0;
|
||||||
|
}
|
||||||
var currentitem = Playlist.FirstOrDefault(i => i.PlayState == 1);
|
|
||||||
|
if (prevTrack == null)
|
||||||
var prevTrack = Playlist.LastOrDefault(i => i.PlayState == 2);
|
return Task.FromResult(false);
|
||||||
|
|
||||||
if (currentitem != null)
|
prevTrack.PlayState = 1;
|
||||||
{
|
return _device.SetAvTransport(prevTrack.StreamUrl, prevTrack.DlnaHeaders, prevTrack.Didl);
|
||||||
currentitem.PlayState = 0;
|
}
|
||||||
}
|
|
||||||
|
#endregion
|
||||||
if (prevTrack == null)
|
|
||||||
return Task.FromResult(false);
|
private bool _disposed;
|
||||||
|
|
||||||
prevTrack.PlayState = 1;
|
public void Dispose()
|
||||||
return _device.SetAvTransport(prevTrack.StreamUrl, prevTrack.DlnaHeaders, prevTrack.Didl);
|
{
|
||||||
}
|
if (!_disposed)
|
||||||
|
{
|
||||||
#endregion
|
_updateTimer.Stop();
|
||||||
|
_disposed = true;
|
||||||
private bool _disposed;
|
_device.Dispose();
|
||||||
|
_logger.Log(LogSeverity.Debug, "PlayTo - Controller disposed");
|
||||||
public void Dispose()
|
}
|
||||||
{
|
}
|
||||||
if (!_disposed)
|
}
|
||||||
{
|
}
|
||||||
_updateTimer.Stop();
|
|
||||||
_disposed = true;
|
|
||||||
_device.Dispose();
|
|
||||||
_logger.Log(LogSeverity.Debug, "PlayTo - Controller disposed");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
513
MediaBrowser.sln
513
MediaBrowser.sln
|
@ -1,256 +1,257 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 2012
|
||||||
VisualStudioVersion = 12.0.21005.1
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Controller", "MediaBrowser.Controller\MediaBrowser.Controller.csproj", "{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}"
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Controller", "MediaBrowser.Controller\MediaBrowser.Controller.csproj", "{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Api", "MediaBrowser.Api\MediaBrowser.Api.csproj", "{4FD51AC5-2C16-4308-A993-C3A84F3B4582}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Api", "MediaBrowser.Api\MediaBrowser.Api.csproj", "{4FD51AC5-2C16-4308-A993-C3A84F3B4582}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common", "MediaBrowser.Common\MediaBrowser.Common.csproj", "{9142EEFA-7570-41E1-BFCC-468BB571AF2F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common", "MediaBrowser.Common\MediaBrowser.Common.csproj", "{9142EEFA-7570-41E1-BFCC-468BB571AF2F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model", "MediaBrowser.Model\MediaBrowser.Model.csproj", "{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model", "MediaBrowser.Model\MediaBrowser.Model.csproj", "{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.WebDashboard", "MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj", "{5624B7B5-B5A7-41D8-9F10-CC5611109619}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.WebDashboard", "MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj", "{5624B7B5-B5A7-41D8-9F10-CC5611109619}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F0E0E64C-2A6F-4E35-9533-D53AC07C2CD1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F0E0E64C-2A6F-4E35-9533-D53AC07C2CD1}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8C5D6ABC-D277-407B-8061-3AA04251D539}"
|
||||||
EndProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8C5D6ABC-D277-407B-8061-3AA04251D539}"
|
Performance19.psess = Performance19.psess
|
||||||
ProjectSection(SolutionItems) = preProject
|
EndProjectSection
|
||||||
Performance19.psess = Performance19.psess
|
EndProject
|
||||||
EndProjectSection
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget (2)", ".nuget (2)", "{E60FB157-87E2-4A41-8B04-27EA49B63B4D}"
|
||||||
EndProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget (2)", ".nuget (2)", "{E60FB157-87E2-4A41-8B04-27EA49B63B4D}"
|
.nuget\NuGet.Config = .nuget\NuGet.Config
|
||||||
ProjectSection(SolutionItems) = preProject
|
.nuget\NuGet.exe = .nuget\NuGet.exe
|
||||||
.nuget\NuGet.Config = .nuget\NuGet.Config
|
.nuget\NuGet.targets = .nuget\NuGet.targets
|
||||||
.nuget\NuGet.exe = .nuget\NuGet.exe
|
EndProjectSection
|
||||||
.nuget\NuGet.targets = .nuget\NuGet.targets
|
EndProject
|
||||||
EndProjectSection
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common.Implementations", "MediaBrowser.Common.Implementations\MediaBrowser.Common.Implementations.csproj", "{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common.Implementations", "MediaBrowser.Common.Implementations\MediaBrowser.Common.Implementations.csproj", "{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Server.Implementations", "MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj", "{2E781478-814D-4A48-9D80-BFF206441A65}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Server.Implementations", "MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj", "{2E781478-814D-4A48-9D80-BFF206441A65}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.net35", "MediaBrowser.Model.net35\MediaBrowser.Model.net35.csproj", "{657B5410-7C3B-4806-9753-D254102CE537}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.net35", "MediaBrowser.Model.net35\MediaBrowser.Model.net35.csproj", "{657B5410-7C3B-4806-9753-D254102CE537}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Tests", "MediaBrowser.Tests\MediaBrowser.Tests.csproj", "{E22BFD35-0FCD-4A85-978A-C22DCD73A081}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Tests", "MediaBrowser.Tests\MediaBrowser.Tests.csproj", "{E22BFD35-0FCD-4A85-978A-C22DCD73A081}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Providers", "MediaBrowser.Providers\MediaBrowser.Providers.csproj", "{442B5058-DCAF-4263-BB6A-F21E31120A1B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Providers", "MediaBrowser.Providers\MediaBrowser.Providers.csproj", "{442B5058-DCAF-4263-BB6A-F21E31120A1B}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.Portable", "MediaBrowser.Model.Portable\MediaBrowser.Model.Portable.csproj", "{D729ADB1-1C01-428D-B680-8EFACD687B2A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.Portable", "MediaBrowser.Model.Portable\MediaBrowser.Model.Portable.csproj", "{D729ADB1-1C01-428D-B680-8EFACD687B2A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.ServerApplication", "MediaBrowser.ServerApplication\MediaBrowser.ServerApplication.csproj", "{94ADE4D3-B7EC-45CD-A200-CC469433072B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.ServerApplication", "MediaBrowser.ServerApplication\MediaBrowser.ServerApplication.csproj", "{94ADE4D3-B7EC-45CD-A200-CC469433072B}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Dlna", "MediaBrowser.Dlna\MediaBrowser.Dlna.csproj", "{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Dlna", "MediaBrowser.Dlna\MediaBrowser.Dlna.csproj", "{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}"
|
Global
|
||||||
EndProject
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Global
|
Debug|Any CPU = Debug|Any CPU
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Win32 = Debug|Win32
|
||||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
Debug|x64 = Debug|x64
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|x86 = Debug|x86
|
||||||
Debug|x64 = Debug|x64
|
Release|Any CPU = Release|Any CPU
|
||||||
Debug|x86 = Debug|x86
|
Release|Mixed Platforms = Release|Mixed Platforms
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Win32 = Release|Win32
|
||||||
Release|Mixed Platforms = Release|Mixed Platforms
|
Release|x64 = Release|x64
|
||||||
Release|Win32 = Release|Win32
|
Release|x86 = Release|x86
|
||||||
Release|x64 = Release|x64
|
EndGlobalSection
|
||||||
Release|x86 = Release|x86
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
EndGlobalSection
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.Build.0 = Debug|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.Build.0 = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Win32.ActiveCfg = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x64.ActiveCfg = Release|Any CPU
|
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.Build.0 = Debug|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.Build.0 = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Win32.ActiveCfg = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x64.ActiveCfg = Release|Any CPU
|
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.ActiveCfg = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.Build.0 = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.Build.0 = Debug|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Win32.ActiveCfg = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x64.ActiveCfg = Release|Any CPU
|
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.ActiveCfg = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.Build.0 = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.Build.0 = Debug|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.Build.0 = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Win32.ActiveCfg = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x64.ActiveCfg = Release|Any CPU
|
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.Build.0 = Debug|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.Build.0 = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Win32.ActiveCfg = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x64.ActiveCfg = Release|Any CPU
|
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Win32.ActiveCfg = Release|Any CPU
|
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x64.ActiveCfg = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.ActiveCfg = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.Build.0 = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Win32.ActiveCfg = Release|Any CPU
|
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x64.ActiveCfg = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.ActiveCfg = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Any CPU.Build.0 = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|Win32.ActiveCfg = Release|Any CPU
|
{657B5410-7C3B-4806-9753-D254102CE537}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|x64.ActiveCfg = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{657B5410-7C3B-4806-9753-D254102CE537}.Release|x86.ActiveCfg = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|Win32.ActiveCfg = Release|Any CPU
|
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x64.ActiveCfg = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E22BFD35-0FCD-4A85-978A-C22DCD73A081}.Release|x86.ActiveCfg = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.Build.0 = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Win32.ActiveCfg = Release|Any CPU
|
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x64.ActiveCfg = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Win32.ActiveCfg = Release|Any CPU
|
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x64.ActiveCfg = Release|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
{D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x86.ActiveCfg = Release|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.Build.0 = Debug|x86
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.ActiveCfg = Debug|x86
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.Build.0 = Debug|x86
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.Build.0 = Release|x86
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.ActiveCfg = Release|x86
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.Build.0 = Release|x86
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Win32.ActiveCfg = Release|Any CPU
|
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x64.ActiveCfg = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x86.ActiveCfg = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Any CPU.Build.0 = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|Win32.ActiveCfg = Release|Any CPU
|
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|x64.ActiveCfg = Release|Any CPU
|
EndGlobalSection
|
||||||
{734098EB-6DC1-4DD0-A1CA-3140DCD2737C}.Release|x86.ActiveCfg = Release|Any CPU
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
EndGlobalSection
|
HideSolutionNode = FALSE
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
EndGlobalSection
|
||||||
HideSolutionNode = FALSE
|
GlobalSection(Performance) = preSolution
|
||||||
EndGlobalSection
|
HasPerformanceSessions = true
|
||||||
EndGlobal
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
|
|
Loading…
Reference in New Issue
Block a user